应该在不调用OnCollisionEnter的情况下

时间:2019-10-31 00:40:40

标签: c# unity3d

尽管可以编译,但我的脚本无法运行。当游戏对象与名称为“ Coin”的游戏对象碰撞时,它应在控制台中Debug.log("my message"),但不会记录任何消息,暗示没有与硬币发生碰撞。即使将其拖到游戏对象上,它也不会起作用。请帮忙。 这是代码:

using UnityEngine;

public class DestroyCoin : MonoBehaviour
{  
    //Detect collisions between the GameObjects with Colliders attached
    void OnCollisionEnter(Collision col)
    {
        if (col.gameObject.name == "Coin") { 
            Debug.Log("Collision Detected");
        }    
    }
}

2 个答案:

答案 0 :(得分:0)

您需要使用“ OnCollisionEnter2D”。

答案 1 :(得分:0)

我已经解决了这个问题,不得不将某些东西的附加脚本更改为硬币(我将在一秒钟内显示新脚本。)向硬币中添加常规对撞机。也添加一个触发器对撞机。这是下面的代码!

'使用UnityEngine;

公共类DestroyCoin:MonoBehaviour {

 private void OnTriggerEnter2D(Collider2D other)
{
    if (other.gameObject.CompareTag("Player"))
    {
        Debug.Log("Collision Detected");
    }
}

} <最后将其添加到脚本中。

感谢大家在这个漫长的过程中尽力帮助我并坚持下去。你们都带领我想到了这个主意。 <3