public void OnEnterClick() { ProcedureComponent procedureComponent = UnityGameFramework.Runtime.GameEntry.GetComponent <ProcedureComponent>(); if (procedureComponent != null) { GameFrameworkGOS.ProcedureLogin p = procedureComponent.CurrentProcedure as GameFrameworkGOS.ProcedureLogin; if (p != null) { p.OnChange(); } } }
public void OnLogoutClick() { //OnEnableMask(true); ProcedureComponent procedureComponent = UnityGameFramework.Runtime.GameEntry.GetComponent <ProcedureComponent>(); if (procedureComponent != null) { GameFrameworkGOS.ProcedureGame p = procedureComponent.CurrentProcedure as GameFrameworkGOS.ProcedureGame; if (p != null) { p.OnChange(); } } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); ProcedureComponent t = (ProcedureComponent)target; if (string.IsNullOrEmpty(m_EntranceProcedureTypeName.stringValue)) { EditorGUILayout.HelpBox("Entrance procedure is invalid.", MessageType.Error); } else if (EditorApplication.isPlaying) { EditorGUILayout.LabelField("Current Procedure", t.CurrentProcedure == null ? "None" : t.CurrentProcedure.GetType().ToString()); } EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); { GUILayout.Label("Available Procedures", EditorStyles.boldLabel); if (m_ProcedureTypeNames.Length > 0) { EditorGUILayout.BeginVertical("box"); { foreach (string procedureTypeName in m_ProcedureTypeNames) { bool selected = m_CurrentAvailableProcedureTypeNames.Contains(procedureTypeName); if (selected != EditorGUILayout.ToggleLeft(procedureTypeName, selected)) { if (!selected) { m_CurrentAvailableProcedureTypeNames.Add(procedureTypeName); WriteAvailableProcedureTypeNames(); } else if (procedureTypeName != m_EntranceProcedureTypeName.stringValue) { m_CurrentAvailableProcedureTypeNames.Remove(procedureTypeName); WriteAvailableProcedureTypeNames(); } } } } EditorGUILayout.EndVertical(); } else { EditorGUILayout.HelpBox("There is no available procedure.", MessageType.Warning); } if (m_CurrentAvailableProcedureTypeNames.Count > 0) { EditorGUILayout.Separator(); int selectedIndex = EditorGUILayout.Popup("Entrance Procedure", m_EntranceProcedureIndex, m_CurrentAvailableProcedureTypeNames.ToArray()); if (selectedIndex != m_EntranceProcedureIndex) { m_EntranceProcedureIndex = selectedIndex; m_EntranceProcedureTypeName.stringValue = m_CurrentAvailableProcedureTypeNames[selectedIndex]; } } else { EditorGUILayout.HelpBox("Select available procedures first.", MessageType.Info); } } EditorGUI.EndDisabledGroup(); serializedObject.ApplyModifiedProperties(); Repaint(); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); ProcedureComponent t = target as ProcedureComponent; if (string.IsNullOrEmpty(m_EntranceProcedureTypeName.stringValue)) //保存的入口流程名为空 { EditorGUILayout.HelpBox("Entrance procedure is invalid.", MessageType.Error); } else if (EditorApplication.isPlaying) { //运行中显示显示当前流程名称 EditorGUILayout.LabelField("Current Procedure", t.CurrentProcedure == null ? "None" : t.CurrentProcedure.GetType().ToString()); } EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); { GUILayout.Label("Available Procedures", EditorStyles.boldLabel); //可用流程列表 if (m_ProcedureTypeNames.Length > 0) { EditorGUILayout.BeginVertical("box"); { for (int i = 0; i < m_ProcedureTypeNames.Length; i++) { string procedureTypeName = m_ProcedureTypeNames[i]; bool selected = m_CurrentAvailableProcedureTypeNames.Contains(procedureTypeName); if (selected != EditorGUILayout.ToggleLeft(procedureTypeName, selected)) //复选框 { if (!selected) { //之前未选中,当前选中 m_CurrentAvailableProcedureTypeNames.Add(procedureTypeName); WriteAvailableProcedureTypeNames(); } else if (procedureTypeName != m_EntranceProcedureTypeName.stringValue) { //如果取消勾选的不是入口流程名,才可以移除;否则不能取消勾选 m_CurrentAvailableProcedureTypeNames.Remove(procedureTypeName); WriteAvailableProcedureTypeNames(); } } } } EditorGUILayout.EndVertical(); } else { EditorGUILayout.HelpBox("There is no available procedure.", MessageType.Info); } //选择流程入口下拉框 if (m_CurrentAvailableProcedureTypeNames.Count > 0) { EditorGUILayout.Separator(); int selectedIndex = EditorGUILayout.Popup("Entrance Procedure", m_EntranceProcedureIndex, m_CurrentAvailableProcedureTypeNames.ToArray()); if (selectedIndex != m_EntranceProcedureIndex) //不等于之前选中的下标 { m_EntranceProcedureIndex = selectedIndex; m_EntranceProcedureTypeName.stringValue = m_CurrentAvailableProcedureTypeNames[m_EntranceProcedureIndex]; } } else { EditorGUILayout.HelpBox("Select available procedures first.", MessageType.Info); } } EditorGUI.EndDisabledGroup(); serializedObject.ApplyModifiedProperties(); Repaint(); }