1. 程式人生 > >Unity3D——學習分享(八)簡單程式碼控制主角移動

Unity3D——學習分享(八)簡單程式碼控制主角移動

簡單的程式碼控制主角的移動

首先先分享個概念,方便大家對移動程式碼的理解

Time.deltaTime

它是系統變數,封裝在Time類中,含義是距離上一幀所經歷的時間(單位為秒)。它不受遊戲幀率的影響,我們有時需要主角移動以秒為單位而不是以幀為單位,乘以Time.deltaTime就可以實現。舉個簡單的例子,要知道不同配置的電腦效能不同,所以每幀執行的速率也不相同,設想我們在玩賽跑遊戲,配置好的電腦移動速度比配置差的電腦移動速度快,那還拿什麼去跟人家配置高的電腦比?所以我們乘以Time.deltaTime這個變數就是可以讓不同配置的電腦保持相同的速度,這樣才能保證遊戲的公平性和好的體驗感。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveControl : MonoBehaviour {
public float  moveSpeed=5.0f;//移動速度
	void Start () {
	}
 	void Update () {	
 	 if (Input.GetKey(KeyCode.W)) {//檢測鍵盤是否按下W鍵,若按下則控制物體沿Z軸正方向移動
	this.transform.Translate(Vector3.forward*
moveSpeed*Time.deltaTime); } if (Input.GetKey(KeyCode.S)) {//檢測鍵盤是否按下S鍵,若按下則控制物體沿Z軸負方向移動 this.transform.Translate(Vector3.back*moveSpeed*Time.deltaTime); } if (Input.GetKey(KeyCode.A)) {//檢測鍵盤是否按下A鍵,若按下則控制物體沿x軸負方向移動 this.transform.Translate(Vector3.left*moveSpeed*Time.deltaTime); } if
(Input.GetKey(KeyCode.D)) {//檢測鍵盤是否按下D鍵,若按下則控制物體沿x軸正方向移動 this.transform.Translate(Vector3.right*moveSpeed*Time.deltaTime); } } }