DNP_DemoManager.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;
  5. using UnityEngine.UI;
  6. namespace DamageNumbersPro.Demo
  7. {
  8. public class DNP_DemoManager : MonoBehaviour
  9. {
  10. public static DNP_DemoManager instance;
  11. Text currentPrefabText;
  12. Text currentIndexText;
  13. DamageNumber[] prefabs;
  14. int currentIndex;
  15. DNP_PrefabSettings currentSettings;
  16. CanvasGroup fade;
  17. bool fadeOut;
  18. string loadScene;
  19. void Awake()
  20. {
  21. // Reference Single Instance
  22. instance = this;
  23. // Get All Prefabs
  24. Transform parent = GameObject.Find("Special").transform.Find("Prefabs/Damage Numbers");
  25. prefabs = new DamageNumber[parent.childCount];
  26. for(int n = 0; n < parent.childCount; n++)
  27. {
  28. prefabs[n] = parent.GetChild(n).GetComponent<DamageNumber>();
  29. }
  30. parent.gameObject.SetActive(false);
  31. // Text Components
  32. Transform guiParent = GameObject.Find("Special").transform.Find("GUI");
  33. currentPrefabText = guiParent.Find("Background/Current").GetComponent<Text>();
  34. currentIndexText = guiParent.Find("Background/Index").GetComponent<Text>();
  35. Transform fadeTransform = transform.Find("GUI/Fade");
  36. if (fadeTransform != null)
  37. {
  38. fade = fadeTransform.GetComponent<CanvasGroup>();
  39. }
  40. // Reset Index
  41. currentIndex = 0;
  42. UpdateCurrent();
  43. #if !UNITY_EDITOR && UNITY_WEBGL
  44. WebGLInput.captureAllKeyboardInput = true;
  45. #endif
  46. }
  47. void Start()
  48. {
  49. if(fade != null)
  50. {
  51. fade.alpha = 1f;
  52. }
  53. }
  54. void Update()
  55. {
  56. float scroll = DNP_InputHandler.GetMouseScroll();
  57. if (scroll != 0 && (!Cursor.visible || DNP_Camera.instance == null))
  58. {
  59. if(scroll > 0.001f)
  60. {
  61. currentIndex--;
  62. if(currentIndex < 0)
  63. {
  64. currentIndex = prefabs.Length - 1;
  65. }
  66. UpdateCurrent();
  67. }
  68. else if(scroll < 0.001f)
  69. {
  70. currentIndex++;
  71. if(currentIndex > prefabs.Length - 1)
  72. {
  73. currentIndex = 0;
  74. }
  75. UpdateCurrent();
  76. }
  77. }
  78. if(fade != null)
  79. {
  80. if(fadeOut)
  81. {
  82. fade.alpha += Time.deltaTime * 4;
  83. if(fade.alpha >= 0.999f)
  84. {
  85. SceneManager.LoadScene(loadScene);
  86. enabled = false;
  87. }
  88. return;
  89. }
  90. else
  91. {
  92. if(fade.alpha > 0)
  93. {
  94. fade.alpha -= Time.deltaTime * 3;
  95. }
  96. }
  97. }
  98. }
  99. public void SwitchScene(string sceneName)
  100. {
  101. fadeOut = true;
  102. loadScene = sceneName;
  103. /*foreach(DamageNumber dn in FindObjectsOfType<DamageNumber>())
  104. {
  105. dn.DestroyDNP();
  106. }*/
  107. if(DNP_Camera.instance != null)
  108. {
  109. DNP_Camera.instance.enabled = false;
  110. }
  111. DNP_2DDemo demo2D = FindAnyObjectByType<DNP_2DDemo>();
  112. if(demo2D)
  113. {
  114. demo2D.enabled = false;
  115. }
  116. if (DNP_GUI.instance != null)
  117. {
  118. DNP_GUI.instance.enabled = false;
  119. }
  120. }
  121. void UpdateCurrent()
  122. {
  123. currentPrefabText.text = "➞ " + prefabs[currentIndex].name;
  124. currentIndexText.text = (currentIndex + 1) + "/" + prefabs.Length;
  125. currentSettings = prefabs[currentIndex].GetComponent<DNP_PrefabSettings>();
  126. }
  127. public DamageNumber GetCurrent()
  128. {
  129. return prefabs[currentIndex];
  130. }
  131. public DNP_PrefabSettings GetSettings()
  132. {
  133. if(currentSettings == null)
  134. {
  135. currentSettings = prefabs[currentIndex].gameObject.AddComponent<DNP_PrefabSettings>();
  136. }
  137. return currentSettings;
  138. }
  139. }
  140. }