繁体   English   中英

unity C# 碰撞

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM