今天接著把物件移動寫出來吧!昨天知道了Down和Up的差別之後,接下來就是要了解要將程式碼寫在哪裡
那我們知道在class裡面還包著Start和Update這兩個方法,除此之外還有其他雜七雜八的
而我們"Input.GetKeyDown()"只是負責偵測按鍵是否有按下的
因此我們必須把他寫在會不斷重複偵測的方法裡面,也就是Update裡面,因為這樣遊戲執行區每跑一幀畫面就都會執行一次判斷。而為了讓腳本知道按下按鍵之後要執行甚麼,所以也必須用到if去做判斷。
那麼我們直接從昨天的Unity官方的範例程式下去改。我們先改成這樣...
using UnityEngine;
public class Move : MonoBehaviour
{
void Update()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
transform.localPosition += new Vector3(2.5f, 0, 0) * Time.deltaTime;
}
}
}
transform.localPosition:這是代表我們要更改腳本現在控制物件的transform欄裡的Position
而我們Position是一個有(X,Y,Z)三個座標數值的,所以我們也必須給予Vector3(2.5f, 0, 0),三個數值
而我想做的是...按住方向鍵,物件會朝著那個方向前進,也就是說座標數值會不斷增加,因此是用"+="。
而可以注意到後面我還乘上了一個"Time.deltaTime",我們之後再找機會接著仔細講。
照著目前程式運作,也還沒辦法達到心中所想的狀態。
運行結果:按一下只前進一點點,長按著只有最初前進一下,之後就沒有反應了。
明天接著改。