public override void EnterState(GameObject agent) { if (agent.tag == Constants.MinionTag) { Debug.Log("Enter Formation State"); } Animator anim = agent.GetComponent <Animator>(); anim.SetBool("isMoving", true); GameObject ai = agent.transform.Find("AI").gameObject; TeamController teamCon = ai.GetComponent <TeamController>(); if (teamCon.IsTeamLeader()) { CreateFormation(agent, ai); } NavMeshAgent navAgent = agent.GetComponent <NavMeshAgent>(); if (navAgent == null) { return; } navAgent.enabled = false; KinematicController kin = ai.GetComponent <KinematicController>(); kin.UpdateOrientation(); kin.UseKinematic(true); }
public void SetTarget(GameObject target) { if (target == null) { return; } this.target = target; KinematicController con = target.GetComponent <KinematicController>(); if (con == null) { return; } targetKinematic = con.GetKinematic(); }
public void SetNextTarget(GameObject agent, AgentController controller) { AgentSensor sense = controller.sensor; List <GameObject> enemies = sense.GetEnemies(); controller.shootTarget = ChooseTarget(agent, controller, enemies); controller.weapon.SetTarget(controller.shootTarget); GameObject aiChild = TD_Utility.Utility.GetChildByTag(agent, Constants.AITag); Face steering = TD_Utility.Utility.GetChildByTag(aiChild, Constants.SteeringTag).GetComponent <Face>(); KinematicController kin = aiChild.GetComponent <KinematicController>(); kin.SetAlternativeSteeringBehaviour(steering); kin.SetTarget(controller.shootTarget); kin.UseKinematic(true); }
public override void ExitState(GameObject agent) { if (agent.tag == Constants.MinionTag) { Debug.Log("Exit Formation State"); } GameObject ai = agent.transform.Find("AI").gameObject; KinematicController kin = ai.GetComponent <KinematicController>(); kin.SetTarget(null); kin.UseKinematic(false); Animator anim = agent.GetComponent <Animator>(); anim.SetBool("isMoving", false); }
// Start is called before the first frame update void Start() { kinController = GetComponent <KinematicController>(); kinController.SetTarget(target); }