问题描述
我无法注册OnCollisionEnter();我已经从以前的Unity程序复制了该函数,该程序可以工作并复制了所有内容。 FPSController之间的冲突应降低TreeHealth。
void OnCollisionEnter(Collision collision)
{
print("Colision");
if (collision.gameObject.tag == "TreeTag")
{
treeScript = collision.gameObject.GetComponent<TreeFall>();
treeScript.treeHealth--;
}
}
解决方法
您尝试使用OnControllerColliderHit吗?我认为,如果使用OnCollisionEnter组件移动字符,则必须使用此方法而不是CharacterController。
,我建议您用Debug.Log()替换print()函数,并在树脚本中检测冲突,并检查播放器是否存在冲突。