zoukankan      html  css  js  c++  java
  • Unity3D 之连按移动加速

    上代码:

    效果是连续按W后,加速移动

    为物体添加个拖拽效果,方便看运动轨迹。

    将下面的脚本绑定到移动的物体上。

    不过这里有一点很重要的需要去注意就是该方法不能放在 void FixedUpdate() 中,否则无效

    using UnityEngine;
    using System.Collections;
    
    public class Move : MonoBehaviour {
    
        public float timelost = 0;  
        // Use this for initialization
        public float speed = 1f;
    
        void Awake()
        {
            //animator = this.GetComponent<Animator>();
        }
    
    
        // Update is called once per frame
        void Update()
        {
    
            float h = Input.GetAxis("Horizontal");
            float v = Input.GetAxis("Vertical");
    
            if (Input.GetKeyDown(KeyCode.W))
            //    if (Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.D) || Input.GetKeyDown(KeyCode.S))
            {
                if ((Time.time - timelost) < 0.5f)///0.5秒之内按下有效  
                {
                    Debug.LogError("加速");
                    speed = 5.0f;
                }
                else
                {
                    Debug.LogError("--------");
                    speed = 1f;
                }
    
                timelost = Time.time;
    
            }
           
    
            Debug.LogError("》》》》》》》》》》》》》》》");
            if (Mathf.Abs(h) > 0.1f || Mathf.Abs(v) > 0.1) {
    
                Vector3 targetDir = new Vector3(-h, 0, -v);
                //transform.LookAt(targetDir + transform.position);
                transform.Translate(targetDir * speed * Time.deltaTime); 
            }
         
    
            //按键的取值,以虚拟杆中的值为优先
    
    
            //if (Mathf.Abs(h) > 0.1f || Mathf.Abs(v) > 0.1)
            //{
            //   // Debug.LogError("h" + h);
            //    //Debug.LogError("v" + v);
            //    //animator.SetBool("Walk", true);
    
            //    Vector3 targetDir = new Vector3(-h, 0,-v);
            //        //transform.LookAt(targetDir + transform.position);
            //    transform.Translate(targetDir * speed  *Time.deltaTime); 
               
            //}
           
        }
    }
  • 相关阅读:
    Linq聚合操作之Aggregate,Count,Sum,Distinct源码分析
    Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析
    Linq生成操作之DefautIfEmpty,Empty,Range,Repeat源码分析
    Linq基础操作之Select,Where,OrderBy,ThenBy源码分析
    PAT 1152 Google Recruitment
    PAT 1092 To Buy or Not to Buy
    PAT 1081 Rational Sum
    PAT 1084 Broken Keyboard
    PAT 1077 Kuchiguse
    PAT 1073 Scientific Notation
  • 原文地址:https://www.cnblogs.com/sunxun/p/5762501.html
Copyright © 2011-2022 走看看