好吧,我有一个游戏,用户无法控制跳跃,而只是使用操纵杆走动角色。我需要的是,当他们接近一个平台(他们走进它下面的区域,或者在它下面的平台上时,他们会马里奥跳到它上面)。
我的方法是为平台配备一个盒式对撞机,另一个用作触发器,因此当用户输入触发器时,我可以将它们移动到平台上的位置。这是最简单的方法吗?
我的角色的刚体有运动和重力检查。当角色走到更高平台的位置时,另一种让角色跳跃的方法是什么?
另一种方法是在角色前面射线投射以检测高度差,如果高度差在跳跃的正确范围内,则让它们进行跳跃。
但是使用触发器也是可以的。取决于游戏。
如果您的平台总是相同的高度(或不是随机高度生成),您可以使用一个或一系列光线。
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重复一遍。