未检测到Unity冲突

时间:2019-01-30 08:29:09

标签: unity3d

我正在制作一个Unity游戏,在该游戏中,玩家应从飞机上推下所有“敌人”物体。因此,为了能够计算掉落的物体的数量,我通常希望能够判断红色立方体与其他每个立方体之间何时发生碰撞。该脚本似乎无法检测到冲突,该如何解决?

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

public class Collide : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {

    }

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

    }
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Enemy")
            Destroy(gameObject);
                Debug.Log("Hit Occured");
    }

}

View

View

View

3 个答案:

答案 0 :(得分:4)

您需要OnCollisionEnter

void OnCollisionEnter(Collision collision){

}

因为对撞机不是触发器。

答案 1 :(得分:1)

您需要实现OnCollisionEnter(碰撞冲突)而不是OnTriggerEnter(Collider其他)或选中BoxCollider IsTrigger复选框

答案 2 :(得分:0)

有3件事需要检查 1.应使用OnCollisionEnter代替OnTriggerEnter 2.应该启用isTrigger复选框,以便在两个主体与另一个碰撞时触发事件。 3.没有人提到的最重要的事情是给游戏对象或敌人提供的标签,因为我们需要定义游戏对象,当击中特定的身体时应该触发事件,因为游戏对象包含对撞机并且可以与任何碰撞墙之类的东西,所以您需要正确定义标签