我正在开发一个2D游戏,其中包含2个tilemaps的网格。步行图块和障碍图块。我给障碍物tilemap提供了tilemapcollider2d。我希望我的玩家拥有运动学上的刚体,以便在与障碍砖碰撞后物理学不会做奇怪的事情。
问题是,玩家只有在具有动态刚体的情况下才与障碍砖碰撞。在拥有运动刚度的同时如何使播放器与障碍砖碰撞?
我还尝试了在障碍物tilemap中添加一个刚体2d,但这没有任何效果。除非将其设置为动态,否则所有障碍块都会开始掉落,但会在玩家剪辑通过它之前与玩家碰撞片刻。
这是我的玩家运动的代码(身体=玩家的RigidBody2D):
void Update()
{
// Gives a value between -1 and 1
horizontal = Input.GetAxisRaw("Horizontal"); // -1 is left
vertical = Input.GetAxisRaw("Vertical"); // -1 is down
}
void FixedUpdate()
{
if (horizontal != 0 && vertical != 0) // Check for diagonal movement
{
// limit movement speed diagonally, so you move at 70% speed
horizontal *= moveLimiter;
vertical *= moveLimiter;
}
body.velocity = new Vector2(horizontal * Speed, vertical * Speed);
}
谢谢!
答案 0 :(得分:0)
我猜你只是想让玩家在碰到障碍物贴图时停止
解决方案: 为玩家和障碍物图块添加盒子Collider 2D
如果要检测碰撞,请尝试使用扳机