这是脚本的顶部:
using UnityEngine;
using System.Collections;
using System.Reflection;
public class DetectPlayer : MonoBehaviour {
GameObject target;
int counter = 0;
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.name == "Platform")
{
Debug.Log("Touching Platform");
}
}
我使用调试器和断点,它确实到了行
if (collision.gameObject.name == "Platform")
在gameObject的属性名称上,我看到:" ThirdPersonController"但它永远不会进入Debug.Log
脚本附加到平台,如屏幕截图所示。我正在运行游戏,当它触摸它时将玩家移动到平台它会在断点处停止但从不进入Debug.Log
答案 0 :(得分:2)
collision.gameObject.name
会在你的对手附着的游戏对象上进行调用>平台,然后它就不会被调用。
答案 1 :(得分:1)
我认为@MiladQasemi是对的,但我会尝试用另一种方式解释它。
我看到的问题是,您的脚本附加到平台对象,因此代码if (collision.gameObject.name == "Platform")
永远不会成立。 因为脚本和平台是一个,所以对象不能与自身发生冲突。
将代码更改为:
if (collision.gameObject.name == "ThirdPersonController")