void Start() { SSDirector director = SSDirector.GetInstance(); director.CurrentScenceController = this; _PatorlFactory = Singleton <PatorlFactory> .Instance; _PatrolActionManager = Singleton <PatrolActionManager> .Instance; LoadResources(); _ScoreRecorder = Singleton <ScoreRecorder> .Instance; }
void Start() { //这一块注意一下,关于实例化,和实例化的查找 //首先director是单例模式,所以用GetInstance方法,即使没有实例也会创建实例,有实例就确保只有一个实例 //那么_PatorlFactory和_PatrolActionManager是怎么回事 //首先看到代码可以这样写,用Singleton,这个是直接查找有没有这个类,没有就报错了 //所以使用这个有个前提条件,就是必须已经存在了,所以在游戏开始之前必须把代码绑定到对应的物体上 //如果不采用这种方法怎么办,可以手动添加,用AddComponent就相当于把手动添加的部分,用代码实现了,就是注释掉的部分 SSDirector director = SSDirector.GetInstance(); director.CurrentScenceController = this; _PatorlFactory = Singleton <PatorlFactory> .Instance; _PatrolActionManager = Singleton <PatrolActionManager> .Instance; //_PatrolActionManager = gameObject.AddComponent<PatrolActionManager>() as PatrolActionManager; //ISceneController接口中函数的实现 LoadResources(); //设置摄像机跟随的对象,也就是玩家,如果不用工厂模式的话,直接在场景中生成玩家,然后把玩家拖到摄像机的Targer就可以了 //这一块也要注意,main_camera的位置必须在LoadResources之后,因为main_camera跟随的对象是player,如果player没有实例化就无法运行 //所以如果一开始在场景中就有player的话,下面的代码位置就可以随便放。 main_camera.GetComponent <CameraFlow>().follow = player; _ScoreRecorder = Singleton <ScoreRecorder> .Instance; }