private string getStateLabel(FSMAI aiScript) { string curState; switch (aiScript.state) { case AIState.IDLE: curState = "IDLE"; break; case AIState.CHASING: curState = "CHASING"; break; case AIState.ATTACK: curState = "ATTACK"; break; case AIState.WANDERING: curState = "WANDERING"; break; default: curState = "UNDEFINED"; break; } return(curState); }
// Use this for initialization void Start() { agentGUI1 = new Rect(10, 10, 150, 200); agentGUI2 = new Rect(Screen.width - 150, 10, 150, 200); statePos = new Rect(0, 0, 150, 20); healthPos = new Rect(0, 20, 150, 20); agent1 = GameObject.Find("Agent Smith").GetComponent <FSMAI>(); agent2 = GameObject.Find("Agent Jones").GetComponent <FSMAI>(); }
// Update is called once per frame void Update() { if (Input.GetButtonDown("Fire1")) { RaycastHit hit; Vector3 fwd = transform.TransformDirection(Vector3.forward); if (Physics.Raycast(transform.position, fwd, out hit)) { Distance = hit.distance; if (Distance < MaxDistance) { if (hit.transform.gameObject.tag == "cow" || hit.transform.gameObject.tag == "goat" || hit.transform.gameObject.tag == "chicken" || hit.transform.gameObject.tag == "sheep") { FSMAI enemyScript = hit.transform.GetComponent <FSMAI>(); enemyScript.TakeDamage(Damage); } else if (hit.transform.gameObject.tag == "babyCow") { babyCowAI babycowScript = hit.transform.GetComponent <babyCowAI>(); babycowScript.TakeDamage(Damage); } else if (hit.transform.gameObject.tag == "Bull") { BullAI BullScript = hit.transform.GetComponent <BullAI>(); BullScript.TakeDamage(Damage); } else if (hit.transform.gameObject.tag == "Ram") { RamAI RamScript = hit.transform.GetComponent <RamAI>(); RamScript.TakeDamage(Damage); } else if (hit.transform.gameObject.tag == "Cockrill") { RamAI RamScript = hit.transform.GetComponent <RamAI>(); RamScript.TakeDamage(Damage); } } } } }