public static List <Object> FindScenesWhichContainAsset(string file) { string assetPath = GetAssetPathFromFileNameAndExtension(file); Object cur = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); return(AllScenes.Where(a => ADependsOnB(a, cur)).ToList()); }
public void OnDestroy() { if (_dontInit) { return; } RunSystemForAllEntity <IExitGame>(); foreach (var entity in _entities.Values.ToList()) { entity?.Dispose(); } //清理一下 _entities.Clear(); components.Clear(); systemsOfTag.Clear(); systemsOfComponent.Clear(); _allSystem.Clear(); //清除所有Scene AllScenes.Clear(); Instance = null; //手动GC GC.Collect(); "World Destroy".Log(); }
public void Update(GameTime gameTime) { if (ActiveScene.GetType().Name == "MenuScene") { MenuItemSprite s = ActiveScene.AllTheSpritesWithinTheScene.OfType <MenuItemSprite>().FirstOrDefault(x => x.Bounds.Contains(InputEngine.MousePosition) && InputEngine.IsMouseLeftClick()); if (s != null) { if (s.SpriteID == "MI1") { PreviousScene = ActiveScene; ActiveScene = AllScenes.Pop(); AllScenes.Push(PreviousScene); } else if (s.SpriteID == "MI2") { PreviousScene = ActiveScene; ActiveScene = CreateHighscoreScene(); AllScenes.Push(PreviousScene); } else if (s.SpriteID == "MI3") { Helper.CurrentGame.Exit(); } } } else if (InputEngine.IsKeyPressed(ChangeSceneKey)) { if (ActiveScene.GetType().Name == "PlayScene") { PreviousScene = ActiveScene; ActiveScene = AllScenes.Pop(); AllScenes.Push(PreviousScene); } else if (ActiveScene.GetType().Name == "HighscoreScene") { ActiveScene = AllScenes.Pop(); } } if (ActiveScene.GetType().Name == "PlayScene") { ActiveScene.Update(gameTime); PlayScene playScene = (PlayScene)ActiveScene; if (playScene.Gameover) { ActiveScene = CreateHighscoreScene(); } } }
public void Awake() { _allSystem = new(); if (Instance != null) { _dontInit = true; Destroy(gameObject); return; } _entities = new(); components = new(); systemsOfTag = new(); systemsOfComponent = new(); Instance = this; DontDestroyOnLoad(gameObject); //系统初始化必须放在所有初始化之前 Initialization(); //基本核心组件挂载的实体 Main = new YuoEntity(0); Main.EntityName = "核心组件"; AddComponet(Main, IDGenerater.Instance); //添加一个场景实体 var scene = new YuoEntity(IDGenerater.GetID(IDGenerater.IDType.Scene, 0)); scene.EntityName = "默认场景"; AllScenes.Add(scene); scene.AddComponent <SceneComponent>(); }
public MinigameInfo(Image image, Button button, AllScenes scene) { minigameImage = image; minigameButton = button; sceneName = scene; }
/*public void StartMinigame() * { * Core.ChangeScene.MainMenu.StartMinigame(current.currentMinigameID); * }*/ public void StartMinigame(AllScenes scene) { LeanTween.pauseAll(); Core.ChangeScene.MainMenu.LoadByName(scene.ToString()); }
public void ChangeScene(AllScenes scene) { Core.ChangeScene.MainMenu.LoadByName(scene.ToString()); }