昨天學了這麼多Unity基本介面的操作,但感覺還沒有用武之地,還沒有一個實際創作在遊戲上的東西,今天總算學到如何透過程式碼移動物件了!
Game視窗是真正玩遊戲時會出現的畫面,是出於Scene以Main Camera框起來的場景。
框取欲出現在Game的畫面(在Scene中移動Main Camera):點選Main Camera→點Move Tool→移動Scene中的Main Camera
成果~~
Unity的欄位版面是可以做調整的。
如下圖,Game視窗可以拉到旁邊,會更方便預覽實際的遊戲畫面。
調整遊戲的解析度=遊戲窗口的長寬比,在game欄位這邊看到,預設它的長寬比例寫的是Free Aspect 。
Free Aspect 代表會根據Game欄位的比例來做調整,只要調整它的視窗大小,則Scene的 Main Camera的範圍也會跟著改變。
如下圖,原本Game視窗及 Main Camera的範圍是這樣。
只要調整Game的視窗大小, Main Camera的範圍也會跟著改變。
如何固定遊戲的解析度?
點選 Free Aspect 跑出下拉式選單來點選。
如果這邊沒有想要的解析度,也可以按下面的+號→輸入Width&Height值 →按OK
固定解析度之後,不管再怎麼調整Game視窗大小,Main Camera的比例就是固定不變的。
Start()是遊戲初始化的地方,只有一開始會被執行一次。
Update()則會不斷地被重複執行,直到遊戲結束。
(下圖是預設的程式碼)
新增檔案在Assets資料夾(下方Project欄位), 點滑鼠右鍵Create→選擇C# Script →命名。
只要點選這個檔案,右邊的Inspector會顯示出該檔案的內容(程式碼)。
注意:檔案名稱一定要與class的名稱相同
用unity裡面內建的transform.Translate(x軸上要移動的數值, y軸上要移動的數值, z軸上要移動的數值)
void Update()
{
transform.Translate(0.1f,0,0);
}
注意:
舉例:以物件移動距離來看,某物件每執行一次Update就會在y軸往正的方向移動1格,
若電腦A在1秒鐘可執行update 100次,代表該物件1秒鐘可移動100格,
若電腦B在1秒鐘只能執行update 1次,代表該物件1秒鐘只能移動1格,
〉在相同時間同款遊戲下,兩台電腦移動物件的距離卻不同。
void Update()
{
transform.Translate(0,1*Time.deltaTime,0);
}
Ex. 以物件移動距離來看,某物件每執行一次Update就會在y軸往正的方向移動1格,計算物件在一秒鐘內可移動幾格,就是 移動的格數* Time.deltaTime *一秒鐘可以執行幾次迴圈。
若電腦A在1秒鐘可執行update 100次, 代表Time.deltaTime=0.01則該物件1秒鐘可移動1*0.01 *100=1格。
若電腦B在1秒鐘只能執行update 1次,代表 Time.deltaTime =1則該物件1秒鐘可移動1*1*1=1格。
〉兩台電腦的執行結果是一樣的了!
在程式碼內宣告public變數speed
public class Player : MonoBehaviour
{
public float speed = 5f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.Translate(0,speed*Time.deltaTime,0);
}
}
但如果想要 宣告private變數但又想可以出現在Unity介面做調整,
在變數前面加上[SerializeField]
public class Player : MonoBehaviour
{
[SerializeField] float speed = 5f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.Translate(0,speed*Time.deltaTime,0);
}
}
雖然今天只有學到控制物件的小小一環,但有學到一個對遊戲來說很重要的概念—Game Loop,這個觀念對遊戲的程設很重要,如果不懂這個概念就沒辦法開始了呢!
參考網址:https://www.youtube.com/watch?v=nPW6tKeapsM&ab_channel=GrandmaCan-%E6%88%91%E9%98%BF%E5%AC%A4%E9%83%BD%E6%9C%83