Unity2D克隆的游戏对象无法检测到其他游戏对象的标签

时间:2020-09-22 15:04:02

标签: c# unity3d

我正试图制造一个会生成的弹丸,当它击中玩家时,他会被摧毁。我必须提到,将使用“实例化”命令生成弹丸,使其成为“克隆的游戏对象”。在脚本中,我写道,如果弹丸击中另一个带有“玩家”标记的游戏物体,则其命中的游戏物体将被销毁,但在运行代码并弹丸击中玩家后,他不会被销毁。我检查了一下,标签确实显示“玩家”。我在代码中加入了一条调试命令,并设法找出未检测到标签。投射物生成器的脚本和投射物本身是分开的,因此我将仅显示投射物脚本,因为它是有问题的脚本。我不得不提到,该脚本不会产生任何错误,并且除了我上面提到的内容之外,模拟运行都很好。

public class Bulletboi : MonoBehaviour
{
    public float speed;
    private Transform player;
    private Vector2 target;
    public GameObject Elven;

    void Start()
    {
        player = GameObject.FindGameObjectWithTag("player").transform;
        target = new Vector2(player.position.x, player.position.y);
    }

    void Update()
    {
        transform.position = Vector2.MoveTowards(transform.position, target, speed * Time.deltaTime);
        if(transform.position.x == target.x && transform.position.y == target.y)
        {
            DestroyProjectile();
        }
    }
    void OnEnterTrigger2D(Collision2D other)
    {
        if (other.gameObject.tag.Equals("player"))
            {
            Debug.Log("bbbb");
            DestroyProjectile();
            Destroy(other.gameObject);
        }
    }
    void DestroyProjectile()
    {
        Destroy(gameObject);
    }
}

1 个答案:

答案 0 :(得分:0)

没关系,我决定稍微更改一下脚本,然后将其放到播放器上,使其检测弹丸的标签,现在它可以工作了。