【问题标题】:Unity2D: Making kinematic player collide with tilemap colliderUnity2D:使运动学玩家与瓷砖地图对撞机发生碰撞
【发布时间】:2020-07-12 11:46:28
【问题描述】:

我正在开发一个 2D 游戏,其中包含一个包含 2 个瓷砖地图的网格。可步行瓷砖地图和障碍瓷砖地图。我给了障碍 tilemap tilemapcollider2d。我希望我的玩家有一个运动学刚体,这样物理在与障碍物块碰撞后不会做奇怪的事情。

问题是,只有当障碍物块具有动态刚体时,玩家才会与障碍物块发生碰撞。如何让玩家在具有运动学刚体的同时与障碍物块发生碰撞?

我也尝试在障碍物贴图上添加一个刚体2d,但这没有任何效果。除非它设置为动态,否则所有障碍物块都会开始下落,但在玩家穿过它之前会与玩家发生碰撞。

这是我的播放器移动的代码(body = 播放器的 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);
}

提前致谢!

【问题讨论】:

  • 有人吗?还没解决:(
  • 仍然有这个问题。如何使运动学刚体与 tilemap 碰撞器发生碰撞?

标签: unity3d collision


【解决方案1】:

我猜你只是想让玩家在碰到障碍物时停下来

解决方案: 为玩家和障碍物贴图添加 box Collider 2D

如果你想检测碰撞尝试使用触发器

【讨论】:

  • Box colliders 2D 不适用于平铺地图。这就是 Tilemapcollider 的用途。我的问题是如何使 Kinematic 刚体与这个 Tilemapcollider 发生碰撞。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
  • 2017-01-12
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多