快速連結

2016年4月22日

【淺顯易懂系列】Unity基本概念(C# + JS)


因為最近有很多遊戲設計系或是視覺系的孩子們需要Unity的程式教學,所以特別寫了超淺顯易懂的版本出來~
雖然可能寫得很大概,但主要是給「僅僅理解」就好的人看的!
如果有寫錯請多多包涵並且歡迎留言告知!


Unity本身的介面就請讓我先行略過,主要是講程式碼的部分與結構:


變數


變數,就是會變動的屬性。
就像是RPG遊戲內會有的HP、MP、攻擊力之類的,這些在程式內都視為變數。
在程式碼最上方可以先作「宣告」,讓整支程式都能使用;也能夠在函式內宣告,那只能在函式內使用。


JS
var TheFloat :float;  // 浮點數(有小數點的數字)
var TheInt :int;  //整數
var TheString :string; //文字字串

var TheVector3 :vector3;  //三維座標
var TheTexture:Texture;   //宣告一個貼圖


C#
float TheFloat = 1.0;  // 浮點數(有小數點的數字)
int TheInt;  //整數
string TheString = ""; //文字字串



函式


函式就是「作甚麼」。

JS
function 這叫作函式()
{
  //實行內容
}

CS

void 這叫作函式()
{
  //實行內容
}



例如我想叫他作跑跳碰--
JS

function run()
{
  //寫了很多行跟跑有關的程式
}

function jump()
{
  //寫了很多行跟跳有關的程式
}

只要在某個地方寫上:
run();
就會執行「跑步」, 這叫作「呼叫函式」。
可是要寫在哪裡呢?
要寫在Unity先幫你寫好的function內


這些是Unity先幫你寫好的function:


Awake() → 當跳到這個場景就執行,通常拿來做一些變數的初始值設定。
OnEnable() → 當這個掛著這支程式的物件被打開的時候會執行。
Update() → 每一影格都會執行一次。(秒數不定)
LateUpdate() → 每一影格結束後會執行。(秒數不定)
OnDestroy() → 你要刪除物件的時候會執行。
OnDisable()→你把物件給隱藏起來看不到的時候會執行。


當然還有更多,就不一一描述了。



如果打開這個場景後就要讓他跑。
那就要寫在Start()內。
直接來寫一個簡單的程式碼吧:

JS

var Human:GameObject;

function Start()
{
  run();
}

function run()
{
  Human.transform.localPosition += Vector3(2f, 0, 0);
}


但是只能跑一下,應該是說僅僅只是移動一點點距離。
所以如果想讓他一直跑一直跑該怎麼辦呢?

JS

var Human:GameObject;

function Update()
{
  run();
}

function run()
{
  Human.transform.localPosition += Vector3(2f, 0, 0);
}

這段程式碼還可以修正的更完美,不過今天就到這裡為止囉!

沒有留言:

張貼留言

歡迎大家留言提問,我會答的都會盡力回答!
如果太久沒出現回應就是我又忘記回來看留言了TAT