在動作分離版的設計,將上船、下船以及船的移動都分離出來,畫出簡略的uml圖如下:
這個類是用來控制具體的遊戲事件,有三個方法:start(),update(),和ssactionevent()。start()方法用於將ssdirector例項化,update()方法用於實現具體的遊戲事件,ssactionevent()方法則介面了issactioncallback。
public
class
ccactionmanager
:ssactionmanager
, issactioncallback
protected
newvoid
update()
else
}else
}else
if(hit.transform.tag ==
"boat"
&& scenecontroller.boatcapacity !=2)
}}base
.update()
;}public
void
ssactionevent
(ssaction source,
ssactioneventtype events = ssactioneventtype.competeted,
int intparam =0,
string strparam =
null
,object objectparam =
null
)}
這個類是用來讓船動起來
public
class
ccboatmoving
:ssaction
public
override
void
start()
public
override
void
update()
else
if(scenecontroller.boat_position ==0)
scenecontroller.
check()
;this
.destroy =
true
;this
.callback.
ssactionevent
(this);
}}
這個類是用來控制下船
public
class
ccgetoffboat
:ssaction
public
override
void
start()
public
override
void
update()
}}else
if(scenecontroller.boat[side]
.transform.tag ==
"devil")}
}}else
if(scenecontroller.boat_position ==0)
}}else
if(scenecontroller.boat[side]
.transform.tag ==
"devil")}
}}scenecontroller.boat[side]
=null;}
scenecontroller.
check()
;this
.destroy =
true
;this
.callback.
ssactionevent
(this);
}}
這個類是用來控制上船
public
class
ccgetontheboat
:ssaction
public
override
void
start()
public
override
void
update()
if(scenecontroller.priests_start[i]
== gameobject)}}
else
if(scenecontroller.boat_position ==1)
if(scenecontroller.priests_end[i]
== gameobject)}}
if(scenecontroller.find ==1)
gameobject.transform.parent = scenecontroller.boat_obj.transform;
if(scenecontroller.boat[0]
==null
&& scenecontroller.find ==1)
else
if(scenecontroller.boat[1]
==null
&& scenecontroller.find ==1)
} scenecontroller.find =0;
this
.destroy =
true
;this
.callback.
ssactionevent
(this);
}}
將所有指令碼掛載在乙個空物件即可,注意調整相機位置
太難了,就算有前人栽樹我也很難去真正理解透。最終做的這份東西是站在巨人的肩膀上各種縫縫補補弄成的。至於新加的要求裁判類,由於時間不夠並沒來得及去實現。。。日後有空一定補上。
具體**以及資源: link.
Unity 3D 牧師與魔鬼遊戲之智慧型幫助
在之前的作業中,曾經實現過牧師與魔鬼這個益智小遊戲,但是一些小朋友玩這個遊戲的時候可能有些困難 比如十年前在qq空間玩這個遊戲的我 因此,我們可以開發乙個autonext的功能,給小朋友提示一下下一步該怎麼操作。由於這次的智慧型設計比較簡單,只有三個牧師和三個魔鬼,因此我們可以使用狀態圖來幫助分析遊...
Unity3D 魔鬼與牧師遊戲記錄 MVC架構
遊戲成品圖 設定60s倒計時 60s後如果未能安全運送所有魔鬼與牧師,遊戲失敗。嘗試改進介面,對一些東西還不太熟悉。1列出遊戲中提及的事物 objects object 三個魔鬼 用白cube表示 三個牧師 用黑sphere表示 一艘船 兩個岸 2遊戲架構 iscenecontroller.cs和i...
3D遊戲引擎設計與實現(3)
經過幾天編寫,3d遊戲引擎的架構 大體架構已經搭好。下面來每個模組說明 l 引導程式 engine mm3dmain.exe l dll管理模組 engine bin mm3drun.dll l 引擎管理模組 engine bin mm3dengine.dll l ui模組 engine bin m...