【问题标题】:OnCollisionEnter2D isn't working and I don't know whyOnCollisionEnter2D 不工作,我不知道为什么
【发布时间】:2014-07-15 17:06:13
【问题描述】:

我是 Unity 和 c# 的新手,我正在努力了解基础知识,但我似乎遇到了碰撞问题。我想让一个坠落的物体在与另一个静止的物体碰撞时摧毁。所有对象都设置为 Unity 中的 Box Collider 2D,经过数小时的搜索,我似乎无法弄清楚它有什么问题。任何帮助将不胜感激!

using UnityEngine;

使用 System.Collections;

公共类销毁:MonoBehaviour {

// Use this for initialization
void Start () {
    transform.position = new Vector2 (0, -10);
    Debug.Log ("Game Start");
}

// Update is called once per frame
void Update () {

}
void OnCollisionEnter2D(Collision2D col)
{
    if (col.gameObject.tag == "Target") //|| (col.gameObject.tag == "fallingCube2")) 
    {
        Debug.Log ("There has been a collision!");
        Destroy (col.gameObject);
    }
    else 
    if (col.gameObject.tag == "otherTarget")
    {
        Debug.Log ("There has been a collision!");
        Destroy (col.gameObject);
    }

} }

【问题讨论】:

  • 您应该在帖子中包含代码的相关部分 - 或全部,因为这是一段如此短的代码。不是每个愿意回答的人都愿意关注链接,并且由于多种可能的原因,链接可能随时失效。

标签: 2d


【解决方案1】:

确保标签相同(注意大写),并使用 col.tag == "Target"。

GameObject 必须有且 BoxCollider2D 或其他 Collider2D 的属性 isTrigger 为 false。

我总是使用 OnTriggerEnter2D(Collider2D col) 因为我不希望我的 pj 停止下降或其他什么

【讨论】:

    猜你喜欢
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多