如何使用角色控制器检测水平碰撞

问题描述 投票:0回答:1

如何与角色控制器组件一起检查墙壁碰撞? 我知道 OnControllerColliderHit 存在,但它只检查地板和玩家之间的碰撞,我想检查墙壁和玩家之间的碰撞,以及能够获取它接触的墙壁游戏对象的名称。

unity-game-engine
1个回答
0
投票

您可以在每面墙上添加一个标签,然后使用角色控制器中的方法

OnCollisionEnter()
并检查您碰撞的对象。

private void OnCollisionEnter(Collision collision)
{
    var collidedObject = collision.gameObject;

    if (collidedObject.CompareTag("Wall"))
    {
        var objectName = collidedObject.name;
    }
}

如果您的游戏是 2D 游戏,您可以使用此方法

OnCollisionEnter2D(Collision2D collision)
来处理 2D 碰撞,但请记住,您还需要在墙壁对象上添加碰撞器组件

我建议您为您的墙壁创建一个预制件,这样您就不必在每面墙上手动添加标签。

© www.soinside.com 2019 - 2024. All rights reserved.