iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
自我挑戰組

Unity 自主研究學習系列 第 24

Unity自主學習(二十四):物件移動(3)

  • 分享至 

  • xImage
  •  

今天接著把物件移動寫出來吧!昨天知道了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",我們之後再找機會接著仔細講。
照著目前程式運作,也還沒辦法達到心中所想的狀態。

運行結果:按一下只前進一點點,長按著只有最初前進一下,之後就沒有反應了。
Yes
明天接著改。


上一篇
Unity自主學習(二十三):物件移動(2)
下一篇
Unity自主學習(二十五):物件移動(4)
系列文
Unity 自主研究學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言