Unityに関連する記事です

 UnityでC#スクリプトを書いている際、エラーの該当行に複数の参照型変数が存在する場合があります
そのような状況でエラーに該当する変数を見つけるまでの考え方をサンプルコードを交えて説明します。



エラーの該当行に複数の参照型変数がある場合


 以下のサンプルコードは、エラーの該当行に複数の参照型変数が存在する典型的な例です。


 このコードでは、target1 と target2 という名前の2つのGameObjectがパブリック変数として宣言されており、インスペクターからアサインできます。
しかし、これらのオブジェクトがどちらかまたは両方がアサインされていない場合や、アサインされたオブジェクトが破棄された場合
Update()メソッド内の

  Vector3.Distance(target1.transform.position, target2.transform.position);

 ここで Missing エラーが発生します。


エラーの原因となる変数を見つける方法


 Console ビューにはエラーに該当するスクリプトと行数が表示されますが、
この表示ではどの変数に置いて Missing が発生しているか、までは教えてくれません

 そこで、エラーの原因となる変数を見つけるためには、以下の手順で調査していきます。


方法1: 変数ごとにNullチェックを行う


 各参照型変数に対して個別にNullチェックを行い、どの変数が問題を引き起こしているか特定します。


 このコードでは、target1とtarget2がそれぞれnullでないことを確認しています。
nullの場合、対応する警告メッセージを表示して処理を中断します。これにより、どの変数が問題を引き起こしているかを特定できます


方法2: デバッグログを使用して変数の状態を確認する


 デバッグログを使用して、各変数の状態を確認し、エラーの原因となる変数を特定します。


 このコードでは、Debug.Log()メソッドを使用して、各変数の状態を確認しています。
これにより、どの変数が問題を引き起こしているかを特定できます


まとめ


 エラーの該当行に複数の参照型変数が存在する場合でも、適切なエラーチェックやデバッグログを使用して問題の特定と対処が可能です。

 初心者の方でも、このような手法を使用することで、エラーの原因となる変数を見つけることができます。これらの方法を実践して、エラーの解決に取り組みましょう。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



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

管理人/副管理人のみ編集できます