日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

继承MonoBehaviour类的优缺点和相关报错

發布時間:2025/3/17 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 继承MonoBehaviour类的优缺点和相关报错 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unity3D文檔里雖然說所有腳本繼承MonoBehaviour類,但如果你想自定義類,就可以不用繼承MonoBehaviour,但是這個類只能調用其中的方法和屬性,無法拖到場景的物體中使用。

所有從MonoBehaviour繼承過來的類,Unity都會自動創建實例,并且調用被重載的方法,例如start,Update等方法。

?

如果不繼承Mono會有哪些好處呢?

1:節約資源。

?

如果不繼承Mono會有哪些壞處呢?

1:不能使用Invoke和Coroutine了。

2:調試不方便了,不能在Inspector和Debug tab看到參數。同時如果一個類不繼承Mono,那么這個類的List表也無法在Debug界面看到。

3:不能自動調用Start,Update,OnGUI等方法。

?

考慮繼承的情況:
1、MonoBehaviour里面的方法比如Start(), Awake(), Update(), FixedUpdate(), OnGUI(),還有變量比如gameObject,這幾個方法不管你用哪一個,必須要繼承MonoBehaviour,用不用MonoBehaviour關鍵看要實現什么功能和屬性。

2、GameObject還是要繼承MonoBehaviour的,這樣才能new實例化一個對象,但是其他類不要繼承就行了。

?

盡量避免繼承的情況:

1、如果你的類不需要引擎提供的初始化,各種物理,渲染,著色器的回調,最好不要繼承MonoBehaviour,游戲是需要優化節約資源的。如果你本身不需要那些功能,繼承后,當引擎接觸事件,觸發的時候,就會反射調用個各種函數,這是很需要耗費資源的。

2、當需要獲取用戶鼠標鍵盤輸入的時候?研究一下是否可以通過外部類的update調用自身方法實現。

?

繼承Mono會有一個BUG:

如果你繼承了Mono的類,你就不需要創建它的實例,而且你也不能new創建。雖然編譯可以通過,但是執行的時候就會有個一個錯誤顯示在edit的console窗口,這時候不管你new后面是否為空,但是系統顯示為空,這就是一個BUG了:我的類繼承了你,雖然不能new出來,但是它認為,這不算一個錯誤啊。所以當獲取對象或其值報錯為null時,考慮是否繼承了monobehaviour類。

總結

以上是生活随笔為你收集整理的继承MonoBehaviour类的优缺点和相关报错的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。