首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无限跳跃如何限制跳跃?

无限跳跃如何限制跳跃?
EN

Stack Overflow用户
提问于 2021-06-10 08:12:23
回答 1查看 204关注 0票数 0

我正在使用这些脚本,跳跃看起来很好,但问题是我可以做无限跳跃,如何限制跳跃呢?

比如..。我只想跳一次,一次又一次地跳,不想在空中跳,也不想跳两次.

代码语言:javascript
复制
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);

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-10 08:24:04

您应该定义一个布尔变量,比如canJump。当你与地面相撞时,那应该是真的。当您按下跳转空间时,如果您的canJump变量为true,则可以启动跳转,然后设置canJump变量false

代码语言:javascript
复制
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;
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67917244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档