在 Unity 中销毁游戏对象

时间:2021-06-12 10:47:32

标签: unity3d

enter image description here

我想让敌人在玩家触及心脏时被摧毁。我的代码有什么问题?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class enemy : MonoBehaviour
{
    public GameObject player;
    public float speed;
    void Update()
    {

        transform.position = Vector2.MoveTowards(transform.position, player.transform.position, 
speed * Time.deltaTime);

   
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (player.gameObject.CompareTag("haret"))
        {
            Destroy(gameObject);
         }
     }
}

3 个答案:

答案 0 :(得分:0)

你没有提供错误代码或任何东西,所以我没有什么可说的;-;

确保代码中的标签与项目中的代码一致,并将标签放在心上。

确保玩家游戏对象已分配给敌人。

确保玩家和心脏都有未设置为触发的 2d 碰撞器

答案 1 :(得分:0)

检查您的标签拼写。你有一个拼写错误。

答案 2 :(得分:0)

如果没有错误,很难找出问题所在。从它的外观来看,您可能拼错了 gameObject.CompareTag("haret") 而应该是 gameObject.CompareTag("heart")

还要确保脚本已分配给敌人,您已在检查器中分配了 player 游戏对象,并且您已在检查器中将心脏游戏对象的碰撞器设置为 isTrigger。