SpiritSystem.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class SpiritSystem : MonoBehaviour
  6. {
  7. [Header("玩家UI位置")]
  8. public Transform p1;
  9. public Transform p2;
  10. public Transform p1Orig;
  11. public Transform p2Orig;
  12. public Transform p1To;
  13. public Transform p2To;
  14. public Transform p1WordOrig;
  15. public Transform p1WordTo;
  16. public Transform p2WordOrig;
  17. public Transform p2WordTo;
  18. public float uiSpeed;
  19. [Header("玩家1图标")]
  20. static public GameObject player1;
  21. static public Spirits p1Spirits;
  22. public Image[] player1cards;
  23. public GameObject choose1;
  24. private int curCard1;
  25. static public bool isP1CardChange;
  26. public GameObject P1icon;
  27. [Header("玩家2图标")]
  28. static public GameObject player2;
  29. static public Spirits p2Spirits;
  30. public Image[] player2cards;
  31. public GameObject choose2;
  32. private int curCard2;
  33. static public bool isP2CardChange;
  34. public GameObject P2icon;
  35. [Header("英灵图标")]
  36. public Sprite floatHead;
  37. public Sprite CookHead;
  38. public Sprite AssassinHead;
  39. public Sprite InvisibleHead;
  40. public Sprite isChoosing;
  41. public Sprite isSelected;
  42. //ref速度
  43. private Vector3 re1 = Vector3.right;
  44. private Vector3 re2 = Vector3.left;
  45. //ui是否进入离开bool
  46. static public bool isP1Out = false;
  47. static public bool isP2Out = false;
  48. static public bool isP1In = false;
  49. static public bool isP2In = false;
  50. //是否选中
  51. static public bool isSelect1 = false;
  52. static public bool isSelect2 = false;
  53. //是否结束变身
  54. static public bool isEndtran1 = false;
  55. static public bool isEndtran2 = false;
  56. private void Start()
  57. {
  58. p1.position = p1Orig.position;
  59. p2.position = p2Orig.position;
  60. }
  61. private void ChangeSpirit(int id)
  62. {
  63. switch (id)
  64. {
  65. case 0:
  66. int man = p1Spirits.hasSpirits;
  67. if (man != 0)
  68. {
  69. curCard1 += 1;
  70. if (curCard1 == man)
  71. {
  72. curCard1 = 0;
  73. }
  74. choose1.transform.position = player1cards[curCard1].transform.position;
  75. p1Spirits.currentSpirit = p1Spirits.ownSpirits[curCard1];
  76. }
  77. break;
  78. case 1:
  79. int mann = p2Spirits.hasSpirits;
  80. if (mann != 0)
  81. {
  82. curCard2 += 1;
  83. if (curCard2 == mann)
  84. {
  85. curCard2 = 0;
  86. }
  87. choose2.transform.position = player2cards[curCard2].transform.position;
  88. p2Spirits.currentSpirit = p2Spirits.ownSpirits[curCard2];
  89. }
  90. break;
  91. default:
  92. break;
  93. }
  94. }
  95. private void SelectSpirit(int id)
  96. {
  97. switch (id)
  98. {
  99. case 0:
  100. P1icon.transform.localPosition = p1WordTo.localPosition;
  101. choose1.GetComponent<Image>().sprite = isSelected;
  102. break;
  103. case 1:
  104. P2icon.transform.localPosition = p2WordTo.localPosition;
  105. choose2.GetComponent<Image>().sprite = isSelected;
  106. break;
  107. default:
  108. break;
  109. }
  110. }
  111. private void EndTransfigurate(int id)
  112. {
  113. switch (id)
  114. {
  115. case 0:
  116. P1icon.transform.localPosition = p1WordOrig.localPosition;
  117. choose1.GetComponent<Image>().sprite = isChoosing;
  118. break;
  119. case 1:
  120. P2icon.transform.localPosition = p2WordOrig.localPosition;
  121. choose2.GetComponent<Image>().sprite = isChoosing;
  122. break;
  123. default:
  124. break;
  125. }
  126. }
  127. private void playerUIout(int id)
  128. {
  129. switch (id)
  130. {
  131. case 0:
  132. p1.position = Vector3.SmoothDamp(p1.position, p1To.position, ref re1, uiSpeed);
  133. if (p1To.position.x - p1.position.x <= 0.5f)
  134. {
  135. p1.position = p1To.position;
  136. isP1Out = false;
  137. }
  138. break;
  139. case 1:
  140. p2.position = Vector3.SmoothDamp(p2.position, p2To.position, ref re2, uiSpeed);
  141. if (p2.position.x - p2To.position.x <= 0.5f)
  142. {
  143. p2.position = p2To.position;
  144. isP2Out = false;
  145. }
  146. break;
  147. default:
  148. break;
  149. }
  150. }
  151. private void playerUIin(int id)
  152. {
  153. switch (id)
  154. {
  155. case 0:
  156. p1.position = Vector3.SmoothDamp(p1.position, p1Orig.position, ref re2, uiSpeed);
  157. if (p1.position.x - p1Orig.position.x <= 0.5f)
  158. {
  159. p1.position = p1Orig.position;
  160. isP1In = false;
  161. }
  162. break;
  163. case 1:
  164. p2.position = Vector3.SmoothDamp(p2.position, p2Orig.position, ref re1, uiSpeed);
  165. if (p2Orig.position.x - p2.position.x <= 0.5f)
  166. {
  167. p2.position = p2Orig.position;
  168. isP2In = false;
  169. }
  170. break;
  171. default:
  172. break;
  173. }
  174. }
  175. private void Update()
  176. {
  177. if (isP1Out)
  178. {
  179. playerUIout(0);
  180. }
  181. if (isP2Out)
  182. {
  183. playerUIout(1);
  184. }
  185. if (isP1In)
  186. {
  187. playerUIin(0);
  188. }
  189. if (isP2In)
  190. {
  191. playerUIin(1);
  192. }
  193. if (isP1CardChange)
  194. {
  195. isP1CardChange = false;
  196. ChangeSpirit(0);
  197. }
  198. if (isP2CardChange)
  199. {
  200. isP2CardChange = false;
  201. ChangeSpirit(1);
  202. }
  203. if (isSelect1)
  204. {
  205. isSelect1 = false;
  206. SelectSpirit(0);
  207. }
  208. if (isSelect2)
  209. {
  210. isSelect2 = false;
  211. SelectSpirit(1);
  212. }
  213. if (isEndtran1)
  214. {
  215. isEndtran1 = false;
  216. EndTransfigurate(0);
  217. }
  218. if (isEndtran2)
  219. {
  220. isEndtran2 = false;
  221. EndTransfigurate(1);
  222. }
  223. }
  224. }