【Unity】SetBoolでNull???【エラー】


Unity2019.2.2f1
Windows10

SetBoolでNull/トップ

今回はエラーのメモです。

■問題編

今はプレイヤーが操作できるユニティちゃんでNavMeshAgentで動くユニティちゃんを殴ると追いかけて殴りに来るゲームを作っています。
操作できる方にPlayerスクリプト、AIで動く方はPatrolスクリプトをアタッチしています。
そこで困ったのはPlayerスクリプトのSetBoolの2か所でNullのエラーが出ることでした。
操作できる方で単に攻撃ボタンを押しても何も起こりませんが、相手を殴った時、そして相手に殴られた時にエラーが出ます。
奇妙なのは殴っても殴られてもPlayerスクリプトの方が原因とのことです。
また、アニメーションイベントを使っていたのですが、攻撃の時はダメージの、ダメージ受ける時は攻撃のメソッドが反応します。
種が分かってしまえば何てことはないのですが、それまではいくら試しても原因が分からず困りました。

■解決編

そう言えば以前、プレイヤーキャラクターにアタッチしたスクリプトが原因だと思っていたら別のキャラクターにアタッチした同じスクリプトが原因だった時がありました。
AIで動く方は操作できる方をDuplicateしたものだったのでPlayerスクリプトをアタッチしてあります。
それでInspectorを見るとチェックボックスが外してあるのでがっかりしました。
しかし、チェックボックス外していてもそのスクリプトが悪さすることはあるのだろうか?
と試しにRemoveしてみたら・・・

なんとNullのエラーが出ない!

どうしてそうなったのか考えたのですが、やはりアニメーションイベントのせいでしょう。
チェックボックスを外してオフにしているスクリプトにも干渉しNullを出していたと。
これで攻撃の時にダメージの、ダメージの時に攻撃のメソッドがNullを出していたことに合点がいきました。
というわけで結論は、

アニメーションイベントがオフにしていたスクリプトに干渉していた

です。
いや、ちゃんと検証したわけではないのではっきりとは断言できませんが・・・

■関連記事

【Unity有料アセット】Easy Saveで解決したエラーについて

Unity Recorderによるエラーについてのメモ

ユニティちゃんライセンス

この作品はユニティちゃんライセンス条項の元に提供されています

スポンサーリンク

目次に戻る


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください