Tech(ユニティ、技術系)

値が取得できる時と出来ない時があり不安定の対処

Unityで自作のC#スクリプトを2重アタッチしていた時の症状と対処までの流れ

1週間は無駄にした。

おかげでthisの有無やpublicとインスペクターの優先順などには詳しくなったが。

 

症状:クラス変数(アタッチしたコンポーネント。今回はPlayableDirector)にアクセスできない(nullになる)時がある。

もちろんインスペクターでは指示している。

 

アクセスできる時とnullになる時があって不安定。体感的には処理落ちしているときにスキップされるような。
ブラウザのキャッシュが悪さしている時のような感じも。

 

イメージとしては、正しくアタッチされたキャラクターと、nullになるキャラクターがアニメーションのループで
高速で交互に切り替わっていて、タイミングが良ければ取得できるようなイメージ。

 

やったこと:Libraryフォルダの削除、プレハブ周りの調査、アニメーションの調査、クラス変数をprivateにしたり

 

対処:update内でクラス変数を見ていると、値があるときとnullを高速で交互に繰り返している。
アタッチしたコンポーネントをチェックを外して無効にしても出力が続いている
他のゲームオブジェクトに振り替えても出力が続く

 

スクリプトを右クリックし、シーン内の参照を検索 とすることで、間違えて変なゲームオブジェクトに
スクリプトがアタッチされているのを知ることができた。

Comment on this article

コメントはまだありません。

Send comments

Required
Required  
※ Your email address will not be published
Any
Required