using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript1 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown("left"))
{
transform.Translate (-1, 0, 0);
}
if (Input.GetKeyDown("right"))
{
transform.Translate(1, 0, 0);
}
if (Input.GetKeyDown("up"))
{
transform.Translate(0, 1, 0);
}
if (Input.GetKeyDown("down"))
{
transform.Translate(0,-1, 0);
}
}
}
1.首先第一個遇到的問題是上下左右鍵的設置:
一開始上網查對應的鍵值是對應如下
UpArrow 方向鍵上
DownArrow 方向鍵下
RightArrow 方向鍵右
LeftArrow 方向鍵左
但Unity表示錯誤,後來還打了第一個字的大寫像Right結果也是錯誤,簡簡單單的上下左右卻經歷這麼多錯誤QAQ
2.再來GetKey跟GetKeyDown的選擇
GetKey 是當按鍵按下後持續執行,直到放開按鍵結束
GetKeyDown則是按下後瞬間執行一次
Getkey設定X軸移動1單位在遊戲裡面執行很明顯太快,當按一下右鍵就飛出去畫面了,而GetKeyDown我認為比較適合其他遊戲,像是要做接東西的遊戲,比如天上掉寶藏或石頭,然後控制物體左右移動來選擇要接寶藏或是避開石頭。所以我認為想做教程的移動模式比較適合Getkey。
而最後決定修改成小數,也就要加入浮點數來解決移動太快的問題。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class moving : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKey("left"))
{
transform.Translate(-0.1f, 0, 0);
}
if (Input.GetKey("right"))
{
transform.Translate(0.1f, 0, 0);
}
if (Input.GetKey("up"))
{
transform.Translate(0, 0.1f, 0);
}
if (Input.GetKey("down"))
{
transform.Translate(0, -0.1f, 0);
}
}
}
最後結果明顯成功不少
結果展示:
接著希望加入背景與終點,還需要更多遊戲控制~~~
https://www.796t.com/content/1545021202.html
https://www.gameislearning.url.tw/article_content.php?getb=2&foog=9997