// Start is called before the first frame update void Start() { Sequence root = new Sequence(bb); Selector targetSel = new Selector(bb); Help help = new Help(bb); ViewMark mark = new ViewMark(bb); NoDanger noDanger = new NoDanger(bb); Sequence actionSeq = new Sequence(bb); Selector ramSel = new Selector(bb); Sequence ramSeq = new Sequence(bb); LineOfSight los = new LineOfSight(bb); Boost boost = new Boost(bb); NormalizeBoost norm = new NormalizeBoost(bb); Chase chase = new Chase(bb); ramSeq.AddTask(los); ramSeq.AddTask(boost); ramSel.AddTask(ramSeq); ramSel.AddTask(norm); actionSeq.AddTask(ramSel); actionSeq.AddTask(chase); targetSel.AddTask(help); targetSel.AddTask(mark); root.AddTask(targetSel); root.AddTask(noDanger); root.AddTask(actionSeq); this.bt = root; }
public Sequence_FleeZombie() { Sequence flee = new Sequence(); flee.AddTask(new Task_Flee()); flee.AddTask(new Sequence_DefaultFire()); flee.AddTask(new Task_MoveBack()); children.Add(flee); }
public Sequence_EvadeFireballs() { Sequence evadeFireballs = new Sequence(); evadeFireballs.AddTask(new Task_Flee()); evadeFireballs.AddTask(new Task_CheckFireballStatus()); evadeFireballs.AddTask(new Task_MoveBack()); children.Add(evadeFireballs); }
void Start() { root = new BehaviorTree(); sequence_1 = new Sequence(); sequence_2 = new Sequence(); selecter_1 = new Selecter(); condition_Dead = new Condition_Dead(); condition_Fine = new Condition_Find(); condition_AttackRange = new Condition_AttackRange(); condition_Arrive = new Condition_Arrive(); timeOut_RoamingDelay = new TimeDelay(); roaming = new Action_Roaming(); trace = new Action_Trace(); attack = new Action_Attack(); dead = new Action_Dead(); colliders = new Collider[5]; //========== 공격 =================== condition_AttackRange.SetTask(attack); selecter_1.AddTask(condition_AttackRange); //=================================== //========== 추적 =================== condition_Fine.SetTask(trace); selecter_1.AddTask(condition_Fine); //=================================== //========== 로밍 =================== timeOut_RoamingDelay.SetTime(3.0f); sequence_2.AddTask(timeOut_RoamingDelay); sequence_2.AddTask(roaming); condition_Arrive.SetTask(sequence_2); selecter_1.AddTask(condition_Arrive); //================================== sequence_1.AddTask(selecter_1); condition_Dead.SetTask(dead); sequence_1.AddTask(condition_Dead); root.Init(sequence_1); enemyCharacter = GetComponentInChildren <Animator>().gameObject; animatorController = GetComponentInChildren <Animator>(); StartCoroutine(Update_Coroution()); }
// Start is called before the first frame update void Start() { Sequence root = new Sequence(bb); NoDanger noDanger = new NoDanger(bb); Selector targetSel = new Selector(bb); Help help = new Help(bb); ViewMark mark = new ViewMark(bb); Sequence actionSeq = new Sequence(bb); Selector ramSel = new Selector(bb); Sequence ramSeq = new Sequence(bb); LineOfSight los = new LineOfSight(bb); Boost boost = new Boost(bb); NormalizeBoost norm = new NormalizeBoost(bb); Selector shootOrChase = new Selector(bb); Sequence shootSeq = new Sequence(bb); WithinFortyDist wtd = new WithinFortyDist(bb); KinematicAim aim = new KinematicAim(bb); Fire fire = new Fire(bb); Chase chase = new Chase(bb); shootSeq.AddTask(wtd); shootSeq.AddTask(aim); shootSeq.AddTask(fire); shootOrChase.AddTask(shootSeq); shootOrChase.AddTask(chase); ramSeq.AddTask(los); ramSeq.AddTask(boost); ramSel.AddTask(ramSeq); ramSel.AddTask(norm); actionSeq.AddTask(ramSel); actionSeq.AddTask(shootOrChase); targetSel.AddTask(help); targetSel.AddTask(mark); root.AddTask(noDanger); root.AddTask(targetSel); root.AddTask(actionSeq); this.bt = root; }
// Start is called before the first frame update void Start() { Sequence root = new Sequence(bb); Selector targetSel = new Selector(bb); Help help = new Help(bb); AllMark mark = new AllMark(bb); Sequence shootSeq = new Sequence(bb); KinematicAim aim = new KinematicAim(bb); WithinFortyDist wtd = new WithinFortyDist(bb); Fire fire = new Fire(bb); shootSeq.AddTask(aim); shootSeq.AddTask(wtd); shootSeq.AddTask(fire); targetSel.AddTask(help); targetSel.AddTask(mark); root.AddTask(targetSel); root.AddTask(shootSeq); this.bt = root; }
private void Start() { mainSequence.AddTask(_moveAction, _getNextPathPointAction); }
// Use this for initialization void Start() { graph = GameObject.FindObjectsOfType <PathNode> (); for (int i = 0; i < 4; i++) { RunAllTask rootTask = new RunAllTask(); /******* Attack ******/ Sequence attackSequence = new Sequence(); AquireTargetPriority aquireTargetNode = new AquireTargetPriority(); //PredictAim predictAimNode = new PredictAim(); ChooseWeapon chooseWeapon = new ChooseWeapon(); AttackTarget attackNode = new AttackTarget(); attackSequence.AddTask(aquireTargetNode); //attackSequence.AddTask(predictAimNode); attackSequence.AddTask(chooseWeapon); attackSequence.AddTask(attackNode); /****** Movement *******/ Selector movementSelector = new Selector(); /****** Flee *******/ Sequence fleeSequence = new Sequence(); FindFleeDirection findFleeNode = new FindFleeDirection(); Flee fleeNode = new Flee(); fleeSequence.AddTask(findFleeNode); fleeSequence.AddTask(fleeNode); /****** Pickups ******/ Selector pickupSelector = new Selector(); MoveToItem moveToItemNode = new MoveToItem(); PickupItem pickupItemNode = new PickupItem(); Sequence pickupSequence = new Sequence(); Selector choosePickup = new Selector(); NeedAmmo needAmmoNode = new NeedAmmo(); NeedHealth needHealthNode = new NeedHealth(); FindPathToItem findPathToItemNode = new FindPathToItem(); choosePickup.AddTask(needHealthNode); choosePickup.AddTask(needAmmoNode); pickupSequence.AddTask(choosePickup); pickupSequence.AddTask(findPathToItemNode); pickupSelector.AddTask(moveToItemNode); pickupSelector.AddTask(pickupItemNode); pickupSelector.AddTask(pickupSequence); movementSelector.AddTask(pickupSelector); movementSelector.AddTask(fleeSequence); // Add sequences to root rootTask.AddTask(attackSequence); rootTask.AddTask(movementSelector); //rootTask.AddTask(pickupSelector); if (i == 0) { Blackboard bd = new Blackboard(Francis, graph); bd.fleeDistance = 10.0f; FrancisBT = new BehaviorTree(rootTask, bd); } else if (i == 1) { Blackboard bd = new Blackboard(Zoey, graph); bd.fleeDistance = 10.0f; ZoeyBT = new BehaviorTree(rootTask, bd); } else if (i == 2) { Blackboard bd = new Blackboard(Bill, graph); bd.fleeDistance = 10.0f; BillBT = new BehaviorTree(rootTask, bd); } else { Blackboard bd = new Blackboard(Louis, graph); bd.fleeDistance = 10.0f; LouisBT = new BehaviorTree(rootTask, bd); } } }
private void Start() { mainSequence.AddTask(_waintingCheck, _safeDistanceCheck, _moveAction, _getNextPathPointAction); }