团结-当角色接近平台时使角色跳上平台?

时间:2019-03-08 18:34:01

标签: c# unity3d game-physics physics

好吧,我有一个游戏,用户不控制跳跃,而只是使用操纵杆在角色周围走动。我需要的是,当他们接近平台时(他们走进平台下方的区域,或者在平台下方的平台上,他们会带马里奥跳上平台。

我的方法是在平台上放置一个盒式对撞机,然后将其作为触发器,因此,当用户输入触发器时,我可以在它们之间移动到平台上的某个位置。这是最简单的方法吗?

enter image description here

我角色的刚体经过了运动学和重力检查。使角色走到更高平台的位置时跳动的另一种方法是什么?

2 个答案:

答案 0 :(得分:0)

另一种方法是在角色前面放下射线以检测高度差,如果高度差在正确的跳跃范围内,请让他们进行跳跃。

但是使用触发器也可以。取决于游戏。

答案 1 :(得分:0)

如果平台的高度始终相同(或不是以随机高度生成的),则可以使用一个或一系列射线。

public float heightOffset;
public float rayDistance;

Vector3 position = transform.position + new Vector3(0f, heighOffset, 0f);
Vector3 rotation = transform.forward;

if(Physics.Raycast(position, rotation, rayDistance))
{
    Jump();
}

并针对每个heightOffset重复该操作。

Documentation