// Copyright (C) 2015 ricimi - All rights reserved. // This code can only be used under the standard Unity Asset Store End User License Agreement. // A Copy of the Asset Store EULA is available at http://unity3d.com/company/legal/as_terms. using UnityEngine; using UnityEngine.UI; namespace Ricimi { // This class manages the level scene of the demo. It handles the left and right // selection buttons that are used to navigate across the available levels and their // associated animations. public class LevelScene : MonoBehaviour { public GameObject prevLevelButton; public GameObject nextLevelButton; public GameObject levelGroup; public Text levelText; private const int numLevelIndexes = 3; private int m_currentLevelIndex = 0; private Animator m_animator; private void Awake() { m_animator = levelGroup.GetComponent(); } public void ShowPreviousLevels() { --m_currentLevelIndex; if (m_currentLevelIndex < 0) m_currentLevelIndex = 0; SetLevelText(m_currentLevelIndex + 1); switch (m_currentLevelIndex) { case 0: if (!m_animator.GetCurrentAnimatorStateInfo(0).IsName("Animation4")) m_animator.Play("Animation4"); DisablePrevLevelButton(); break; case 1: if (!m_animator.GetCurrentAnimatorStateInfo(0).IsName("Animation3")) m_animator.Play("Animation3"); EnablePrevLevelButton(); EnableNextLevelButton(); break; default: break; } } public void ShowNextLevels() { ++m_currentLevelIndex; if (m_currentLevelIndex == numLevelIndexes) m_currentLevelIndex = numLevelIndexes - 1; SetLevelText(m_currentLevelIndex + 1); switch (m_currentLevelIndex) { case 1: if (!m_animator.GetCurrentAnimatorStateInfo(0).IsName("Animation1")) m_animator.Play("Animation1"); EnablePrevLevelButton(); EnableNextLevelButton(); break; case 2: if (!m_animator.GetCurrentAnimatorStateInfo(0).IsName("Animation2")) m_animator.Play("Animation2"); DisableNextLevelButton(); break; default: break; } } public void EnablePrevLevelButton() { var image = prevLevelButton.GetComponentsInChildren()[1]; var newColor = image.color; newColor.a = 1.0f; image.color = newColor; var shadow = prevLevelButton.GetComponentsInChildren()[0]; var newShadowColor = shadow.color; newShadowColor.a = 1.0f; shadow.color = newShadowColor; prevLevelButton.GetComponent().interactable = true; } public void DisablePrevLevelButton() { var image = prevLevelButton.GetComponentsInChildren()[1]; var newColor = image.color; newColor.a = 40 / 255.0f; image.color = newColor; var shadow = prevLevelButton.GetComponentsInChildren()[0]; var newShadowColor = shadow.color; newShadowColor.a = 0.0f; shadow.color = newShadowColor; prevLevelButton.GetComponent().interactable = false; } public void EnableNextLevelButton() { var image = nextLevelButton.GetComponentsInChildren()[1]; var newColor = image.color; newColor.a = 1.0f; image.color = newColor; var shadow = nextLevelButton.GetComponentsInChildren()[0]; var newShadowColor = shadow.color; newShadowColor.a = 1.0f; shadow.color = newShadowColor; nextLevelButton.GetComponent().interactable = true; } public void DisableNextLevelButton() { var image = nextLevelButton.GetComponentsInChildren()[1]; var newColor = image.color; newColor.a = 40 / 255.0f; image.color = newColor; var shadow = nextLevelButton.GetComponentsInChildren()[0]; var newShadowColor = shadow.color; newShadowColor.a = 0.0f; shadow.color = newShadowColor; nextLevelButton.GetComponent().interactable = false; } private void SetLevelText(int level) { levelText.text = level.ToString() + "/3"; } } }