private void Awake() { if (aiStateController == null) { aiStateController = gameObject.transform.parent.GetComponent <SoilderAIStateController>(); } }
public void ReleaseSoilderAI(SoilderAIStateController ai, float t) { Destroy(ai.targetPos.gameObject); Destroy(ai.Role.gameObject, t); ai.IsEnable = false; //aiStateControllers.Remove(ai); }
public void CreatSoilderRole(SoilderAIStateController ai, string msg, Vector3 P, Quaternion Q) { //Debug.Log("StartCreatModel"); ai.msg = msg; //Debug.Log(msg); GameObject go = Resources.Load <GameObject>(msg); ai.Role = Instantiate(go, P, Q); //ai.Role.transform.position = P; //ai.Role.transform.rotation = Q; ai.Role.GetComponent <PlayerHealth>().stateController = ai;// ai.Intialize(this); aiStateControllers.Add(ai); Debug.Log("Finish"); }
public void SummonSoilderAI(SoilderAIStateController ai, GameObject target, float radious) { foreach (SoilderAIStateController AI in aiStateControllers) { if (AI.IsEnable) { if (Vector3.Distance(ai.Role.transform.position, AI.Role.transform.position) < radious && AI != ai) { Debug.Log("SummonPos" + ai.RolePos); Debug.Log("WalkerPos" + AI.RolePos); //AI.SummonTarget = target; AI.targetPos.transform.position = target.transform.position; AI.m_aiState = SoilderAIStateController.AIState.WALK; } } } }
public void SummonEnd(SoilderAIStateController ai, GameObject target) { Debug.Log("Summon_End"); foreach (SoilderAIStateController AI in aiStateControllers) { if (AI.IsEnable) { if (Vector3.Distance(ai.Role.transform.position, AI.Role.transform.position) < 2 && AI != ai) { //AI.SummonTarget = null; Vector3 backPos = (target.transform.position - AI.Role.transform.forward) * 2; AI.Role.GetComponent <NavMeshAgent>().SetDestination(backPos); AI.m_aiState = SoilderAIStateController.AIState.IDLE; } else if (AI.m_aiState == SoilderAIStateController.AIState.WALK) { //AI.SummonTarget = null; AI.m_aiState = SoilderAIStateController.AIState.IDLE; } } } }