指令碼互動
優雅地管理你的**
委託、事件、單例在unity3d中的使用
1,靜態函式,直接使用類呼叫。
basicgrammar.fun();
2,直接引用,建立prefab,掛載指令碼。
public basicgrammar bg; 在面部中掛載有basicgrammar指令碼的prefab。
優點: 簡單高效,編輯器中直接可見。
缺點: 指令碼間強耦合,乙個指令碼的變化可能帶來鏈式反應,也容易出現"null referenceexception"異常
3,獲取到物件,使用sendmessage。
gameobject.find(gameobject.name).sendmessage("fun3"); //能呼叫private型別函式
優點: 低耦合,呼叫方便。
缺點:不言而喻基本沒什麼程式設計師愛用,效率較低,以字串的形式呼叫不是型別安全的,出錯除錯起來十分困難
4,獲取到物件,直接呼叫函式。
gameobject.find(gameobject.name).getcomponent().fun2();
5,使用delegate和event。
在b類中獲得a類的物件,然後將b類的方法註冊給a類的委託(a.delegatea = funb)即可。
a類在需要的地方呼叫委託即可呼叫到b類的函式。//能呼叫private型別函式
6,使用單例模式。
basicgrammar.instance.fun();
優點: 邏輯結構清晰,有效解決了多對一的呼叫需求
缺點: 要保證單例的構造比子模組的構造早,單例的生命週期要控制好,單例類後期會變得極其臃腫
思考:使用1:a,b,c,danli類,4個類全部掛載。danli類初始化時拿到a,b,c,3個類的物件,a,b,c類之間的互動使用danli類裡的a,b,c的物件。
使用2:a,b,c,danli類,4個類全部掛載。a,b,c,3個類初始化時將需要使用的類註冊到danli類的事件裡,然後a,b,c類之間的互動使用danli類裡的事件。
7,使用觀察者模式(或者是類似於觀察者模式),完成訊息之間的通訊。
Unity3D與Web之間的通訊
本示例利用u3d2.5中的island demo專案為例,加入 顯示unity3d與web之間的通訊方法。執行環境為unity4d 4.0 由我的導師進行總結,很棒!1 unity3d中設定 在u3d下建立空物體webconnect,為其新增 webconnect.js 具體 如下 webconne...
Unity3D學習之(抽象類)
首先今天老師帶領我們回顧了一下繼承 1 什麼叫繼承 繼承 子類繼承父類用 2 繼承的格式是 子類宣告 父類 3 繼承都有哪些特徵呢?下面 我們一一道來 繼承的特徵 子類擁有父類的所有屬性和方法 除構造方法外 子類只能訪問父類用public和protected修飾的屬性和方法 單繼承 用sealed ...
Android和Unity3D之間的資料互動
如果將乙個unity3d專案匯出成android工程,然後將該專案作為另乙個android專案的module使用時,如果涉及到相互呼叫,可以寫乙個activity繼承自unityplayeractivity public class unityactivity extends unityplayer...