作者euph (咬咬嚼嚼猴子口味)
看板GameDesign
标题Fw: [问题] 请问unity的C#问题
时间Tue Dec 24 13:55:01 2013
※ [本文转录自 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
1F:推 akilight:问题1简易解法:GameObject.Find or FindWithTag 12/24 14:31
2F:→ akilight:或是自己写个singleton把ref保留下来 12/24 14:32
3F:→ akilight:问题2:你可以去研究一下static的意义和singleton模式 12/24 14:33
4F:→ euph:感谢楼上 那请问一下ScriptableObject是不是和Singleton类似? 12/24 16:05
5F:推 akilight:不一样,ScriptableObject是可以存在硬碟中的档案形式 12/24 17:05
6F:→ akilight:让你可以把他从硬碟中读回来,用来存资料为主 12/24 17:06
7F:→ lovecold:其实问题2他还是有加到实体物件上,他是动态产生跟加入的 12/30 13:10
8F:→ lovecold:new GameObject("Game...")<==产生gameobject 12/30 13:12
9F:→ lovecold:AddComponent<GameStateManager>()<==将script挂到物件 12/30 13:13
10F:→ gyd:1不需要singleton, 他本身已经dontDestroy了, 所以存ref就可以 12/31 15:47