static int AddState(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); UI.StateHandle obj = (UI.StateHandle)ToLua.CheckObject(L, 1, typeof(UI.StateHandle)); obj.AddState(); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
public override void OnInspectorGUI() { using (new AutoLabelWidth(100)) { //初始状态 GUI.changed = false; m_cur.m_curState = EditorGUILayout.Popup("初始状态", m_cur.m_curState, m_cur.StateName); float duration = UnityEditor.EditorGUILayout.FloatField("持续时间", m_cur.Duration); bool isRealtime = UnityEditor.EditorGUILayout.Toggle("真实时间", m_cur.IsRealTime); if (GUI.changed) { m_cur.SetState(m_cur.m_curState, false); if (duration != m_cur.Duration) { m_cur.Duration = duration; } if (isRealtime != m_cur.IsRealTime) { m_cur.IsRealTime = isRealtime; } EditorUtil.SetDirty(m_cur); } if (m_cur.EnableCtrlState) { GUI.changed = false; m_cur.m_ctrlType = (StateHandle.CtrlType)EditorGUILayout.EnumPopup("控制类型", m_cur.m_ctrlType); if (GUI.changed) { EditorUtil.SetDirty(m_cur); } } //共有状态的操作对象 DrawPublicGo(); //状态们 for (int i = 0; i < m_cur.m_states.Count; ++i) { DrawState(m_cur.m_states[i], i); } //增加状态按钮 if (GUILayout.Button("增加状态", GUILayout.Height(30))) { m_cur.AddState(); } } }