Unityで自作のC#スクリプトを2重アタッチしていた時の症状と対処までの流れ
1週間は無駄にした。
おかげでthisの有無やpublicとインスペクターの優先順などには詳しくなったが。
症状:クラス変数(アタッチしたコンポーネント。今回はPlayableDirector)にアクセスできない(nullになる)時がある。
もちろんインスペクターでは指示している。
アクセスできる時とnullになる時があって不安定。体感的には処理落ちしているときにスキップされるような。
ブラウザのキャッシュが悪さしている時のような感じも。
イメージとしては、正しくアタッチされたキャラクターと、nullになるキャラクターがアニメーションのループで
高速で交互に切り替わっていて、タイミングが良ければ取得できるようなイメージ。
やったこと:Libraryフォルダの削除、プレハブ周りの調査、アニメーションの調査、クラス変数をprivateにしたり
対処:update内でクラス変数を見ていると、値があるときとnullを高速で交互に繰り返している。
アタッチしたコンポーネントをチェックを外して無効にしても出力が続いている
他のゲームオブジェクトに振り替えても出力が続く
スクリプトを右クリックし、シーン内の参照を検索 とすることで、間違えて変なゲームオブジェクトに
スクリプトがアタッチされているのを知ることができた。
Comment on this article
コメントはまだありません。
Send comments