首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跳转前延迟

跳转前延迟
EN

Stack Overflow用户
提问于 2019-06-19 21:39:39
回答 2查看 469关注 0票数 0

我正在学习Unity,我正在做一个角色移动,但是跳跃的动画对角色的跳跃有一个延迟,0.30秒,直到它拿起,我如何在代码中添加这个延迟?

比如,当你按下“空格键”,释放动画,数0.20秒,然后跳起来,我就想着怎么做。可行吗?我该怎么做呢?

简而言之,角色在动画之前跳跃。

动画视频:https://imgur.com/a/LgzkSKi

代码语言:javascript
复制
public class PlayerController : MonoBehaviour {

    public float moveSpeed;
    public float jumpForce;
    public CharacterController controller;

    private Vector3 moveDirection;
    public float gravityScale;

    public Animator animator;

    void Start() {
        controller = GetComponent<CharacterController>();
    }

    void Update() {
        float yStore = moveDirection.y;
        moveDirection = (transform.forward * Input.GetAxis("Vertical")) + (transform.right * Input.GetAxis("Horizontal"));
        moveDirection = moveDirection.normalized * moveSpeed;
        moveDirection.y = yStore;

        jump();

        controller.Move(moveDirection * Time.deltaTime);
        animator.SetFloat("Speed", (Mathf.Abs(Input.GetAxis("Vertical"))));

    }

    void jump() {
        if (controller.isGrounded) {
            moveDirection.y = 0f;
            if (Input.GetButtonDown("Jump")) {
                moveDirection.y = jumpForce;
                Debug.Log("jump");
            }
        }
        moveDirection.y = moveDirection.y + (Physics.gravity.y * gravityScale * Time.deltaTime);
        animator.SetBool("isGrounded", controller.isGrounded);
    }
}
EN

回答 2

Stack Overflow用户

发布于 2019-06-19 22:23:03

在jump()函数中,不要施加跳跃力。相反,应设置角色的下一次跳跃时间。

代码语言:javascript
复制
float nextJumpTime;
bool todoJump;
void jump() {
    if (!todoJump && Input.GetButtonDown("Jump")) {
        // Remember we have to jump and when
        nextJumpTime = Time.time + 0.2f;
        todoJump = true;
    }
    // Execute the jump
    if (todoJump && Time.time >= nextJumpTime) {
        todoJump = false;
        moveDirection.y = jumpForce;
    }
}

或者在上阅读协程。在输入上启动一个协程,在协程中返回新的WaitForSecond(0.2f);,然后执行跳转。

票数 1
EN

Stack Overflow用户

发布于 2019-06-19 22:25:52

对于One Man Mokey Squad的建议,我认为你也应该考虑获得一个新的跳跃动画或修剪当前的动画。我认为为中断的跳转动画创建自定义代码并不是一个好主意,因为您将无法重用您的脚本。

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

https://stackoverflow.com/questions/56669093

复制
相关文章

相似问题

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