影片範例
這堂課希望你能學會:
- 知道unity裡面的物件,基本上都是GameObject。
- 知道GameObject.Find("XXXX")的意思,並且改寫第一堂的程式碼,使執行效率更佳:
- 在public class main:MonoBehaviour{下面,void Start(){上面,選告一個GameObject 叫做player。
- 並在Start程式碼片段中,加入player=GameObject.Find("player");。
public class main : MonoBehaviour { GameObject player; void Start () { player=GameObject.Find ("player"); }
- 並把Update程式片段內的GameObject.Find("player"),都換成player
if (Input.GetKey ("w")) { player.transform.position += new Vector3 (0, 0, 0.05f); } if (Input.GetKey ("s")) { player.transform.position += new Vector3 (0, 0, -0.05f); }
- 這堂課老師有解釋什麼是道判斷式if,下面兩段程式碼,第二段的不會執行,知道為什麼嗎?
//第一段程式碼 if (3>1) { player.transform.position+= new vector3(0,0,1); } //第二段程式碼 if(3>10){ player.transform.position+= new vector3(0,0,5); }
- 創建一個叫做speed的浮點變數(float),並命令他作為全域變數(public)
- 並在start程式碼片段內,設定一個初始值0.5f
- 用speed取代上一堂填入的0.05f
public class main : MonoBehaviour {
public float speed;
GameObject player;
void Start () {
speed = 0.05f
player=GameObject.Find ("player");
}
void Update ()
{
if (Input.GetKey ("w")) {
player.transform.position += new Vector3 (0, 0,speed);
}
if (Input.GetKey ("s")) {
player.transform.position += new Vector3 (0, 0, -speed);
}
}
}
- 因為我們宣告了全域變數speed,所以我們現在可以在Uinty的介面中看到speed變數
- 在課堂最後,將unity初始的攝影機改命名為cam,並加入了些程式碼讓他會更隨player
- 最終的程式碼如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class main : MonoBehaviour
{
public float speed;
GameObject player;
GameObject cameraObj;
Vector3 camera2player;
// Use this for initialization
void Start ()
{
player = GameObject.Find ("player");
cameraObj = GameObject.Find ("cam");
camera2player = cameraObj.transform.position - player.transform.position;
speed = 0.5f;
}
// Update is called once per frame
void Update ()
{
cameraObj.transform.position = player.transform.position + camera2player;
if (Input.GetKey ("w")) {
player.transform.position+= new Vector3 (0, 0, speed);
}
if (Input.GetKey ("s")) {
player.transform.position += new Vector3 (0, 0, -speed);
}
if (Input.GetKey ("a")) {
player.transform.position += new Vector3 (-speed, 0, 0);
}
if (Input.GetKey ("d")) {
player.transform.position += new Vector3 (speed, 0, 0);
}
}
}
這堂課最後結果下載
創建一個叫做seeed的浮點變數(float),並命令他作為全域變數(public)
回覆刪除seeed 錯字?
!我打錯了~ 應該是要打speed才對~ 感謝您的指正~
刪除倒數第二區code應該有錯:speed = 0.5f
回覆刪除是0.05f才對
喔喔 感謝提醒~~我改一下
刪除感謝教學
回覆刪除敢問大大在Vector3(0,0,0.05f)
的f 是代表甚麼呢
0.5f的,f是代表float(浮點數的意思)。在c#的世界中,寫0.05是不合法的,必須要寫成0.05f。
刪除