gpt4 book ai didi

c# - 统一: Player Jumping Issue

转载 作者:太空宇宙 更新时间:2023-11-03 15:29:00 26 4
gpt4 key购买 nike

我有一段代码试图让玩家通过点击仅在方 block 1(左侧位置)和方 block 2(右侧)之间跳转。

Move() 函数的问题是它开始从方 block 1 跳到方 block 2,然后方 block 2 跳回方 block 1,但是从这一点开始,玩家从方 block 1 跳到左边立方体 2.

跳转功能正常,但我认为逻辑不正确。

移动:

void Move(){
int i = 0;
while ((isGrounded == true) && (i < 10)) {

if(atCube1 == true){
JumpRight();
}

if(atCube2 == true){
JumpLeft();
}

i++;
}
}

OnCollisionEnter:

void OnCollisionEnter (Collision col)
{
Debug.Log("OnCollisionEnter");


if (col.gameObject.name == "Cube 1"){
Debug.Log ("++++++ C U B E 1 H I T ++++++++");

atCube1 = true;
isGrounded = true;

}

if(col.gameObject.name == "Cube 2"){

Debug.Log ("Cube 2 hit");
atCube2 = true;
isGrounded = true;

}
}

最佳答案

你应该在它离开 cube1 之后制作 atCube1 = false;(也为 cube2 做)。您也可以添加 isGrounded = false; 当它不碰撞任何东西时。

1-你从 cube1 开始,atCube1 = true

2-跳转到 cube2,atCube1 = trueatCube2 = true

3- 再次跳转到 cube1,它向左跳,因为 atCube2 = true 。事实上,由于 if 语句的顺序,它首先向右跳然后向左跳。只需将 false 值添加到 bool 值即可修复它。

关于c# - 统一: Player Jumping Issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34300187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com