private void SceneManager_sceneLoaded(Scene scene, LoadSceneMode mode) { SceneInfo sceneInfo = GetSceneInfo(scene); // For First Scene if (sceneInfo == null) { sceneInfo = new SceneInfo(scene); root = sceneInfo; AddSceneInfo(scene, sceneInfo); } ISceneController controller = null; GameObject[] rootObjects = scene.GetRootGameObjects(); foreach (GameObject robj in rootObjects) { controller = robj.GetComponent <ISceneController>(); if (controller != null) { break; } } controller.MySceneInfo = sceneInfo; sceneInfo.RegisterSceneController(controller); onSceneLoad(sceneInfo); sceneInfo.InvokeOpen(); }
private void _InitSceneController(ISceneController controller, ILoadingSceneConfig config) { var entity = World.NewEntity(); entity.Get <SceneLoadedComponent>(); ref var sceneComponent = ref entity.Get <SceneComponent>();
// Start is called before the first frame update void Start() { arrived = false; gameState = GameState.playing; action = SceneDirector.GetInstance().CSController as ISceneController; action.LoadResources(); }
/// <summary> /// 加载游戏场景; /// </summary> public static void LoadGameScene() { QuitCurrentScene(); CurrentScene = SceneType.Game; LoadScene(SceneType.Game.ToString(), LoadSceneMode.Single); CurrentSceneController = FindCurrentSceneController(); }
void Start() { Engine = WEngine.Instance; for (int i = 0; i < m_sceneControllerObjs.Length; ++i) { ISceneController sceneController = m_sceneControllerObjs[i].GetComponent <ISceneController>(); if (null != sceneController) { //only add if it doesnt exist yet if (!_controllers.Contains(sceneController)) { _controllers.Add(sceneController); } } else { Debug.LogError("scene controller objects " + m_sceneControllerObjs[i] + " is not a scene controller"); } } foreach (ISceneController controller in _controllers) { controller.InitSceneController(this); } // broadcast on start scene controller if (null != OnStartSceneController) { OnStartSceneController.Invoke(this); } }
/// <summary> /// 加载主菜单场景; /// </summary> public static void LoadMainMenuScene() { QuitCurrentScene(); CurrentScene = SceneType.MainMenu; LoadScene(SceneType.MainMenu.ToString(), LoadSceneMode.Single); CurrentSceneController = FindCurrentSceneController(); }
public LoadedScene(ISceneController controller, SceneModel model, GameObject sceneRoot, SceneIndex id) { Controller = controller; Model = model; SceneIdentifier = id; Scene = sceneRoot; }
protected virtual void Initialize(params object[] args) { m_Pages = new Cache <IPage>(); var parametrs = (ISceneInitializationParams)args[PARAMS_INITIALIZATION]; m_SceneController = parametrs.SceneController; }
// Start is called before the first frame update void Start() { clickGo = false; arrived = false; gameState = GameState.playing; action = SceneDirector.GetInstance().CSController = new SceneController(); action.LoadResources(); }
public ISceneController scene; //场景接口 void Start() { GameObject obj = GameObject.Find("Main Camera"); camera = obj.GetComponent <Camera>(); action = SSDirector.getInstance().currentScenceController as UserAction; scene = SSDirector.getInstance().currentScenceController as ISceneController; }
private IEnumerator LoadAdditiveScene(SceneIndex scene, SceneModel model) { OnLoadingStart?.Invoke(); IsLoading = true; AsyncOperation loadSceneJob = SceneManager.LoadSceneAsync(scene.ToString(), LoadSceneMode.Additive); while (!loadSceneJob.isDone) { yield return(null); // Callback to update based on the async task progress OnLoadingUpdate?.Invoke(loadSceneJob.progress); } // Scene was done loading Scene loadedScene = SceneManager.GetSceneByName(scene.ToString()); if (loadedScene.isLoaded) { // Get the scene object to initialize the scene using the ISceneController interface GameObject[] rootObjects = loadedScene.GetRootGameObjects(); bool controllerFound = false; foreach (GameObject rootObject in rootObjects) { // Try to get the scene controller so we can initialize the scene ISceneController sceneController = rootObject.GetComponent <ISceneController>(); // This object didn't have the scene controller if (sceneController == null) { continue; } sceneController.BaseModel = model; LoadedScene managedLoadedScene = new LoadedScene(sceneController, model, rootObject, scene); _loadedScenes.Add(managedLoadedScene); yield return(sceneController.Initialization()); sceneController.AfterInitialization(); controllerFound = true; } if (!controllerFound) { Debug.LogError("[SceneTransitionManager] Could not find any object with component ISceneController in scene: " + loadedScene.name); } SceneManager.MergeScenes(loadedScene, SceneManager.GetActiveScene()); } OnLoadingFinished?.Invoke(); IsLoading = false; }
public void SetUp_SceneController() { PoolManager.enablePrewarm = false; DCL.Configuration.ParcelSettings.VISUAL_LOADING_ENABLED = false; sceneController = Environment.i.world.sceneController; sceneController.deferredMessagesDecoding = false; sceneController.prewarmSceneMessagesPool = false; sceneController.prewarmEntitiesPool = false; }
protected virtual void Initialize(params object[] args) { var parametrs = (IStateInitializationParams)args[PARAMS_INITIALIZATION]; m_Session = parametrs.Session; m_SceneController = parametrs.SceneController; //Debug.Log("State was initialized!"); }
public void setJudge(CharacterModel[] characters, BoatModel boat, ISceneController source) { for (int i = 0; i < 6; i++) { this.roles[i] = characters[i]; } this.boat = boat; callback = source; }
protected void Start() { controller = (ISceneController)SSDirector.getInstance().currentSceneController; controller.actionManager = this; ruler = new Ruler(); for (int i = 0; i < 20; i++) { diskID[i] = -1; //开始时没有可用飞碟,ID 均为-1 } }
void SetActiveScene(Scene scene) { _currentSceneController?.Deactivate(); _current = scene; SceneManager.SetActiveScene(scene); scene.GetRootGameObjects(_currentObjects); _currentSceneController = _currentObjects.Find(IsSceneController).GetComponent <ISceneController>(); _currentSceneController.Activate(); }
public StateControllerInitializationParams(ISession session, ISceneController sceneController, IStateFactory stateFactory, IStateInitializationParams stateInitializationParams) { Session = session; SceneController = sceneController; StateFactory = stateFactory; StateInitializationParams = stateInitializationParams; }
protected override void Initialize(params object[] args) { base.Initialize(); var parametrs = (IStateControllerInitializationParams)args[PARAMS_INITIALIZATION]; m_Session = parametrs.Session; m_SceneController = parametrs.SceneController; m_StateFactory = parametrs.StateFactory; m_StateInitializationParams = parametrs.StateInitializationParams; Debug.Log("StateController was initialized!"); }
public virtual void GameInit() { _scene = CurrentGame.Scene; Status = NoteStatus.NotShown; FrameComputed = false; NoteHit = false; _computationDrawn = false; _prevTimeDiff = 0; _t = 0; _noteHandle = 0; _lineHandle = 0; _gpLineHandle = 0; }
private void Update() { action = SSDirector.getInstance().CurrentSceneController as IUserAction; controller = SSDirector.getInstance().CurrentSceneController as ISceneController; if (controller.getGameState().Equals(GameState.RUNNING)) { // 获取键盘输入 float translationX = Input.GetAxis("Horizontal"); float translationZ = Input.GetAxis("Vertical"); //移动玩家 action.MovePlayer(translationX, translationZ); } }
public WorldRuntimeContext(IWorldState state, ISceneController sceneController, IPointerEventsController pointerEventsController, ISceneBoundsChecker sceneBoundsChecker, IWorldBlockersController blockersController, IRuntimeComponentFactory componentFactory) { this.state = state; this.sceneController = sceneController; this.pointerEventsController = pointerEventsController; this.sceneBoundsChecker = sceneBoundsChecker; this.blockersController = blockersController; this.componentFactory = componentFactory; }
// Use this for initialization void Start() { _sceneController = _controllerHolder.GetComponent <ISceneController>(); _helpText.text = "Press <b>Ctrl</b> to toggle mouse control\n" + "Press <b>AWSD</b> to move\n" + "<b>Arrows</b> to rotate camera\n"; if (_sceneController.GetRenderMode() == RenderMode.AMF) { _text.text = "AMF"; } else { _text.text = "Unity"; } }
public void InjectTransition(SceneTransition transition, ISceneController sceneController) { GameObject newInstance = GameObject.Instantiate(transition.gameObject) as GameObject; IEnumerable <SceneTransition> sceneTransitions = newInstance.GetComponents <SceneTransition>(); _sceneManager.HookTransition(sceneTransitions.FirstOrDefault()); GameObject.DontDestroyOnLoad(newInstance); newInstance.transform.parent = sceneController.Transform; foreach (SceneTransition sceneTransition in sceneTransitions) { CoreLogger.LogInfo(LoggerModules.SceneManager, string.Format("\tinjecting effect {0}", sceneTransition.GetType().Name)); } }
public static WorldRuntimeContext CreateWithCustomMocks( IWorldState state = null, ISceneController sceneController = null, IPointerEventsController pointerEventsController = null, ISceneBoundsChecker sceneBoundsChecker = null, IWorldBlockersController worldBlockersController = null, IRuntimeComponentFactory componentFactory = null) { return(new WorldRuntimeContext( state: state ?? Substitute.For <IWorldState>(), sceneController: sceneController ?? Substitute.For <ISceneController>(), pointerEventsController: pointerEventsController ?? Substitute.For <IPointerEventsController>(), sceneBoundsChecker: sceneBoundsChecker ?? Substitute.For <ISceneBoundsChecker>(), blockersController: worldBlockersController ?? Substitute.For <IWorldBlockersController>(), componentFactory: componentFactory ?? Substitute.For <IRuntimeComponentFactory>())); }
private void OnGUI() { controller = SSDirector.getInstance().CurrentSceneController as ISceneController; string buttonText = ""; if (controller.getGameState().Equals(GameState.START) || controller.getGameState().Equals(GameState.PAUSE)) { buttonText = "Start"; } if (controller.getGameState().Equals(GameState.LOSE)) { buttonText = "Restart"; GUI.Label(new Rect(Screen.width / 2 - 40, Screen.height / 2 + 100, 200, 50), "Game Over!", finishStyle); } if (controller.getGameState().Equals(GameState.WIN)) { buttonText = "Restart"; GUI.Label(new Rect(Screen.width / 2 - 40, Screen.height / 2 + 100, 200, 50), "You Win!", finishStyle); } if (controller.getGameState().Equals(GameState.RUNNING)) { buttonText = "Pause"; } GUI.Label(new Rect(Screen.width / 2 - 400, Screen.height / 2 - 200, 100, 50), "Score: " + controller.GetScore().ToString(), scoreStyle); //GUI.Label(new Rect(Screen.width / 2 - 50, Screen.height / 2 - 350, 100, 50), // "Time: " + SSDirector.getInstance().leaveSeconds.ToString(), countDownStyle); if (GUI.Button(new Rect(Screen.width / 2 - 60, Screen.height / 2 + 150, 100, 50), buttonText, buttonStyle)) { // 按下按钮控制游戏状态 if (buttonText == "Pause") { controller.Pause(); } else if (buttonText == "Start") { controller.Begin(); } else if (buttonText == "Restart") { controller.Restart(); } } }
protected IEnumerator InitScene(bool spawnCharController = true) { sceneController = Environment.i.world.sceneController; yield return(new WaitForSeconds(0.01f)); scene = sceneController.CreateTestScene(); yield return(new WaitForSeconds(0.01f)); if (spawnCharController) { if (DCLCharacterController.i == null) { GameObject.Instantiate(Resources.Load("Prefabs/CharacterController")); } } }
//private MasterController(){} //public static MasterController Instance { // get { // return instance; // } //} // Data // private GameState gameState; // private List<IGameStateListener> gameStateListener; // private Settings settings; // Methods // dependencies haven't been created yet... // private Boolean ChangeScene(string SceneName){ // } public bool registerAsSceneController(ISceneController sceneController) { //Might need additional operations to properly dispose of the old but... this.sceneController = sceneController; getInputsController().registerListener(sceneController); List <IPlayer> addedPlayers = new List <IPlayer>(); foreach (IPlayer player in this.unregisteredPlayers) { this.sceneController.registerPlayer(player); addedPlayers.Add(player); } for (int i = 0; i < addedPlayers.Count; i++) { this.unregisteredPlayers.Remove(addedPlayers[i]); } return(true); }
public DataQueue RegisterScene(SceneType scene) { ISceneController ctrler = null; if (!ctrlers.TryGetValue(scene, out ctrler)) { Func <SceneType, ISceneController> creator = null; if (ctrlerCreators.TryGetValue(scene, out creator)) { ctrler = creator(scene); } else { return(null); } ctrlers.Add(scene, ctrler); } return(ctrler.RegisterScene(scene)); }
private Promise ChangeCurrentController(ISceneController sceneController) { if (_currentSceneController == null) { Debug.Log(string.Format("NavController.ChangeCurrentController - SceneController={0}", sceneController)); return(sceneController.Init() .Then(x => { Debug.Log(string.Format("NavController.ChangeCurrentController - Init [Then] - Controller changed. sceneController={0}", sceneController)); _currentSceneController = sceneController; })); } return(Promise.All(_currentSceneController.Shutdown(), sceneController.Init()) .Then(x => { Debug.Log(string.Format("NavController.ChangeCurrentController - All [Then] - Controller changed. sceneController={0}", sceneController)); _currentSceneController = sceneController; return x; }) .Progress <string>(x => Debug.Log(string.Format("The progress status={0}", x)))); }
public void CloseAdditiveScene(ISceneController controller) { // Search a loaded scene by it's controller reference and destroy the root gameobject LoadedScene loadedScene = _loadedScenes.Find(x => x.Controller == controller); if (loadedScene != null) { // Callback before destroying the loaded scene loadedScene.Controller.BeforeDestroy(); DestroyImmediate(loadedScene.Scene); _loadedScenes.Remove(loadedScene); loadedScene = null; GC.Collect(); // Try to focus the last scene loaded // Assert(_loadedScenes.Count should always be greater than 0) if (_loadedScenes.Count > 0) { _loadedScenes[_loadedScenes.Count - 1].Controller.OnFocus(); } } }