Unity的prefab(預製體)與UE4的Blueprint(藍圖)相比,各有什麼優缺點?

時間 2021-05-11 23:48:06

1樓:ggffss

這種事情仁者見仁智者見智。

有些人還說C++很好呢,然而在我看來就是一坨屎。

另外:prefab 和 Blueprint 應該並不在乙個層面。Unity中能拿來比較的大概是 2020.1 Preview 的 Visual Scripting ?

2樓:乙隻大鳥

藍圖與Unity的Prefab在「語言層面」有著本質的不同。

Unity的Prefab可以認為是序列化的物件,用的時候載入的Prefab本身和用載入的prefab instantiate出來的並沒有什麼區別。

UE4的藍圖本身可以認為是序列化的類,載入藍圖僅僅是相當於載入了乙個類,用藍圖例項化的物件才是物件。即如果你把藍圖載入到記憶體,然後對這個藍圖類用GetClass,和你對這個藍圖例項化出的物件呼叫GetClass得到的結果是不同的,對這個藍圖例項化的物件呼叫GetClass的到的就是乙個代表這個這個藍圖類的UClass,而對這個藍圖本身呼叫GetClass,得到的則是乙個代表UBlueprintGeneratedClass類(其實就是UClass的子類)的UClass。當然,在實際的實現上會有CDO(Class Default Object),不過這屬於實現的範疇,而不是「語言層面」的理解。

要說優缺點,其實Prefab和藍圖類在使用起來的區別並不大,因為雖然Prefab可以在「語言層面」上認為是序列化物件,但我們載入之後也很少會直接用這個物件,總是要Instantiate乙份再用。

硬要說的話,因為藍圖類在「語言層面」上被理解為序列化的類,因此它有基類,也可以被繼承,總體來說要比Prefab更加貼近程式設計師的理解,而Prefab則更貼近策劃美術對於乙個「資源」的認同。

3樓:Syngnath

這兩個不能對比,因為根本就是兩個玩意

預製體顧名思義把一些引數資料化儲存下來,方便復用

藍圖是視覺化程式設計,通過連線來實現功能,但是我覺得一點不好用

4樓:鍵盤俠·伍德

prefab不知道,跳過。

藍圖的用處總結為以下(個人總結,不喜勿噴):

1)把藍圖-當作-低效能指令碼語言

我不是說藍圖的效能很差(此處不要抬槓),只是在開發中評估藍圖使用效能的時候要預設是乙個比C++差百倍的工具,來評估能不能寫在藍圖裡。

所以如果寫乙個功能有效能顧慮,那就直接C++。比如看到tick的邏輯或者高頻率的timer,那麼就不要再考慮藍圖實現了。

2)把藍圖作為功能向外界的視窗(面向策劃快速原型,面向其他功能的快捷使用)

很多習慣於C++的程式會進入乙個誤區,就是我只管我C++功能寫完,藍圖是個什麼XX玩意兒(劃掉),其實這麼做就完全利用不到藍圖帶來的便利性了。

我們的C++類中是否需要把一些函式丟擲給藍圖使用,是否可以讓藍圖過載我們的一些函式,這些都是需要考慮到的點,然後完成快速的功能協作開發。

3)把藍圖作為靈活迭代的工具

我們在C++封裝函式的時候應該盡可能考慮到後續版本迭代帶來的修改可能,,這樣一旦有需求修改,可以快速的在藍圖上實現一版體驗效果,後續再考慮是否要移植回C++裡,避免了乙個功能細節反覆修改帶來的麻煩。

4)BAAC(Blueprint as a Config)(對就是我編的)把藍圖作為配置

ue4給了我們DataTable來配置資料,但是藍圖是更為靈活的配置工具。

除了修改屬性的預設值以外,通過繼承可以實現可變化的配置,通過CDO(Class Defualt Object)可以快速地在不例項化物件的時候就獲取我們配置的預設值。而且藍圖還可以實現功能上的擴充套件,實在是比DataTable這種方式的配置靈活太多。

5樓:黑田光

個人感覺

Prefab的程式(或者說「遊戲規則」)是掛上去的,和其他的模型等部件沒有地位差異

藍圖則是程式(規則)優先,然後再把其他元素放上去個人是業餘愛好者(偏向玩法和劇情),並非專業人士,從學習體驗來看,Prefab更加直觀和簡單,但是在在有耐心啃程式(C++)的情況下,藍圖更好擴充套件且執行效率更高

Unity碰撞體嵌入的原因是?

皮皮關 現在廣泛使用的實時剛體物理引擎,計算精度並不高,是在精度和效率之間妥協的產物。特別是多個剛體疊加,產生連續運算時,每個剛體差一點點,整體差的就比較明顯了。試了一下多個平板疊在一起的情況,確實如題主所說嵌入比較嚴重,修改了Interpolate與Collision Detection 選項以後...

如何在unity中實現炮彈碰撞體的敵我區分。?

北海若 Layer可以用來忽略一些物體之間的碰撞判定 但如果你需要的是打到自己人炮彈判定碰撞但是不扣血這種,可以在OnCollisionEnter裡判斷other.gameObject.name或者設定乙個用來判斷的型別,加個Friendly成員other.gameObject.GetCompone...

預製混凝土構件的尺寸 重量有何限制?

淺淺的微笑 總體原則是 尺寸由模臺決定,重量按圖紙拆分決定 目前國內流轉台模寬度為3 4公尺,長度9 10公尺,固定台模3.5 4公尺,長度10 12公尺,所以相應構件的尺寸都會小於等於這個尺寸。重量主要看構件厚度。目前市場PC預製構件應用非常廣泛,種類也較多,主要管片 管廊,樓板 牆板 梁 柱等,...