【问题标题】:Unity 3D Collision on gameobject not working游戏对象上的 Unity 3D 碰撞不起作用
【发布时间】:2021-01-21 00:58:28
【问题描述】:

我编写了一个代码,一旦你与游戏对象发生碰撞,它就会进入不同的场景,游戏对象是一张床,我已经应用了一个名为 Bed 的标签,我已经应用了一个刚体,我已经将代码应用到播放器,一旦你碰撞代码将激活,但由于某些明显的原因,它仍然无法工作,

这是我应用到播放器的代码:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.SceneManagement;

public class PlayerCollision : MonoBehaviour
{
    
  void OnCollisionEnter (Collision Collisionbad)
       {
        
          if (Collisionbad.collider.tag == "Bed")
           { 
                  Debug.Log("Roll Credits");
                  SceneManager.LoadScene("EndingScreen");
           }
        }
}

【问题讨论】:

    标签: c# unity3d collision-detection collision scene-manager


    【解决方案1】:

    您的问题很可能是您正在检查collider 的标签,而不是gameObject

    if(Collisionbad.gameObject.tag == "Bed"))
    

    另外,考虑使用CompareTag,因为它更有效

    if(Collisionbad.gameObject.CompareTag("Bed"))
    

    【讨论】:

      【解决方案2】:

      将 BoxColliders 添加到碰撞的两个对象 将此脚本添加到与床碰撞的对象 在设置中检查对象 1 和 2 的图层,它们不能碰撞 而且你的脚本必须工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-11
        • 2021-10-09
        • 1970-01-01
        相关资源
        最近更新 更多