ThirdPersonController 碰撞不调用 OnTriggerEnter 事件

ThirdPersonController collision not calling OnTriggerEnter event

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

public class Test : MonoBehaviour {

    public Transform target;

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

    }

    private void OnTriggerEnter(Collider col)
    {
        if (col.gameObject.tag == "Test")
        {
            this.transform.position = target.position;
        }
    }
}

我有一个 ThirdPersonController,我希望它与立方体或圆柱体发生碰撞。 该脚本附加到 ThirdPersonController。

我尝试向圆柱体或立方体添加刚体 on/off Use Gravity 和 Is Kinematic 但没有。赶不上活动了。

ThirdPersonController 使用 CharacterController and OnControllerColliderHit 而不是 OnTriggerEnter

请注意,您必须使用 Move 函数而不是直接通过其转换来移动它,以便调用 OnControllerColliderHit

void OnControllerColliderHit(ControllerColliderHit hit)
{

}

每件事都是正确的,但这里的错误是你正在改变与第二个对象碰撞的对象的位置,但是那个东西是对撞机已经在那里了..... 作为替代方法,尝试在像这样发生碰撞时打印任何语句

private  void OnTriggerEnter(Collider other)
{
  if (other.tag==your_tag)

{
print("message");
}
}