Unity技術(shù)博客 - 單例的使用(單例的幾種寫(xiě)法和一個(gè)實(shí)例)
http://www.reibang.com/p/132192a1736d
http://www.manew.com/thread-89636-1-1.html
上一篇文章講述了如何設(shè)計(jì)C#單例的模板纤控。也隨之拋出了問(wèn)題:
如何設(shè)計(jì)接收MonoBehaviour生命周期的單例的模板?
如何設(shè)計(jì)?
先分析下需求:
??1.約束腳本實(shí)例對(duì)象的個(gè)數(shù)。
??2.約束GameObject的個(gè)數(shù)。
??3.接收MonoBehaviour生命周期狭莱。
??4.銷(xiāo)毀單例和對(duì)應(yīng)的GameObject损拢。
??首先虽画,第一點(diǎn),約束腳本實(shí)例對(duì)象的個(gè)數(shù),這個(gè)在上一篇中已經(jīng)實(shí)現(xiàn)了婚肆。
??但是第二點(diǎn),約束GameObject的個(gè)數(shù),這個(gè)需求,還沒(méi)有思路,只好在游戲運(yùn)行時(shí)判斷有多少個(gè)GameObject已經(jīng)掛上了該腳本,然后如果個(gè)數(shù)大于1拋出錯(cuò)誤即可驳阎。
??第三點(diǎn),通過(guò)繼承MonoBehaviour實(shí)現(xiàn),只要覆寫(xiě)相應(yīng)的回調(diào)方法即可脑豹。 第四點(diǎn),在腳本銷(xiāo)毀時(shí),把靜態(tài)實(shí)例置空郑藏。 完整的代碼就如下所示
總結(jié):
目前已經(jīng)實(shí)現(xiàn)了兩種單例的模板,一種是需要接收Unity的生命周期的,一種是不需要接收生命周期的,可以配合著使用。雖然不是本人實(shí)現(xiàn)的,但是用起來(lái)可是超級(jí)爽快,2333瘩欺。
附:我的框架地址
轉(zhuǎn)載請(qǐng)注明地址:涼鞋的筆記