看板 GameDesign 關於我們 聯絡資訊
※ [本文轉錄自 C_Sharp 看板 #1IkI6PlJ ] 作者: euph (咬咬嚼嚼猴子口味) 看板: C_Sharp 標題: [問題] 請問unity的C#問題 時間: Tue Dec 24 13:54:29 2013 C#新手魯蛇一位 最近在用C#開發Unity的遊戲 有兩個問題想請問一下 首先問題一 是最近遇到一個在Unity裡切換Sence時保留物件的問題 只知道用DontDestroyOnLoad去保留物件 可是不知道切換了Sence之後要如何去取這個物件裡的東西 另外問題二 在研究的上面的問題的時候參考了FB SDK for Unity的範例 https://github.com/fbsamples/friendsmash-unity 其中有一段Code有點有看沒有懂 在 public class GameStateManager : MonoBehaviour裡面 這個GameStateManager沒有追加到GameObject實體的物件上 卻可以直接在MainMenu裡被拿來用 魯蛇小弟實在不懂其中道理 想請問一下這是什麼樣的技巧?? 我想可能是跟下方的Code有關係 還請C#高手能幫我解惑一下 delegate GameStateManager InstanceStep(); static InstanceStep init = delegate() { GameObject container = new GameObject("GameStateManagerManager"); instance = container.AddComponent<GameStateManager>(); instance.lives = StartingLives; instance.score = StartingScore; instance.highScore = null; current = then; return instance; }; static InstanceStep then = delegate() { return instance; }; static InstanceStep current = init; 感謝鄉民前輩 :) -- 樂於當宅男 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.118.185.164 ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: euph (219.118.185.164), 時間: 12/24/2013 13:55:01
akilight:問題1簡易解法:GameObject.Find or FindWithTag 12/24 14:31
akilight:或是自己寫個singleton把ref保留下來 12/24 14:32
akilight:問題2:你可以去研究一下static的意義和singleton模式 12/24 14:33
euph:感謝樓上 那請問一下ScriptableObject是不是和Singleton類似? 12/24 16:05
akilight:不一樣,ScriptableObject是可以存在硬碟中的檔案形式 12/24 17:05
akilight:讓你可以把他從硬碟中讀回來,用來存資料為主 12/24 17:06
lovecold:其實問題2他還是有加到實體物件上,他是動態產生跟加入的 12/30 13:10
lovecold:new GameObject("Game...")<==產生gameobject 12/30 13:12
lovecold:AddComponent<GameStateManager>()<==將script掛到物件 12/30 13:13
gyd:1不需要singleton, 他本身已經dontDestroy了, 所以存ref就可以 12/31 15:47