ProcedureCustomRole.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 GameFramework;
  8. using GameFramework.Event;
  9. using UnityEngine;
  10. using UnityGameFramework.Runtime;
  11. using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
  12. namespace MetaClient
  13. {
  14. public class ProcedureCustomRole : ProcedureBase
  15. {
  16. private bool m_SelectComplete = false;
  17. private CustomRoleForm m_SkinForm = null;
  18. private Transform m_PreviewPos = null;
  19. private bool m_StartGame = false;
  20. private string m_NextSceneName = "";
  21. private GameMode m_NextGameMode;
  22. public override bool UseNativeDialog
  23. {
  24. get
  25. {
  26. return false;
  27. }
  28. }
  29. private GameObject m_CurPreviewShow = null;
  30. protected override void OnEnter(ProcedureOwner procedureOwner)
  31. {
  32. base.OnEnter(procedureOwner);
  33. m_SelectComplete = false;
  34. Log.Info("开始捏角色!");
  35. CustomManager.Instance.Init();
  36. GameEntry.Event.Subscribe(OpenUIFormSuccessEventArgs.EventId, OnOpenUIFormSuccess);
  37. GameEntry.UI.OpenUIForm(UIFormId.CustomRoleForm, this);
  38. }
  39. protected override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown)
  40. {
  41. base.OnLeave(procedureOwner, isShutdown);
  42. GameEntry.Event.Unsubscribe(OpenUIFormSuccessEventArgs.EventId, OnOpenUIFormSuccess);
  43. if (m_SkinForm != null)
  44. {
  45. m_SkinForm.Close(true);
  46. m_SkinForm = null;
  47. }
  48. }
  49. public void StartSingleGame()
  50. {
  51. }
  52. public void StartMultiGame()
  53. {
  54. }
  55. public void StartMiniGame()
  56. {
  57. }
  58. protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds)
  59. {
  60. base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
  61. if (m_SelectComplete && m_StartGame && m_NextSceneName != "")
  62. {
  63. procedureOwner.SetData<VarByte>("GameMode", (byte)m_NextGameMode);
  64. procedureOwner.SetData<VarString>("NextScene", m_NextSceneName);
  65. ChangeState<ProcedureChangeScene>(procedureOwner);
  66. }
  67. }
  68. private void OnOpenUIFormSuccess(object sender, GameEventArgs e)
  69. {
  70. OpenUIFormSuccessEventArgs ne = (OpenUIFormSuccessEventArgs)e;
  71. if (ne.UserData != this)
  72. {
  73. return;
  74. }
  75. m_SkinForm = (CustomRoleForm)ne.UIForm.Logic;
  76. }
  77. }
  78. }