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); 
               
            //}
           
        }
    }
  • 相关阅读:
    python 3.5.2安装mysql驱动报错
    mysql创建用户
    Centos7 修改SSH 端口
    centos 7 升级后yum install出现Exiting on user cancel
    centos7 systemctl 启动 Redis 失败
    redis 异常解决办法
    用普通用户通过sudo进行启动tomcat时报如下异常
    svn迁移到git仓库并保留commit历史记录
    CentOS更新yum源
    django 添加comments app
  • 原文地址:https://www.cnblogs.com/sunxun/p/5762501.html
Copyright © 2011-2022 走看看