FinchFaceForm.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 Jiang Yin. All rights reserved.
  4. // Homepage: https://gameframework.cn/
  5. // Feedback: mailto:ellan@gameframework.cn
  6. //------------------------------------------------------------
  7. using UnityEngine;
  8. using UnityEngine.UI;
  9. using UnityGameFramework.Runtime;
  10. namespace MetaClient
  11. {
  12. public class FinchFaceForm : UGuiForm
  13. {
  14. [Header("选择功能分类界面")]
  15. public GameObject toolView;
  16. [Header("捏脸界面")]
  17. public GameObject nieLianView;
  18. [Header("身体修改界面")]
  19. public GameObject bodyChangeView;
  20. [Header("服装修改界面")]
  21. public GameObject clothChangeView;
  22. [SerializeField]
  23. private EFinchFaceCengJi eFinchFaceCengJi = EFinchFaceCengJi.None;//默认为未开始选择层级
  24. [SerializeField]
  25. private EFinchFaceStyple eFinchFaceStyple = EFinchFaceStyple.None;//默认为未选择界面分支
  26. #if UNITY_2017_3_OR_NEWER
  27. protected override void OnOpen(object userData)
  28. #else
  29. protected internal override void OnOpen(object userData)
  30. #endif
  31. {
  32. base.OnOpen(userData);
  33. }
  34. /// <summary>
  35. /// 按钮触发事件
  36. /// </summary>
  37. public void ChooseJieMianFun(EFinchFaceStyple _styple,EFinchFaceCengJi _cengJi,bool _changeCengJi, string _objName)
  38. {
  39. //eFinchFaceCengJi = _cengJi;
  40. //eFinchFaceStyple = _styple;
  41. ChangeStyple(_styple, _cengJi, _changeCengJi, _objName);
  42. }
  43. /// <summary>
  44. /// 按钮触发事件控制事件
  45. /// </summary>
  46. private void ChangeStyple(EFinchFaceStyple _styple, EFinchFaceCengJi _cengJi, bool _changeCengJi, string _objName)
  47. {
  48. //首先判定是否需要改变选择的界面类型
  49. if (_styple != eFinchFaceStyple)
  50. {
  51. eFinchFaceStyple = _styple;
  52. toolView.SetActive(false);
  53. if (nieLianView != null)
  54. {
  55. nieLianView.SetActive(false);
  56. }
  57. if (bodyChangeView != null)
  58. {
  59. bodyChangeView.SetActive(false);
  60. }
  61. if (clothChangeView != null)
  62. {
  63. clothChangeView.SetActive(false);
  64. }
  65. }
  66. switch (eFinchFaceStyple)
  67. {
  68. //回到首次选择的界面
  69. case EFinchFaceStyple.None:
  70. toolView.SetActive(true);
  71. break;
  72. //捏脸分支
  73. case EFinchFaceStyple.FaceChange:
  74. nieLianView.SetActive(true);
  75. ChangeCengJi(_cengJi, _changeCengJi, _objName);
  76. break;
  77. //身体分支
  78. case EFinchFaceStyple.BodyChange:
  79. bodyChangeView.SetActive(true);
  80. ChangeCengJi(_cengJi,_changeCengJi, _objName);
  81. break;
  82. //衣服分支
  83. case EFinchFaceStyple.ClothChange:
  84. clothChangeView.SetActive(true);
  85. ChangeCengJi(_cengJi,_changeCengJi,_objName);
  86. break;
  87. }
  88. }
  89. /// <summary>
  90. /// 按钮控制界面层级修改
  91. /// </summary>
  92. private void ChangeCengJi(EFinchFaceCengJi _cengJi,bool _changeCengJi,string _objName)
  93. {
  94. //if (_cengJi != eFinchFaceCengJi)
  95. //{
  96. //}
  97. if (_changeCengJi)
  98. {
  99. eFinchFaceCengJi = _cengJi;
  100. }
  101. }
  102. private void ChangeNowViewFun(string _objName)
  103. {
  104. }
  105. /// <summary>
  106. /// 按钮控制捏脸界面修改
  107. /// </summary>
  108. private void ChangeNieLianViewCengJi()
  109. {
  110. }
  111. #if UNITY_2017_3_OR_NEWER
  112. protected override void OnClose(bool isShutdown, object userData)
  113. #else
  114. protected internal override void OnClose(bool isShutdown, object userData)
  115. #endif
  116. {
  117. base.OnClose(isShutdown, userData);
  118. }
  119. public void ClickFaceChangeBtn()
  120. {
  121. GameEntry.Event.Fire(this, CustomRoleFaceEventArgs.Create(EditableFacePart.eye, new Vector3(1,0,0)));
  122. }
  123. }
  124. /// <summary>
  125. /// 捏脸分类
  126. /// </summary>
  127. public enum EFinchFaceStyple {
  128. //初始
  129. None,
  130. //捏脸
  131. FaceChange,
  132. //身体重铸
  133. BodyChange,
  134. //衣服替换
  135. ClothChange,
  136. }
  137. /// <summary>
  138. /// 当前点击的图层应用顺序等级 即一级只能单向指向固定二级 二级只能回退到一级选择界面
  139. /// </summary>
  140. public enum EFinchFaceCengJi {
  141. None,
  142. One,
  143. Two,
  144. Three
  145. }
  146. }