// Felix-Bang:FBGame //   へ     /| //  /\7    ∠_/ //  / │   / / // │ Z _,< /   /`ヽ // │     ヽ   /  〉 //  Y     `  /  / // イ● 、 ●  ⊂⊃〈  / // ()  へ    | \〈 //  >ー 、_  ィ  │ // //  / へ   / ノ<| \\ //  ヽ_ノ  (_/  │// //  7       |/ //  >―r ̄ ̄`ー―_ // Describe:启动游戏 初始化全局数据 // Createtime:2018/9/25 using UnityEngine; using UnityEngine.SceneManagement; using FBFramework; using System; namespace FBApplication { [RequireComponent(typeof(FBObjectPool))] [RequireComponent(typeof(FBSound))] [RequireComponent(typeof(FBStaticData))] public class FBGame : FBApplicationBase { // 全局访问功能 [HideInInspector] public FBObjectPool ObjectPool=null; [HideInInspector] public FBSound Sound = null; [HideInInspector] public FBStaticData StaticData = null; private void OnEnable() { SceneManager.sceneLoaded += OnSceneWasLoaded; } // 游戏入口 void Start () { DontDestroyOnLoad(gameObject); //赋值 ObjectPool = FBObjectPool.Instance; Sound = FBSound.Instance; StaticData = FBStaticData.Instance; //注册命令(Command) RegisterController(FBConsts.E_StartUp, typeof(FBStartUpController)); //启动游戏 SendEvent(FBConsts.E_StartUp); } /// /// 加载场景 /// /// 场景索引 public void LoadScene(int index) { //退出旧场景 //事件参数 FBSceneArgs e = new FBSceneArgs { Index = SceneManager.GetActiveScene().buildIndex }; //发布事件 SendEvent(FBConsts.E_SceneExit,e); //加载新场景 SceneManager.LoadScene(index, LoadSceneMode.Single); } // 当前场景加载后触发 private void OnSceneWasLoaded(Scene arg0, LoadSceneMode arg1) { FBSceneArgs e = new FBSceneArgs { Index = arg0.buildIndex }; SendEvent(FBConsts.E_SceneEnter, e); } // 当前场景加载后触发 // OnLevelWasLoaded新版本的Unity即将放弃 //private void OnLevelWasLoaded(int index) //{ // FBSceneArgs e = new FBSceneArgs // { // Index = index // }; // SendEvent(FBConsts.E_EnterScene,e); //} private void OnDisable() { SceneManager.sceneLoaded -= OnSceneWasLoaded; } } }