public void InitScreenManager(ISceneStarter sceneStarter) { var screens = GetComponentsInChildren <WScreen>(true); // setup the components for (int i = 0; i < screens.Length; ++i) { WScreen screen = screens[i]; screen.InitScreen(sceneStarter, this); // add to the dictionary _screens.Add(screen.id, screen); } // init screen objects var screenObjs = GetComponentsInChildren <IScreenObject>(true); foreach (IScreenObject so in screenObjs) { so.InitScreenObject(this); _screenObjects.Add(so); } // start the views afterwards foreach (KeyValuePair <string, WScreen> kvp in _screens) { WScreen view = kvp.Value; // show if default, hide immediately otherwise if (view.isDefault) { ShowView(view, true); } else { view.IsVisible = false; } } }
public void InitSceneController(ISceneStarter sceneStarter) { sceneStarter.OnStartSceneController += starter => { // particle pool is required ParticlePool = starter.GetController <WParticlePool>(); Assert.Null <WParticlePool>(ParticlePool); // touchSurface is required Assert.Null <WTouchSurface>(touchSurface); // observe swipe touchSurface.OnMovingTouch += touch => { PlayParticle(swipeParticleId, touch.ScreenPos); }; }; }
public void InitSceneController(ISceneStarter sceneStarter) { for (int i = 0; i < prefabs.Count; ++i) { Clone(prefabs[i]); } _pool.OnPoolEmpty += id => { PrefabConfig config = prefabs.Find(x => x.id == id); if (null != config && config.cloneWhenEmpty) { Clone(config); return(true); } return(false); }; _pool.OnReleased += obj => { // remove the obj from the cache of active objects WParticleObject pObj = obj as WParticleObject; }; }