Unity2D:使运动播放器与tilemap碰撞器碰撞

时间:2020-07-12 11:46:28

标签: unity3d collision

我正在开发一个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);
}

谢谢!

1 个答案:

答案 0 :(得分:0)

我猜你只是想让玩家在碰到障碍物贴图时停止

解决方案: 为玩家和障碍物图块添加盒子Collider 2D

如果要检测碰撞,请尝试使用扳机