protected virtual void OnClickStart() { UICharacter selectedUI = CacheCharacterSelectionManager.SelectedUI; if (selectedUI == null) { UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UILocaleKeys.UI_LABEL_ERROR.ToString()), LanguageManager.GetText(UILocaleKeys.UI_ERROR_NO_CHOSEN_CHARACTER_TO_START.ToString())); Debug.LogWarning("Cannot start game, No chosen character"); return; } // Load gameplay scene, we're going to manage maps in gameplay scene later // So we can add gameplay UI just once in gameplay scene PlayerCharacterData characterData = new PlayerCharacterData(); IPlayerCharacterData playerCharacter = selectedUI.Data as IPlayerCharacterData; playerCharacter.CloneTo(characterData); GameInstance gameInstance = GameInstance.Singleton; LanRpgNetworkManager networkManager = BaseGameNetworkManager.Singleton as LanRpgNetworkManager; if (!gameInstance.GetGameMapIds().Contains(characterData.CurrentMapName)) { MapInfo startMap = (characterData.GetDatabase() as PlayerCharacter).StartMap; characterData.CurrentMapName = startMap.Id; characterData.CurrentPosition = startMap.startPosition; } networkManager.Assets.onlineScene.SceneName = characterData.CurrentMapName; networkManager.selectedCharacter = characterData; networkManager.StartGame(); }
protected virtual void OnClickStart() { var selectedUI = SelectionManager.SelectedUI; if (selectedUI == null) { UISceneGlobal.Singleton.ShowMessageDialog("Cannot start game", "Please choose character to start game"); Debug.LogWarning("Cannot start game, No chosen character"); return; } // Load gameplay scene, we're going to manage maps in gameplay scene later // So we can add gameplay UI just once in gameplay scene var characterData = new PlayerCharacterData(); var playerCharacter = selectedUI.Data as IPlayerCharacterData; playerCharacter.CloneTo(characterData); var gameInstance = GameInstance.Singleton; var networkManager = BaseGameNetworkManager.Singleton as LanRpgNetworkManager; if (!gameInstance.GetGameScenes().Contains(characterData.CurrentMapName)) { var startMap = (characterData.GetDatabase() as PlayerCharacter).StartMap; characterData.CurrentMapName = startMap.scene.SceneName; characterData.CurrentPosition = startMap.startPosition; } networkManager.Assets.onlineScene.SceneName = characterData.CurrentMapName; networkManager.selectedCharacter = characterData; networkManager.StartGame(); }