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");
}
}
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");
}
}