public static void ShowWindow() { EditorWindow window = EditorWindow.GetWindow(typeof(FactsDefinitionWindow)); window.position = new Rect(200, 200, 1000, 700); definitions = FactDefinitionsContainer.Load(definitionsPath); /*List<FactDefinition> defaultDefinitions = new List<FactDefinition> (new FactDefinition[] { * new FactDefinition ("Equal", "Relation", "Self", "arg1.Equals(arg2)"), * new FactDefinition ("NotEqual", "Relation", "Self", "!arg1.Equals(arg2)")}); * * * foreach (FactDefinition fd in defaultDefinitions) * if (!definitions.Contains (fd)) * definitions.Add (fd);*/ argsTypes = ArgumentTypes.Load(argumentsPath); List <string> defaultArgsTypes = new List <string> (new string[] { "Self", "Position", "Rotation", "Scale", "Mass" }); foreach (string argType in defaultArgsTypes) { if (!argsTypes.Contains(argType)) { argsTypes.Add(argType); } } }
// Use this for initialization void Start() { compileExpressionParser(); //Knowledge update rate KnowledgeUpdateWindow.LoadFromFile(); //Get goal goal = (CompoundTask)serializedGoal.DeSerialize(null); //Initialize knowledge foreach (SerializedFact fact in serializedKnowledge) { Atom newFact = new Atom(fact.name, fact.sign); foreach (string objName in fact.values) { newFact.addTerm(new Term(GameObject.Find(objName))); } state.addFact(newFact); } //Initialize variables foreach (SerializedVariable var in serializedDomainVariables) { if (var.key != "" && var.value != "") { domainVariables [serializedDomainVariables.IndexOf(var)].value = GameObject.Find(var.value); } } //Instantiate variables InstantiateVariables(goal, domainVariables); //Add sensor if (sensor == 0) { sensorySystem = new CameraSensor(this); } else if (sensor == 1) { sensorySystem = new RadiusSensor(this, radiusLength); } try { definitions = FactDefinitionsContainer.Load(FactsDefinitionWindow.definitionsPath).list; } catch (Exception e) { Debug.Log(e.Message); } //Agent FSM FSM = new AgentStateMachine(AgentState.IDLE, this); //Action manager actionManager = new ActionManager(this); //Coordination communicationSystem = new CommunicationSystem(this); groupMembers = new List <HTNAgent> (); //Personalities knownPersonalities = PersonalitiesContainer.Load(PersonalityEditorWindow.path).list; }