阅读背景:

实现DNF式跑步按键——双击按住跑步

来源:互联网 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move : MonoBehaviour {
    public float ForwardPower = 30f;

    private float forwardTime = 0f;

    private bool isForwardSpeedUp = false;//跑
    private bool isForwardGo = false;//走
    private bool ForwardFirstClick = true;
    private bool isForwardOver;//主要用于结束循环的变量
    float[] ForwardTime = new float[2] { 0, 0 };


    void FixedUpdate() {

        forwardTime += Time.deltaTime;
        isForwardOver = false;
        if (!Input.GetKey(KeyCode.W)) {
            isForwardSpeedUp = false;
            isForwardGo = false;
            if (ForwardFirstClick) {
                ForwardTime[0] = 0f;
                ForwardTime[1] = 0f;
            }
        }
        if (Input.GetKeyDown(KeyCode.W)) {
            CameraControl.Instance.m_Speed = 100f;
            isForwardGo = true;
            while (!isForwardOver) {
                if (ForwardFirstClick) {
                    ForwardTime[0] = forwardTime;
                    ForwardFirstClick = false;
                    isForwardOver = true;
                }
                else {
                    ForwardTime[1] = forwardTime;
                }
                if (ForwardTime[1] - ForwardTime[0] < 0.5f && ForwardTime[1] - ForwardTime[0] > 0f) {
                    isForwardSpeedUp = true;
                    ForwardFirstClick = true;
                    isForwardOver = true;
                    print("SpeedUp");
                }
                else if (ForwardTime[1] - ForwardTime[0] >= 0.5f) {
                    ForwardFirstClick = true;
                }
            }
        }
        if (isForwardSpeedUp)
            this.transform.position += this.transform.forward * -ForwardPower * Time.deltaTime * 2;

        else if (isForwardGo)
            this.transform.position += this.transform.forward * -ForwardPower * Time.deltaTime;

    }
}using System.Collections;
using System.Collecti



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: