Unity]Input Actionでの間欠的な「started」コールバックはMissingReferenceExceptionの問題です

1623 ワード

Unity]InputアクションでIsPressed()とstartedイベントを使用
上記のように.
最近Input Actionと書いていますが、毎回そうではありません.間欠的に次のようなエラーが発生しています.

https://forum.unity.com/threads/reference-exceptions-missingreferenceexception-while-executing-started-callbacks.1078058/
上のリンクのように
OnEnable()にコールバックとInputActionを登録します.有効化()
OnDisable()からコールバックを削除して入力します.Disableの提供
そして解決しました!
コールバック登録方法はAce Combat Zero:Unitiesとして実施#1:Inputを参照してください.
    private void OnEnable()
    {    
        inputAction_track1.started += CallbackTrack1;
        inputAction_track1.Enable();       
    }
    
    private void CallbackTrack1(InputAction.CallbackContext context)
    {
        if(context.action.phase == InputActionPhase.Started)
        {
            Attack();
        }
    }
    
    private void OnDisable()
    {
        inputAction_track1.started -= CallbackTrack1;
        inputAction_track1.Disable();
    }
コールバック関数を作成する必要があります.OnEnableとOnDisableでは、より多くのコンテンツを処理する必要があります.
しかし、コールバックを使うことはInput管理に直観的だと思います.
以前使ったInputまだGetKey()で帰るつもりはないのですが…!