[英]Unity C# Collision
如何为两个对象之间的碰撞检测创建脚本。 这是我的代码:
using UnityEngine;
public class PlayerCollision : MonoBehaviour
{
public PlayerMovement movement;
void OnCollisionEnter (Collision collisionInfo)
{
if (collisionInfo.collider.tag == "Obstacle")
{
movement.enabled = false;
}
}
}
从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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.