如何为两个对象之间的碰撞检测创建脚本。这是我的代码:
using UnityEngine;
public class PlayerCollision : MonoBehaviour
{
public PlayerMovement movement;
void OnCollisionEnter (Collision collisionInfo)
{
if (collisionInfo.collider.tag == "Obstacle")
{
movement.enabled = false;
}
}
}
答案 0 :(得分:2)
从https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html看,您编写的代码没有错。
这些方法使用失败的常见原因是由于您在PlayerMovement脚本中处理移动的方式(在这种情况下)。
例如,如果直接通过position属性修改变换的位置,则不会计算诸如碰撞之类的物理操作。 https://docs.unity3d.com/ScriptReference/Transform-position.html
另一个常见原因是您没有在其中一个对象上附加刚体,因此不会触发碰撞操作。
请在此处查看“冲突行动矩阵”部分: https://docs.unity3d.com/Manual/CollidersOverview.html