作者Litfal (Litfal)
看板C_Sharp
标题Re: [问题] 请问unity的C#问题
时间Thu Dec 26 02:03:30 2013
※ 引述《euph (咬咬嚼嚼猴子口味)》之铭言:
: C#新手鲁蛇一位 最近在用C#开发Unity的游戏
: 有两个问题想请问一下
: 首先问题一 是最近遇到一个在Unity里切换Sence时保留物件的问题
: 只知道用DontDestroyOnLoad去保留物件
: 可是不知道切换了Sence之後要如何去取这个物件里的东西
没用过Unity没办法回答你。
: 另外问题二 在研究的上面的问题的时候参考了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;
: 感谢乡民前辈 :)
特别去看了一下
MainMenu里面用的是GameStartManager里面的静态(static)属性,所以不用new。
在访问那些静态属性时,他会建立(或取用)唯一的个体(instance)。
细节可以google "Singleton Pattern",看起来是。
但明明有更简单的写法,为什麽要特别用函数指标(delegate)做延迟建构,这我就不明白
另外,看起来独体建构也没有挡多执行绪,可能不需要吧。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.179.10
※ 编辑: Litfal 来自: 220.135.179.10 (12/26 02:05)