善用繼承可以讓遊戲有更多的變化且減少無意義的COPY&PASTE(?)
U3D的JS繼承用法如下
class Parent {
function Start () {
print("parent's Start");
A();
}
function A () {
print("parent's A");
B();
}
function B () {
print("parent's B");
C();
}
function C () {
print("parent's C");
}
}
class Children extends Parent {
function A () {
print("Children's A");
B();
}
function C () {
super.C();
print("Children's C");
}
}
如果在GameObject上附加Children時會發現此GameObject的執行結果為
parent's Start
Children's A
parent's B
parent's C
Children's C
在寫怪物AI時用繼承的方式會輕鬆很多,底層先寫好每隻怪都會做的動作(移動、攻擊等等),繼承後就可以按不同需求附加個別處理如(特殊攻擊)。
2011年9月22日 星期四
2011年9月15日 星期四
UNITY3D - 圖層觀念
U3D裡面有2D物件也有3D物件,因此要注意物件之間是否會造成顯示異常。
2D世界其實跟3D世界不屬於同一個世界...
可以把2D世界當成是貼在鏡頭前,所以2D物件一定會在介面上擋到3D物件。
而2D世界中的圖片會依據transform.position.z來當作圖層設定,z軸越大表示圖越上面。
例:
A圖片z軸為0
B圖片z軸為1
C圖片z軸為2
呈現出來就會變成
┌───────┐
│ ┌───────┐
│ A │ ┌───────┐
│ │ B │ │
└───│ │ C │
└───│ │
└───────┘
要注意的是在OnGUI底下畫出來的東西圖層是最高的,所以2D物件也會被OnGUI的東西蓋到喔。
2D世界其實跟3D世界不屬於同一個世界...
可以把2D世界當成是貼在鏡頭前,所以2D物件一定會在介面上擋到3D物件。
而2D世界中的圖片會依據transform.position.z來當作圖層設定,z軸越大表示圖越上面。
例:
A圖片z軸為0
B圖片z軸為1
C圖片z軸為2
呈現出來就會變成
┌───────┐
│ ┌───────┐
│ A │ ┌───────┐
│ │ B │ │
└───│ │ C │
└───│ │
└───────┘
要注意的是在OnGUI底下畫出來的東西圖層是最高的,所以2D物件也會被OnGUI的東西蓋到喔。
標籤:
UNITY 3D
訂閱:
文章 (Atom)