Unity零基礎到入門 ??| Time(時間)和Input鍵盤及鼠標輸入方法
首先介紹兩個概念:現實時間和游戲時間
大多數Time類都是依賴于游戲時間的。
現實時間也就是不依賴于程序內部,就算程序暫停也會繼續計算的真實時間,而游戲時間是基于程序內部的,可以自行調整。
我們這里用的都是游戲時間
下面來用代碼示例學一下?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小時內刪除侵權內容。