【Unity】シーン遷移後のEnhancedTouchのイベントエラーの解消法【C#】【input system】
今回はシーン遷移したあとに同じシーンを読み込むとEnhancedTouchがヌルポを吐いてきたので、その対処法について忘備録として書いていこうと思います。
ありがちなパターンとしては、
バトルシーン(EnhancedTouch初期化)
↓
タイトルシーン
↓
バトルシーン(ここでエラー(Null Refference))
対処法(おそらく正しい書き方)
private void Start(){ // イベントを登録 Touch.onFingerDown += OnFingerDown; Touch.onFingerMove += OnFingerMove; Touch.onFingerUp += OnFingerUp; } private void OnDisable(){ // イベント登録解除 (これを書かないと参照エラー) Touch.onFingerDown -= OnFingerDown; Touch.onFingerMove -= OnFingerMove; Touch.onFingerUp -= OnFingerUp; EnhancedTouchSupport.Disable(); } private void OnEnable(){ EnhancedTouchSupport.Enable(); }
一度解除しないと同じシーンを読み込みなおした時に前のシーンを参照しようとしてエラーになるみたいです。
本当はEnhanced touchはゲーム起動時に読み込んで使いまわすのがいい感じみたいです。