private static TreeSelector CreateSelectorFromComposed(Core core, ComposedBehavior target) { TreeSelector selector; List <ModularBehaviour> modularBehaviours; modularBehaviours = new List <ModularBehaviour>(); selector = new TreeSelector(true, target.Weight); if (target.IsRandomSelector) { foreach (Type t in GetAllTypesIn(target)) { Debug.Log("Adding \"" + t.Name + " from \"" + target.Name + "\""); selector.AddNewOption(GetModularBehaviourInCore(core, t)); } } else { foreach (Type t in GetAllTypesIn(target)) { ModularBehaviour behaviour = GetModularBehaviourInCore(core, t); selector.AddNewOption(behaviour); } } return(selector); }
private static ModularBehaviour GetModularBehaviourInCore(Core core, Type type) { ModularBehaviour b = core.gameObject.GetComponent(type) as ModularBehaviour; if (b == default) { b = AddTypeToCore(type, core) as ModularBehaviour; } return(b); }