private void Awake()
 {
     if (aiStateController == null)
     {
         aiStateController = gameObject.transform.parent.GetComponent <SoilderAIStateController>();
     }
 }
Exemple #2
0
    public void ReleaseSoilderAI(SoilderAIStateController ai, float t)
    {
        Destroy(ai.targetPos.gameObject);
        Destroy(ai.Role.gameObject, t);
        ai.IsEnable = false;

        //aiStateControllers.Remove(ai);
    }
Exemple #3
0
    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");
    }
Exemple #4
0
 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;
             }
         }
     }
 }
Exemple #5
0
    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;
                }
            }
        }
    }