static void Save_scene() { GameObject camera = GameObject.Find("Main Camera"); GameObject obj = GameObject.FindWithTag("CompositionObject"); GameObject light = GameObject.Find("Directional Light"); GameObject cylinder = GameObject.Find("Cylinder"); SceneDataManager SDM = new SceneDataManager(); String json = SDM.GetJSON(camera, obj, light, cylinder); //Debug.Log(json); // if false, overwrite bool append = false; string filePath = "sceneData.json"; string fullPath = Path.GetFullPath(filePath); TextWriter writer = null; Debug.Log(String.Format("Saving in {0}", fullPath)); try { writer = new StreamWriter(fullPath, append); writer.Write(json); } finally { if (writer != null) { writer.Close(); } } }
void Awake() { m_instance = this; m_dynamicBlockCell = new Dictionary <int, BlockCell[]>(); m_triggerAreaInfos = new Dictionary <uint, TriggerAreaInfo[]>(); Load(); }
public void LoadNextLevel() { fadeOut(); SceneDataManager manager = FindObjectOfType <SceneDataManager>(); string nextLevel = FormatLevelName(manager, true); Debug.Log("Loading next level: " + nextLevel); StartCoroutine(LoadAfterDelay(transitionDelay, nextLevel)); }
public void ReloadLastLevel() { fadeOut(); SceneDataManager manager = FindObjectOfType <SceneDataManager>(); string lastLevel = FormatLevelName(manager, false); Debug.Log("Loading last level: " + lastLevel); StartCoroutine(LoadAfterDelay(transitionDelay, lastLevel)); }
private string FormatLevelName(SceneDataManager manager, bool loadNextLevel) { if (loadNextLevel) { return("Level" + manager.currSceneZone.ToString() + "_" + (System.Convert.ToInt32(manager.currSceneLevel) + 1).ToString()); } else { return("Level" + manager.currSceneZone.ToString() + "_" + manager.currSceneLevel.ToString()); } }
private void Awake() { if (Instance == null) { Instance = this; DontDestroyOnLoad(this.gameObject); } else { Destroy(gameObject); } }
private void LoadData() { string jsonString = KeyChain.GetString(_sceneDataID); if (string.IsNullOrEmpty(jsonString)) { return; } SceneData loadedData = JsonUtility.FromJson <SceneData>(jsonString); SceneDataManager.ReplaceSceneData(loadedData); }
public void SaveColor() { int r = ConvertStringToInt(this.rValue.text); int g = ConvertStringToInt(this.gValue.text); int b = ConvertStringToInt(this.bValue.text); r = Mathf.Clamp(r, 0, 255); g = Mathf.Clamp(g, 0, 255); b = Mathf.Clamp(b, 0, 255); Color finalColor = new Color(r / _maxColorValue, g / _maxColorValue, b / _maxColorValue); SceneDataManager.UpdateBackgroundColor(finalColor); }
void Awake() { if (uniqueDataManager != null) { if (uniqueDataManager != this) { Destroy(gameObject); } } else { uniqueDataManager = this; DontDestroyOnLoad(this.gameObject); } }
void Start() { manager = FindObjectOfType <SceneDataManager>(); // TODO: fix up crude code and magic numbers. Levelx_y string sceneName = SceneManager.GetActiveScene().name; currSceneZone = sceneName[5].ToString(); if (sceneName.Length > 8) { currSceneLevel = sceneName[7].ToString() + sceneName[8].ToString(); } else { currSceneLevel = sceneName[7].ToString(); } Debug.Log("SCENEDATA: zone " + currSceneZone + " level " + currSceneLevel); manager.currSceneZone = currSceneZone; // TODO: These should maybe be moved to the WriteToManager() function manager.currSceneLevel = currSceneLevel; headerText.text = "Zone " + currSceneZone.ToString() + " Level " + currSceneLevel.ToString(); SetLevelRewards(); }
void Start() { manager = FindObjectOfType <SceneDataManager>(); manager.PrintManagerData(); if (manager != null) // TODO: a lot of duplicated code here { if (manager.levelPassed) { title.text = "Mission Success"; string successText = "You passed zone " + manager.currSceneZone.ToString() + " level " + manager.currSceneLevel.ToString(); outcomeText.text = successText; outcomeText.color = successColour; } else { title.text = "Critical Mission Failure"; string failureText = "You failed zone " + manager.currSceneZone.ToString() + " level " + manager.currSceneLevel.ToString(); outcomeText.text = failureText; outcomeText.color = failureColour; nextLevelButton.GetComponent <Image>().color = greyedOutColour; nextLevelButton.GetComponent <Button>().enabled = false; } string statsText = manager.controlAttained.ToString() + "%" + "\n+" + manager.controlBonus.ToString() + "\n" + manager.timeTaken.ToString() + "\n+" + manager.timeBonus.ToString() + "\n" + manager.energySpent.ToString() + "\n-" + manager.energyPenalty.ToString() + "\n" + manager.levelScore.ToString(); outcomeStats.text = statsText; // Write to the scores panel int zone = int.Parse(manager.currSceneZone); int level = int.Parse(manager.currSceneLevel); // Set new high score if greater than last high score int lastHighScore = PlayerData.GetHighScore(zone, level); int levelScore = manager.levelScore; if (levelScore > lastHighScore) { PlayerData.SetHighScore(zone, level, levelScore); lastHighScore = levelScore; } string scoresText = levelScore.ToString() + "\n" + lastHighScore.ToString(); scoreValuesText.text = scoresText; // Write to the rewards panel AND add them to PlayerData int earnedCredit = manager.baseCreditReward + Mathf.FloorToInt(levelScore * manager.creditToScoreRatio); if (!manager.levelPassed) { earnedCredit = 0; // Player gets no reward if they have failed the level } string unlockedShipName = ""; if (manager.unlockedShip != null) { unlockedShipName = manager.unlockedShip.defenderUnit.defenderName; unlockedShip.sprite = manager.unlockedShip.defenderUnit.GetComponent <SpriteRenderer>().sprite; unlockedShip.color = unlockShipColour; } rewardValuesText.text = "+" + earnedCredit.ToString() + " credits" + "\n" + unlockedShipName; FindObjectOfType <CreditsManager>().AddCredit(earnedCredit); } }
private IEnumerator EndLevel(bool levelPassed) { Animator levelCompleteUIAnimator = levelCompleteUI.GetComponent <Animator>(); Animator selectionBarUIAnimator = selectionBarUI.GetComponent <Animator>(); Animator statusBarAnimator = gameObject.GetComponent <Animator>(); Animator headerCanvasAnimator = headerCanvas.GetComponent <Animator>(); if (levelPassed) { levelCompletionText.text = levelWinText; PlaySFX(levelSuccessSFX); // Call end of level functions Defender[] defenders = FindObjectsOfType <Defender>(); foreach (Defender defender in defenders) { defender.PlayVictoryAnimation(); defender.defenderUnit.StopShooting(); } Enemy[] enemies = FindObjectsOfType <Enemy>(); foreach (Enemy enemy in enemies) { enemy.PlayDefeatAnimation(); enemy.enemyUnit.StopShooting(); } EnemySpawner[] spawners = FindObjectsOfType <EnemySpawner>(); foreach (EnemySpawner spawner in spawners) { spawner.ForceStopSpawning(); } Projectile[] projectiles = FindObjectsOfType <Projectile>(); foreach (Projectile projectile in projectiles) { projectile.Dissolve(); } if (sceneData != null) { sceneData.UnlockNextLevel(); } } else { levelCompletionText.text = levelFailText; PlaySFX(levelFailSFX); } // Triggering level end animations: levelCompleted is a parameter for the animator controller state machine. Setting it to true triggers any animations meant for level completion levelCompleteUIAnimator.SetBool("levelCompleted", true); selectionBarUIAnimator.SetBool("levelCompleted", true); statusBarAnimator.SetBool("levelCompleted", true); headerCanvasAnimator.SetBool("levelCompleted", true); yield return(new WaitForSeconds(timeBeforeTransition)); // Update the final score the player achieved and the time taken in the SceneData object // TODO: Repetitive code if (sceneData != null) { sceneData.SetScore(DetermineFinalScore(levelPassed)); sceneData.SetTimeTaken(elapsedTime); sceneData.SetControlAttained(Mathf.FloorToInt(control)); sceneData.SetLevelPassed(levelPassed); sceneData.SetEnergySpent(energySpent); sceneData.WriteToManager(); SceneDataManager manager = FindObjectOfType <SceneDataManager>(); if (manager != null) { manager.PrintManagerData(); } } // Finally transition to the outcome scene if (sceneData != null) { LoadScene(levelOutcomeSceneName); } else // THE ONLY CASE WHERE SCENEDATA IS NULL IS IN THE TUTORIAL SCENE { LoadScene("_Start"); } }
void OnDestroy() { m_instance = null; }