玩家与敌人之间的碰撞不再起作用,Unity2D

时间:2020-05-05 14:02:51

标签: unity3d

因此,我正在从事太空射击游戏,并且正在更改盒对撞机的尺寸。当我打开游戏时,玩家与敌人之间没有发生任何碰撞。敌人与激光之间的碰撞仍然有效。我无法在此处放置图像,但是Stack Overflow为我提供了一些图像链接。如果我没有为您提供足够的代码或其他任何内容,请这样说。我不知道出了什么问题,这正在杀死我。那你能看出什么问题吗?

ps:我是Unity的新手

玩家代码:

void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Enemy")
        {
                Damage();
        }
    }

敌人代码

void OnTriggerEnter2D(Collider2D other)
{
    if (other.tag == "Laser")
    {
    Destroy(other.gameObject);
    Destroy(this.gameObject);
    }

    if (other.tag == "Player")
    {
        Destroy(this.gameObject);
    }
}

Player Inspector

Enemy Inspector

Laser Inspector

2 个答案:

答案 0 :(得分:0)

[通过“没有发生任何碰撞”是什么意思

  1. 未调用方法“ OnTriggerEnter”或
  2. if语句中的方法未调用?

对于1.检查播放器是否连接了2Dcollider。

对于2 .:您使用“标记”,是否标记了播放器?

要解决一些错误,可以使用以下方法: Debug.Log(“输入消息”); 因此您会在控制台中收到一条消息,并可以查看触发器是否可以正常工作或if语句是否有问题。]


编辑:我抬头看了看检查员,对撞机的“ IsTrigger”未被选中。不确定是不是问题所在。

答案 1 :(得分:0)

您的对撞机尚未在玩家中选中,您还需要在该对撞机中检查触发器。