【问题标题】:Unity nothing happens when a object collidesUnity 物体碰撞时什么都不会发生
【发布时间】:2020-09-03 14:34:48
【问题描述】:

当一个立方体穿过另一个立方体时,我想登录控制台,另一个立方体具有带凸面的网格对撞机,并且 isTrigger 设置为 true。

using UnityEngine;

public class score_addations : MonoBehaviour
{
    //[SerializeField]
    //private int SCORE = 0;

    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag == "score")
        {
            Debug.Log("Pass");
        }
        else
        {
            Debug.Log("Fail");
        }
    }

    private void Start()
    {
        //Cursor.lockState = CursorLockMode.Locked;
        //Cursor.visible = false;
    }
}

这是我的游戏图片

【问题讨论】:

  • OnCollisionEnter 不适用于触发器。尝试使用OnTriggerEnter
  • 让我试试OnTriggerEnter
  • 脚本错误:OnTriggerEnter 此消息参数的类型必须为:Collider 该消息将被忽略。
  • 请看this
  • 显示与我相关的代码。

标签: c# unity3d game-engine


【解决方案1】:

对于您使用 OnTriggerEnter(Collider) 的触发器,请使用此代码

private void OnTriggerEnter(Collider collision)
{
    if (collision.gameObject.tag == "score")
    {
        Debug.Log("Pass");
    }
    else
    {
        Debug.Log("Fail");
    }
}

【讨论】:

  • 它是否适用于动画,因为我的立方体正在通过动画移动。
  • 什么都没有发生
  • @RTX_CODE 可能不是 .. 如果 Rigidbody -> 物理引擎未移动您的对象,则物理和碰撞检测无法正常工作。如果您通过动画移动对象,您可能会破坏系统。
猜你喜欢
  • 2016-01-13
  • 2011-11-11
  • 1970-01-01
  • 2017-07-18
  • 2017-08-16
  • 2018-12-31
  • 1970-01-01
  • 1970-01-01
  • 2023-02-23
相关资源
最近更新 更多