Unity基础入门 ☀️| Time(时间)和Input键盘及鼠标输入方法

网友投稿 652 2022-05-28

首先介绍两个概念:现实时间和游戏时间

大多数Time类都是依赖于游戏时间的。

现实时间也就是不依赖于程序内部,就算程序暂停也会继续计算的真实时间,而游戏时间是基于程序内部的,可以自行调整。

Unity零基础到入门 ☀️| Time(时间)和Input键盘及鼠标输入方法

我们这里用的都是游戏时间

下面来用代码示例学一下 Time 类的使用

public class ReadTimeAndMathf : MonoBehaviour { //时间缩放 public float timeScale = 1f; public float moveSpeed = 2; private void FixedUpdate() { Debug.Log(Time.fixedDeltaTime); transform.position += Vector3.forward * Time.fixedDeltaTime * moveSpeed; } void Update() { // Debug.Log(Time.time);//游戏过来多长时间 Debug.Log(Time.deltaTime);//每帧的时间间隔 //调整时间缩放 Time.timeScale = timeScale; // transform.position += Vector3.forward * Time.deltaTime * moveSpeed; // transform.position = Vector3.Lerp(transform.position,Vector3.forward * 5 ,Time.deltaTime * moveSpeed); } }

在游戏中我们经常要用到按某个键来执行某件事,就比如按A键开炮,空格键跳跃等等。下面就来简单介绍一下怎样使用 键盘输入方法

public class SimplePlayerMove : MonoBehaviour { [Header("炮弹")] public GameObject bullet; public float moveSpeed = 3f; public float turnSpeed = 3f; private float hor, ver; void OldUpdate(){ bool downA = Input.GetKeyDown(KeyCode.A); if (Input.GetKeyDown(KeyCode.A)) { Debug.Log("按下了A键"); } if (Input.GetKeyUp(KeyCode.A)) { Debug.Log("松开了A键"); } if (Input.GetKey(KeyCode.Space)) { Debug.Log("按住了空格键"); } if(Input.GetKey(KeyCode.W))//前进 { transform.position +=transform.forward * Time.deltaTime * moveSpeed; } if(Input.GetKey(KeyCode.S))//后退 { transform.position -=transform.forward * Time.deltaTime * moveSpeed; } if (Input.GetKey(KeyCode.A))//左转 { transform.eulerAngles -= Vector3.up * turnSpeed; } if (Input.GetKey(KeyCode.D))//右转 { transform.eulerAngles += Vector3.up * turnSpeed; } } ---- void Update() { hor = Input.GetAxis("Horizontal"); ver = Input.GetAxis("Vertical"); //transform.position += new Vector3(hor, 0, ver) *Time.deltaTime * moveSpeed; //前后移动 transform.position += ver * transform.forward * Time.deltaTime * moveSpeed; //左右转身 transform.eulerAngles += hor * Vector3.up * turnSpeed; } }

说完了键盘输入,自然还有鼠标输入啦,那下面就来介绍一下 鼠标输入方法

void KeyUpdate() { if (Input.GetMouseButtonDown(0)) { Debug.Log("按下了鼠标左键"); } if (Input.GetMouseButtonUp(0)) { Debug.Log("松开了鼠标左键"); } if (Input.GetMouseButton(0)) { Debug.Log("按住了鼠标左键"); } } --- void Update() { float hor = Input.GetAxis("Horizontal"); //Debug。Log( if (Input.GetButtonDown("Fire")); { Debug.Log("按住了开火键"); // GameObject crtPlayer = Instantiate(playerPrefab); GameObject crtPlayer = Instantiate(playerPrefab, Vector3.forward, Quaternion.identity); }) if (Input.GetButtonDown("Fire")) { Debug.Log("按住了开火键"); // GameObject crtPlayer = Instantiate(playerPrefab); GameObject crtPlayer = Instantiate(playerPrefab, Vector3.forward, Quaternion.identity); } }

5G游戏 unity

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:VB编程:Timer控件实例幼儿识字卡片-35_彭世瑜_新浪博客
下一篇:Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day40】—— 数据库7
相关文章