我正在使用这些脚本,跳跃看起来很好,但问题是我可以做无限跳跃,如何限制跳跃呢?
比如..。我只想跳一次,一次又一次地跳,不想在空中跳,也不想跳两次.
Public void jumping()
{
if (GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).IsName("Character - Idle - Nina"))
{
GetComponent<Animator>().SetTrigger("Jump");
}
if (GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).IsName("Character - Run - Nina"))
{
GetComponent<Animator>().SetTrigger("Jump");
}
GetComponent<Rigidbody2D>().velocity = new Vector2(0, jump);
}发布于 2021-06-10 08:24:04
您应该定义一个布尔变量,比如canJump。当你与地面相撞时,那应该是真的。当您按下跳转空间时,如果您的canJump变量为true,则可以启动跳转,然后设置canJump变量false。
bool canJump;
float force=10f;//it is an example try for better
Public void jumping()
{
if(canJump){
if (GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).IsName("Character - Idle - Nina"))
{
GetComponent<Animator>().SetTrigger("Jump");
}
if (GetComponent<Animator>
().GetCurrentAnimatorStateInfo(0).IsName("Character - Run - Nina"))
{
GetComponent<Animator>().SetTrigger("Jump");
}
GetComponent<Rigidbody2D>().AddForce(Vector3.up*force);
canJump=false;
}
}
void OnCollisionEnter(Collision collision){
if(collision.gameObject.compareTag("ground")){
canJump=true;
}
}https://stackoverflow.com/questions/67917244
复制相似问题