前提・実現したいこと
Shoot()という関数で他のスクリプト(Bullet_status)の変数(rigidbody2D)を変えようとするとUnassignedReferenceExceptionが表示されます。
二回目にShoot()を実行するとエラーが起きないのですが、1回目も表示されないようにしたいです。
どうすれば、よろしいのでしょうか。
発生している問題・エラーメッセージ
UnassignedReferenceException: The variable rigidbody2D of Bullet_status has not been assigned. You probably need to assign the rigidbody2D variable of the Bullet_status script in the inspector. UnityEngine.Rigidbody2D.set_velocity (UnityEngine.Vector2 value) <0x40282300 + 0x0005a> in <56d97623d55649feaec409bbd2aec743>:0 Shooter_Target.Shoot () (at Assets/Shooter/Shooter_Target.cs:41) Shooter_Target.Update () (at Assets/Shooter/Shooter_Target.cs:32)
該当のソースコード
c#
1public Gameobject Target; 2// 3startやupdateは省略 4// 5public void Shoot() 6 { 7 Target.transform.position=this.transform.position; 8 Target.SetActive(true); 9 Bullet_status A=Target.GetComponent<Bullet_status>(); 10 11 12 A.rigidbody2D.velocity=new vector2(3f,3f);//ここでエラーが起きる 13 14 } 15 16
C#
1//Targetについているスクリプト 2public class Bullet_status : MonoBehaviour 3{ 4 // Start is called before the first frame update 5 public Rigidbody2D rigidbody2D; 6 7 void Start() 8 { 9 rigidbody2D=GetComponent<Rigidbody2D>(); 10 rigidbody2D.velocity=new Vector2(); 11 12 } 13 14 // Update is called once per frame 15 void Update() 16 { 17 18 } 19 public void Test() 20 { 21 Debug.Log("アクセス完了"); 22 } 23}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
unity 2018.3.7.f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。