Esempio n. 1
0
    protected override void SerchTarget()
    {
        if (NearTarget != null)
        {
            nearTargetHole = NearTarget.GetComponent <Hole>();
        }

        if (nearTargetHole == null && NearTarget != null)
        {
            return;
        }

        Transform enemyTransform = transform.parent.parent.GetChild(4);

        nearEnemy = serchTarget.serchChildTag(transform.position, enemyTransform, "Enemy");

        //敵が存在していたら
        if (nearEnemy != null)
        {
            NearTarget = nearEnemy;

            IsMove = true;
        }
        else if (nearEnemy == null && NearTarget == null)
        {
            StartCoroutine(Delay());
        }
    }
Esempio n. 2
0
    void OnTriggerEnter(Collider col)
    {
        BaseBossEnemy boss = col.transform.GetComponent <BaseBossEnemy>();

        if (boss != null)
        {
            return;
        }

        BaseEnemy target = col.transform.GetComponent <BaseEnemy>();

        if (target != null && agent.isStopped == false)
        {
            NearTarget = target.gameObject;

            IsStop   = true;
            isAttack = true;
        }

        if (NearTarget == null)
        {
            return;
        }

        Hole colHole    = col.GetComponent <Hole>();
        Hole targetHole = NearTarget.GetComponent <Hole>();

        if (colHole != null && targetHole != null && colHole == targetHole)
        {
            NearTarget = null;
        }
    }
Esempio n. 3
0
    /// <summary>
    /// ターゲットとの距離を取得
    /// </summary>
    void TargetDistance()
    {
        // ターゲットがいなければ処理しない
        if (NearTarget == null)
        {
            return;
        }
        Hole checkHole = NearTarget.GetComponent <Hole>();

        if (checkHole != null)
        {
            return;
        }

        // 自分と相手の距離を取得
        Vector3 pos       = transform.position;
        Vector3 targetPos = NearTarget.transform.position;
        float   dis       = Vector3.Distance(pos, targetPos);

        // 距離が一定いないであれば
        if (dis <= AttackRange)
        {
            // 移動を停止、攻撃
            IsStop   = true;
            isAttack = true;
        }
    }
Esempio n. 4
0
    /// <summary>
    /// ターゲットとなる畑が感染できたかどうか
    /// </summary>
    /// <returns></returns>
    public bool IsInfection()
    {
        if (NearTarget == null)
        {
            return(true);
        }

        Hole nearHole = NearTarget.GetComponent <Hole>();

        if (nearHole != null && nearHole.Infection)
        {
            return(true);
        }

        return(false);
    }