예제 #1
0
        protected override void OnInspectorRuntimeGUI()
        {
            base.OnInspectorRuntimeGUI();

            foreach (var system in _ECSHelper.Systems)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(10);
                _systemFoldouts[system.Value.Name] = EditorGUILayout.Foldout(_systemFoldouts[system.Value.Name], system.Value.Name, true);
                GUILayout.EndHorizontal();

                if (_systemFoldouts[system.Value.Name])
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Space(20);
                    system.Value.IsEnabled = EditorGUILayout.Toggle("IsEnabled", system.Value.IsEnabled);
                    GUILayout.EndHorizontal();

                    foreach (var entity in system.Value.StarEntities)
                    {
                        GUILayout.BeginHorizontal();
                        GUILayout.Space(20);
                        EditorGUILayout.ObjectField(entity.gameObject, typeof(GameObject), true);
                        GUILayout.FlexibleSpace();
                        if (GUILayout.Button("Remove", EditorStyles.miniButton, GUILayout.Width(60)))
                        {
                            system.Value.StarEntities.Remove(entity);
                            break;
                        }
                        GUILayout.EndHorizontal();
                    }
                }
            }

            GUILayout.BeginHorizontal();
            if (GUILayout.Button("Set Dirty"))
            {
                _ECSHelper.SetDirty();
            }
            GUILayout.EndHorizontal();
        }
예제 #2
0
 /// <summary>
 /// 设置ECS环境为脏的,触发ECS环境重新刷新
 /// </summary>
 public void SetDirty()
 {
     _helper.SetDirty();
 }