public FoxTree() : base() { SequenceNode chaseAnimalRoot = new SequenceNode("Chase Animal Subtree"); chaseAnimalRoot.AddChild(new SneakToAnimalNode()); chaseAnimalRoot.AddChild(new ChaseAnimalNode()); chaseAnimalRoot.AddChild(new AttackAnimalNode()); SequenceNode hungerRoot = new SequenceNode("Hunger Subtree"); hungerRoot.AddChild(new FoodLowNode(0.6f)); hungerRoot.AddChild(new IsPreyNearbyNode()); hungerRoot.AddChild(chaseAnimalRoot); hungerRoot.AddChild(new EatFoodNode()); _root = new SelectorNode("Root"); ControlNode root = (ControlNode)_root; root.AddChild(hungerRoot); root.AddChild(new WanderNode()); GameObject canvas = GameObject.Find("Canvas"); UIManager uiManager = canvas.GetComponent <UIManager>(); GameObject uiTree = uiManager.GetUITree(AnimalType.FOX); SetUIPointers(uiTree); }
public SquirrelTree() : base() { SelectorNode subroot = new SelectorNode("Subroot"); DecoratorNode subrootDecorator = new TickUntilPredatorNearbyNode(subroot); SequenceNode hungerRoot = new SequenceNode("Hunger Subtree"); hungerRoot.AddChild(new FoodLowNode(0.6f)); hungerRoot.AddChild(new IsFoodNearbyNode()); hungerRoot.AddChild(new GoToTargetFoodNode(3.0f)); hungerRoot.AddChild(new EatFoodNode()); ControlNode root = new SelectorNode("Root"); subroot.AddChild(hungerRoot); ActionNode wander = new WanderNode(); subroot.AddChild(wander); ActionNode runFromAnimal = new RunFromAnimalNode(); DecoratorNode runFromAnimalDecorator = new TickUntilPredatorNotNearbyNode(runFromAnimal); root.AddChild(runFromAnimalDecorator); root.AddChild(subrootDecorator); _root = root; GameObject canvas = GameObject.Find("Canvas"); UIManager uiManager = canvas.GetComponent <UIManager>(); GameObject uiTree = uiManager.GetUITree(AnimalType.SQUIRREL); SetUIPointers(uiTree); }