MarblesLine.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. //================================================================================
  2. //
  3. //================================================================================
  4. using UnityEngine;
  5. using System.Collections;
  6. using System.Collections.Generic;
  7. //================================================================================
  8. //
  9. //================================================================================
  10. namespace ReaderRabbit
  11. {
  12. //================================================================================
  13. //
  14. //================================================================================
  15. public class MarblesLine : MonoBehaviour
  16. {
  17. //================================================================================
  18. //
  19. //================================================================================
  20. [SerializeField] private List<MusicalMarble> m_Marbles;
  21. //================================================================================
  22. //
  23. //================================================================================
  24. public void StartSinging(int index)
  25. {
  26. m_Marbles[index].StartSinging();
  27. }
  28. //================================================================================
  29. //
  30. //================================================================================
  31. public void StopSinging(int index)
  32. {
  33. m_Marbles[index].StopSinging();
  34. }
  35. //================================================================================
  36. //
  37. //================================================================================
  38. public void Block(int index)
  39. {
  40. m_Marbles[index].Block();
  41. }
  42. //================================================================================
  43. //
  44. //================================================================================
  45. public void Unblock(int index)
  46. {
  47. m_Marbles[index].Unblock();
  48. }
  49. //================================================================================
  50. //
  51. //================================================================================
  52. public void EnableMarblesDragging()
  53. {
  54. foreach (MusicalMarble marble in m_Marbles)
  55. {
  56. if (!marble.IsBlocked)
  57. {
  58. marble.EnableDrag();
  59. }
  60. }
  61. }
  62. //================================================================================
  63. //
  64. //================================================================================
  65. public void DisableMarblesDragging()
  66. {
  67. foreach (MusicalMarble marble in m_Marbles)
  68. {
  69. if (!marble.IsBlocked)
  70. {
  71. marble.DisableDrag();
  72. }
  73. }
  74. }
  75. //================================================================================
  76. //
  77. //================================================================================
  78. public void DeactivateAll()
  79. {
  80. foreach (MusicalMarble marble in m_Marbles)
  81. {
  82. marble.gameObject.SetActive(false);
  83. }
  84. }
  85. //================================================================================
  86. //
  87. //================================================================================
  88. public void Reset()
  89. {
  90. DeactivateAll();
  91. }
  92. //================================================================================
  93. //
  94. //================================================================================
  95. public void SetMarbleActive(bool active, int index)
  96. {
  97. m_Marbles[index].gameObject.SetActive(active);
  98. m_Marbles[index].Unblock();
  99. }
  100. //================================================================================
  101. //
  102. //================================================================================
  103. public bool IsMarbleActive(int index)
  104. {
  105. return m_Marbles[index].gameObject.activeSelf;
  106. }
  107. //================================================================================
  108. //
  109. //================================================================================
  110. public bool Contains(MusicalMarble marble)
  111. {
  112. return m_Marbles.Contains(marble);
  113. }
  114. //================================================================================
  115. //
  116. //================================================================================
  117. public int IndexOf(MusicalMarble marble)
  118. {
  119. return m_Marbles.IndexOf(marble);
  120. }
  121. //================================================================================
  122. //
  123. //================================================================================
  124. public MusicalMarble GetMarble(int index)
  125. {
  126. return m_Marbles[index];
  127. }
  128. //================================================================================
  129. //
  130. //================================================================================
  131. public int NumberOfMarbles
  132. {
  133. get { return m_Marbles.Count; }
  134. }
  135. } // public class MarblesLine : MonoBehaviour
  136. } // namespace ReaderRabbit