OnCollisionEnter不工作Unity3D

时间:2017-12-11 12:01:34

标签: c# unity3d

我试图建立一个你需要躲避掉落物体的游戏。我已经造成了危险,但似乎危险已经克隆了#39;表现得很差。

当危险袭击需要消失的平台时,我已经制作了碰撞脚本。这适用于危险对象,但不适用于坠落的危险克隆对象。

  • 正如您在第一个屏幕截图中看到的那样,红色圆圈块表现出来 喜欢用它。但蓝色盘旋一次(克隆)直接落下 对象。
  • 正如你在第二个截图中看到的那样,红色的圆圈已经消失, 因为它击中了平台。但仍然蓝色曾经是正确的 通过。

提前致谢!

enter image description here enter image description here

下面你会找到碰撞脚本,下面是Hazard Spawn脚本:

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

 public class HazardCollisionFunctions : MonoBehaviour {

 #region Variables
 //Public

 //Private
 #endregion

 #region UnityFunctions
 void Start()
 {

 }
 void Update()
 {

 }
 #endregion

 private void OnCollisionEnter(Collision collision)
 {
     if(collision.gameObject.tag == "platform")
     {
         this.gameObject.SetActive(false);
     }

     if(collision.gameObject.tag == "Player")
     {

     }
 }
 }

1 个答案:

答案 0 :(得分:0)

OnCollisionEnter

OnCollisionEnterCollision个对象作为参数,并且要求附加的isTrigger组件的 Collider 属性为 FALSE

void OnCollisionEnter(Collision collision)
{
    foreach (ContactPoint contact in collision.contacts)
    {
        Debug.DrawRay(contact.point, contact.normal, Color.white);
    }
}

OnTriggerEnter

OnTriggerEnterCollider个对象作为参数,并且要求附加的isTrigger组件的 Collider 属性为 TRUE

void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("CheckPoint"))
    {
        Destroy(other.gameObject);
    }
}
  
      
  1. 如果要从prefab实例化对象,请确保   prefab需要组件(rigidbody / collider)和   达到预期行为的属性。

  2.   
  3. 要检测碰撞/触发,至少有一个对象必须有一个   物理组件(Rigidbody

  4.   
  5. Rigidbody 必须会附加到移动对象。

  6.   

希望这会有所帮助:)