Ejemplo n.º 1
0
 // Update is called once per frame
 void Update()
 {
     if (enemy == null)
     {
         findEnemyTimer += Time.deltaTime;
         if (findEnemyTimer >= findEnemyIdleTime)
         {
             findEnemyTimer = 0;
             findEnemy();
         }
     }
     if (enemy != null)
     {
         float dist = Vector3.Distance(this.transform.position, enemy.transform.position);
         if (dist <= range)
         {
             Quaternion dir = Quaternion.LookRotation(enemy.transform.position - this.transform.position);
             turret.rotation = Quaternion.Euler(0, dir.eulerAngles.y + 90, 0);
         }
         else
         {
             enemy = null;
         }
     }
 }
Ejemplo n.º 2
0
    void AddMonsterAI(GameObject go)
    {
        if (BattleUtil.IsBoss(monsterData))
        {
            go.tag = Tag.boss;
            UnityUtil.AddComponetIfNull <Boss_AI>(go);
        }
        else
        {
            Monster_AI mAI = null;
            switch (SceneBaseManager.instance.sceneType)
            {
            case SceneType.TP:
                mAI = UnityUtil.AddComponetIfNull <TotalPoints_AI>(go);
                break;

            case SceneType.KV:
            case SceneType.TD:
            case SceneType.ACT_GOLD:
            case SceneType.ACT_EXP:
                mAI         = UnityUtil.AddComponetIfNull <EscoerMonster_AI>(go);
                mAI.IsElite = isElite;
                break;

            case SceneType.ES:
                mAI = UnityUtil.AddComponetIfNull <ToEscape_AI>(go);
                break;

            case SceneType.MB3:
                mAI = UnityUtil.AddComponetIfNull <MonsterAI3v3>(go);
                break;

            default:
                mAI = UnityUtil.AddComponetIfNull <Monster_AI>(go);
                break;
            }

            //switch(SceneManager.GetActiveScene().name)
            //{
            //    case GameLibrary.PVP_Moba:
            //        mAI.chaseTime = 1f;
            //        mAI.backPositon = BackPosition.chaseStartPos;
            //        break;
            //    default:
            //        mAI.isBackRestore = true;
            //        mAI.backPositon = BackPosition.bornPos;
            //        break;
            //}
            mAI.autoPoints = autos;
        }
    }
Ejemplo n.º 3
0
 void ChangeTarget(CharacterState cs)
 {
     for (int i = 0; i < SceneTotalPoints.instance.agents.size; i++)
     {
         Monster_AI mAI = SceneTotalPoints.instance.agents[i].GetComponent <Monster_AI>();
         if (!mAI || null == mAI.targetCs || mAI.targetCs.state != Modestatus.Tower)
         {
             continue;
         }
         if (SceneTotalPoints.instance.agents[i].groupIndex == thisCs.groupIndex)
         {
             mAI.targetCs = cs;
         }
     }
 }
Ejemplo n.º 4
0
    void findEnemy()
    {
        Monster_AI[] monsters = FindObjectsOfType <Monster_AI>();
        int          nearest  = -1;
        float        distance = Mathf.Infinity;

        for (int i = 0; i < monsters.Length; i++)
        {
            float thisDist = Vector3.Distance(this.transform.position, monsters[i].transform.position);
            if (thisDist < distance && thisDist <= range)
            {
                nearest  = i;
                distance = thisDist;
            }
        }
        if (nearest >= 0)
        {
            enemy = monsters [nearest];
        }
    }