void DrawContext(GameStartContextEditing c, bool forceShow) { if(!c.dependencyEnabled) return; var en = c.enabled; if(!forceShow) { en = EditorGUILayout.Toggle (c.attribute.Name ?? c.type.Name, en); c.enabled = en; } if(forceShow || (!forceShow && en)) { foreach(var f in c.fields) { f.DrawEditor(); } } }
void OnEnable() { engineStartParams = new GameStartContextEditing(typeof(GlobalConfig)); customGameStartParams = new Dictionary<Type, GameStartContextEditing>(); // search for custom GameStartParameters foreach(var type in AttributeHelper.GetTypesWithAttribute<ConfigAttribute>()) { if(!customGameStartParams.ContainsKey(type)) { customGameStartParams.Add(type, new GameStartContextEditing(type)); } } // find config dependency foreach(var c in customGameStartParams) { if(c.Value.attribute.Dependency != null) { c.Value.dependency = customGameStartParams[c.Value.attribute.Dependency]; } } Load (); }
void OnDisable() { engineStartParams = null; customGameStartParams.Clear (); customGameStartParams = null; }