簡體   English   中英

如何將游戲對象從層次結構設置為預制件。 統一

[英]How to set a game object from hierarchy to a prefab. unity

我有一個名為 audiomananger 的腳本,它是一個可編寫腳本的對象,我需要在其上放置一個滑塊,因此當我更改滑塊值時,音量也會如此,但我無法將滑塊從層次結構拖動到預制件,任何幫助表示贊賞。 謝謝。 在此處輸入圖像描述

您不能在腳本對象內的場景中引用游戲對象,因為它是不合理的並且忽略了類獨立性。 例如,當您將Scribtable Object資產文件從項目復制/粘貼到外部時,無法找到它的引用,因此它們不用作 Asset Bundle。 Scribtable Object的用途是存儲日期,它們本身用作參考而不是參考接收器。 為此,您必須使用Prefab中的MonoBehavior類。

MonoBehavior : 特殊的統一類,支持運行時事件,可以存儲為實例,該類的實例可以在場景或項目中檢索數據,但類主體中數據的存儲是有限的。

Prefab :可以將資產數據和 MonoBehaviour 存儲在它們的體內,Perfab 不屬於特定的游戲對象或單一行為,並且可以從其他游戲對象中引用,只要它們是它們自己的一部分,父母或孩子的。

Scribtable Object :該類用於在項目期間存儲和處理數據,可以克隆並防止數據被復制。 它是可分割的,但數據在所有引用中均等存儲,因此最好將其用於存儲設置或配置文件等公共信息。 如上所述,對場景的引用不是類的條件。

純 C# 類:這些類也在 C# 中,可以是數據的一部分。 雖然它不能在代碼之外進行配置,但對於總結編程階段非常有用。

只需在 MusicSlider 和 SoundSlider 變量上方放置一個 Range() 屬性。https://docs.unity3d.com/ScriptReference/RangeAttribute.html

Unity 會將這些顯示為滑塊,然后在 ScriptableObject 定義文件中顯示。 想想 Scriptables,而不是類或實例。 如果您在運行時(通過代碼或在編輯器中)更改文件,則新值可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM