1
我剛剛開始使用Unity和C#,並且我試圖在玩家之後讓敵人追逐。敵人發現和追逐玩家,我使用下面的代碼:Unity C#使用標籤查找GameObjects
public GameObject attackingg;
public Entity attacking;
public int distance;
private bool canAttack;
void Start() {
canAttack = true;
if(attackingg = null){
attackingg = GameObject.FindGameObjectWithTag("Player");
attacking = attackingg.GetComponent<Entity>();
}
}
void Update() {
if(attacking.rigidbody2D.transform.position.y>rigidbody2D.transform.position.y - distance)
{
rigidbody2D.transform.position += Vector3.up * speed * Time.deltaTime;
}
if(attacking.rigidbody2D.transform.position.y<rigidbody2D.transform.position.y - distance)
{
rigidbody2D.transform.position += Vector3.down * speed * Time.deltaTime;
}
if(attacking.rigidbody2D.transform.position.x>rigidbody2D.transform.position.x+ distance)
{
rigidbody2D.transform.position += Vector3.right * speed * Time.deltaTime;
}
if(attacking.rigidbody2D.transform.position.x<rigidbody2D.transform.position.x - distance)
{
rigidbody2D.transform.position += Vector3.left * speed * Time.deltaTime;
}
if (Vector2.Distance (rigidbody2D.transform.position, attacking.transform.position) <= distance && canAttack) {
attackEntity();
StartCoroutine(waitForAttack());
}
}
當運行遊戲時,我得到以下錯誤:
NullReferenceException: Object reference not set to an instance of an object AttackingMob.Update() (at Assets/Code/Entities/Mobs/AttackingMob.cs:22)
爲什麼會出現這種情況,我可以做什麼解決我的問題?我非常感謝任何幫助,謝謝。