第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否為新類 C# 的每個繼承執(zhí)行更新

是否為新類 C# 的每個繼承執(zhí)行更新

C#
尚方寶劍之說 2021-10-24 17:03:00
我有一個 Unity 腳本,它有一個Main類,其中計算和執(zhí)行游戲的所有邏輯。該類具有以下結(jié)構(gòu):public class Main : MonoBehaviour {    private OtherClass OtherGameLogic = new OtherClass(this);            private void Update ()     {        // all complex frame to frame calculations are done here.         // this is gpu and cpu intensive code...    }}現(xiàn)在我想要一個其他類來處理游戲中的其他一些邏輯。這個類需要在 Main 類中初始化,但也需要像 main 一樣訪問 Monobehaviour 類。這個類看起來像這樣:public class OtherClass{    private Main M;    public OtherClass(Main m)    {        M = m;    }      private void SomeMethod()    {        m.SomeFunctionThatNeedsMToRun();    }}這是否意味著UpdateMain中的Method 被調(diào)用了兩次?因為OtherClass采用Main的參數(shù)?因為如果是這樣的話,這對性能來說會很糟糕..我對 OOP 很陌生,C# 很一般,如果問題有點奇怪,我很抱歉。如果有什么不清楚的,請告訴我,以便我澄清:)
查看完整描述

2 回答

?
暮色呼如

TA貢獻1853條經(jīng)驗 獲得超9個贊

如果您不對其進行任何顯式調(diào)用,則更新將在場景層次結(jié)構(gòu)中每個啟用的游戲?qū)ο蟮拿總€啟用的組件/單一行為上每幀調(diào)用一次。

在您的情況下,您只是在做一個引用,而不是創(chuàng)建 Main 組件的新實例。因此,這里不會再調(diào)用一次。


查看完整回答
反對 回復(fù) 2021-10-24
?
一只斗牛犬

TA貢獻1784條經(jīng)驗 獲得超2個贊

將對象作為參數(shù)傳遞給方法不是繼承。

: MonoBehaviour旁邊Main的指定它繼承自MonoBehaviour。沒有任何東西繼承自Main.

如果您擁有OtherClass : MainOtherClass擁有一個Update方法,Unity 將調(diào)用該方法來更新它,而不是Update從其父類調(diào)用該方法。

如果您希望兩者都被調(diào)用,則Main.Update應(yīng)該protected virtual并且OtherClass.Update應(yīng)該protected override并且還需要顯式調(diào)用base.Update().


查看完整回答
反對 回復(fù) 2021-10-24
  • 2 回答
  • 0 關(guān)注
  • 180 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號