【发布时间】:2021-02-17 04:48:15
【问题描述】:
由于某种原因,我的玩家没有与有碰撞的地图墙发生碰撞...这是我的玩家移动代码
void Update()
{
hInput = Input.GetAxisRaw("Horizontal");
vInput = Input.GetAxisRaw("Vertical");
if (Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.RightArrow))
{
transform.Translate(hInput, 0, 0);
}
else if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.DownArrow))
{
transform.Translate(0, vInput, 0);
}
}
当我移动我的玩家时,他们会直接穿过对撞机。它们在同一层上,并且都有碰撞器。有谁知道为什么会这样?谢谢!
编辑:所以我已经像建议的那样测试了与 OnCollisionEnter2d 的碰撞,它们正在碰撞,问题是我的玩家仍然穿过墙壁。我不知道为什么对撞机不能阻止这种情况的发生。
【问题讨论】:
-
我检查的第一件事是层矩阵,以及 2 个碰撞对撞机中的一个是否有 Rigidbody2D。或者它们可能被设置为触发器。