(请原谅我糟糕的编码技巧)
所以我试着做一个统一的跳板,如果球员站在跳板上,球员会自动被射向天空。
float height = 50f;
else if (onJumpPad)
{
while (true) {
velocity.y += 1;
height -= 1;
if (height == 0)
{
height = 50f;
break;
}
}
}上面是半工作的代码。我必须跳上跳板才能让球员飞上天空。
如有任何帮助,我们将不胜感激。
(我知道height变量不应该位于else if语句的中间,我写它只是为了演示)。
此处的完整代码= https://pastebin.com/3ZVu5bUq
发布于 2021-02-12 17:04:58
我想你可能需要一个跳板。因此,首先,不要忘记在块上添加一个碰撞器,根据需要增加高度和宽度。然后你可以向OnTriggerEnter或OnCollisionEnter查询。例如:
我有一个名为jumpPad的块。我添加了一个盒子对撞机与充分的宽度和最小的高度。我没有检查IsTrigger,所以我必须使用OnCollisionEnter。现在我将在播放器脚本中编写的代码是:
void OnCollisionEnter(Collision other)
{
if(other.gameObject.CompareTag("jumpPad")
{
GetComponent<Rigidbody>().AddForce(Vector3.Up * force);
}
}在这段代码中,force已经在脚本中的某处声明了。如果你使用的是CompareTag或.tag == "jumpPad“,也要确保给block一个标签。另外,您还需要向player对象添加rigidbody组件。
https://stackoverflow.com/questions/66168807
复制相似问题