MonoBehaviour類的實例化
在Unity的資源中MonoBehaviour是比較特殊的一類,
在開發(fā)中,繼承MonoBehaviour類的腳本只有通過掛載到某個GameObject上才能夠被實例化(即拖拽到Inspector上).并且可以在Inspector上修改Public變量,
那么問題就來了,Inspector中修改的變量值,是不會修改腳本本身的,那么這些變量的值保存在哪里?
其實在Unity中只要是GameObject的Inspector界面中的組件都是會生成引用的,而引用在生成游戲后都保存到了.assets文件中.
MonoBehaviour保存有實例化腳本的關(guān)鍵信息,在序列化后會關(guān)聯(lián)產(chǎn)生PPtr<MonoScript>,而PPtr<MonoScript>指針指向一個MonoScript的資源這個文件的信息非常簡單直接標明了MonoBehaviour所對應的程序集,命名空間,類信息等.(MonoScript提供了MonoBehaviour實例化最基本的信息,是哪個類)


在通過MonoScript獲得最基本的信息之后,根據(jù)這個信息獲取相應的類信息后,MonoBehaviour中的二進制數(shù)據(jù)就能夠解析并且填充到類中的各個變量里,這樣成功實例化就成功了.

通過上面的流程大致摸清楚了MonoBehaviour的解析和實例化流程,
講一個用到的例子:
如果有一個MonoBehaviour中保存了大量的文本信息,而這些文本信息是我們需要提取的內(nèi)容,
當用UABE或者assetstudio打開時通常就會彈出窗口需要我們自己添加這個程序集的路徑,
在添加完后MonoBehaviour才能夠被解析.
如果這過程中我們選擇不添加程序集的路徑,則會解析失敗.

可以得出一個結(jié)論:如果單純把MonoBehaviour導出成二進制(raw),由于二進制文件中并沒有MonoScript的詳細信息只有指針信息,所以解析難度較大,需要根據(jù)上面的流程自己寫個腳本對其進行解析,進而也可以實現(xiàn)MonoBehaviour一些較簡單的修改.