Esempio n. 1
0
    private void Update()
    {
        ScoutAvoidSystem temp = gameObject.GetComponentInChildren <ScoutAvoidSystem>();

        if (temp.b_avoidUFOAtack == true)
        {
            AvoidAttack();
        }

        v3_Scout.x = scoutTransform.position.x;
        v3_Scout.y = scoutTransform.position.y;
        v3_Scout.z = scoutTransform.position.z;

        /*
         * if (Input.GetKeyDown(KeyCode.W))
         * {
         *  ObjPoolManager.cl_ObjPoolManager.FireS1G1();
         *  ObjPoolManager.cl_ObjPoolManager.FireS1G2();
         *
         *  ObjPoolManager.cl_ObjPoolManager.FireS2G1();
         *  ObjPoolManager.cl_ObjPoolManager.FireS2G2();
         *
         *  ObjPoolManager.cl_ObjPoolManager.FireS3G1();
         *  ObjPoolManager.cl_ObjPoolManager.FireS3G2();
         *
         *  ObjPoolManager.cl_ObjPoolManager.FireS4G1();
         *  ObjPoolManager.cl_ObjPoolManager.FireS4G2();
         * }
         */
    }
Esempio n. 2
0
    void FixedUpdate()
    {
        if (b_IsAimed_Scout1 == true || b_IsAimed_Scout2 == true || b_IsAimed_Scout3 == true || b_IsAimed_Scout4 == true)
        {
            f_counterS1 -= Time.deltaTime;
            f_counterS2 -= Time.deltaTime;
            f_counterS3 -= Time.deltaTime;
            f_counterS4 -= Time.deltaTime;

            if (f_counterS1 < 5 || f_counterS2 < 5 || f_counterS3 < 5 || f_counterS4 < 5)
            {
                go_gunFire1.SetActive(false);
                go_gunFire2.SetActive(false);
            }

            if (f_counterS1 <= 0 && b_IsAimed_Scout1 == true)
            {
                b_IsAimed_Scout1 = false; f_counterS1 = 3; go_flame1.SetActive(true); go_flame2.SetActive(true);
            }
            if (f_counterS2 <= 0 && b_IsAimed_Scout2 == true)
            {
                b_IsAimed_Scout2 = false; f_counterS2 = 3; go_flame1.SetActive(true); go_flame2.SetActive(true);
            }
            if (f_counterS3 <= 0 && b_IsAimed_Scout3 == true)
            {
                b_IsAimed_Scout3 = false; f_counterS3 = 3; go_flame1.SetActive(true); go_flame2.SetActive(true);
            }
            if (f_counterS4 <= 0 && b_IsAimed_Scout4 == true)
            {
                b_IsAimed_Scout4 = false; f_counterS4 = 3; go_flame1.SetActive(true); go_flame2.SetActive(true);
            }
        }



        float distanceToTarget2 = Vector3.Distance(transform.position, pointPatrol1TransformTarget.position);
        float distanceToTarget3 = Vector3.Distance(transform.position, pointPatrol2TransformTarget.position);
        float distanceToTarget4 = Vector3.Distance(transform.position, ufo1TransformTarget.position);
        float distanceToTarget5 = Vector3.Distance(transform.position, ufo2TransformTarget.position);
        float distanceToTarget6 = Vector3.Distance(transform.position, ufo3TransformTarget.position);

        ScoutAvoidSystem temp = gameObject.GetComponentInChildren <ScoutAvoidSystem>();

        // Scouts Behavior --->

        // Scout 1 behavior
        if (this.gameObject.name == "scout1" && temp.b_avoidUFOAtack == false)
        {
            //Moving to Patrol Point 1
            if (Vector2.Distance(transform.position, pointPatrol1TransformTarget.position) > 0.5f && b_movingToPatrolPoint1 == true && b_IsAimed_Scout1 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = pointPatrol1TransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, pointPatrol1TransformTarget.position) <= 0.5f)
            {
                b_movingToPatrolPoint1 = false; b_movingToPatrolPoint2 = true;
            }
            //Moving to Patrol Point 2
            if (Vector2.Distance(transform.position, pointPatrol2TransformTarget.position) > 0.5f && b_movingToPatrolPoint2 == true && b_IsAimed_Scout1 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = pointPatrol2TransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, pointPatrol2TransformTarget.position) <= 0.5f && b_movingToPatrolPoint2 == true)
            {
                b_movingBackToBase = true; b_movingToPatrolPoint2 = false;
            }
            //Moving to Base
            if (Vector2.Distance(transform.position, mainStationTransformTarget.position) > 0.5f && b_movingBackToBase == true && b_IsAimed_Scout1 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = mainStationTransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, mainStationTransformTarget.position) <= 0.5f && b_movingBackToBase == true)
            {
                b_movingBackToBase = false; b_movingToPatrolPoint1 = true;
            }
            //Chasing UFO
            if (b_chasingUFO == true && b_IsAimed_Scout1 == false && b_chasingAsteroid == false)
            {
                ScoutSensor tempSensor = gameObject.transform.GetComponentInChildren <ScoutSensor>();
                if (tempSensor.b_colIsUFO1 == true)
                {
                    Vector3    targetDir = ufo1TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
                if (tempSensor.b_colIsUFO2 == true)
                {
                    Vector3    targetDir = ufo2TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
                if (tempSensor.b_colIsUFO3 == true)
                {
                    Vector3    targetDir = ufo3TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
            }
            //Chasing Asteroid
            if (b_chasingUFO == false && b_IsAimed_Scout1 == false && b_chasingAsteroid == true)
            {
                ScoutSensor tempSensor = gameObject.transform.GetComponentInChildren <ScoutSensor>();
                if (tempSensor.b_colIsAsteriod1 == true)
                {
                    Vector3    targetDir = asteroid1TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }

                if (tempSensor.b_colIsAsteroid2 == true)
                {
                    Vector3    targetDir = asteroid2TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
            }
        }
        // Scout 2 behavior
        if (this.gameObject.name == "scout2")
        {
            //Moving to Patrol Point 1
            if (Vector2.Distance(transform.position, pointPatrol1TransformTarget.position) > 0.5f && b_movingToPatrolPoint1 == true && b_IsAimed_Scout2 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = pointPatrol1TransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, pointPatrol1TransformTarget.position) <= 0.5f)
            {
                b_movingToPatrolPoint1 = false; b_movingToPatrolPoint2 = true;
            }
            //Moving to Patrol Point 2
            if (Vector2.Distance(transform.position, pointPatrol2TransformTarget.position) > 0.5f && b_movingToPatrolPoint2 == true && b_IsAimed_Scout2 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = pointPatrol2TransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, pointPatrol2TransformTarget.position) <= 0.5f && b_movingToPatrolPoint2 == true)
            {
                b_movingBackToBase = true; b_movingToPatrolPoint2 = false;
            }
            //Moving to Base
            if (Vector2.Distance(transform.position, mainStationTransformTarget.position) > 0.5f && b_movingBackToBase == true && b_IsAimed_Scout2 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = mainStationTransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, mainStationTransformTarget.position) <= 0.5f && b_movingBackToBase == true)
            {
                b_movingBackToBase = false; b_movingToPatrolPoint1 = true;
            }
            //Chasing UFO
            if (b_chasingUFO == true && b_IsAimed_Scout2 == false && b_chasingAsteroid == false)
            {
                ScoutSensor tempSensor = gameObject.transform.GetComponentInChildren <ScoutSensor>();
                if (tempSensor.b_colIsUFO1 == true)
                {
                    Vector3    targetDir = ufo1TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
                if (tempSensor.b_colIsUFO2 == true)
                {
                    Vector3    targetDir = ufo2TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
                if (tempSensor.b_colIsUFO3 == true)
                {
                    Vector3    targetDir = ufo3TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
            }
            //Chasing Asteroid
            if (b_chasingUFO == false && b_IsAimed_Scout2 == false && b_chasingAsteroid == true)
            {
                ScoutSensor tempSensor = gameObject.transform.GetComponentInChildren <ScoutSensor>();
                if (tempSensor.b_colIsAsteriod1 == true)
                {
                    Vector3    targetDir = asteroid1TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }

                if (tempSensor.b_colIsAsteroid2 == true)
                {
                    Vector3    targetDir = asteroid2TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
            }
        }
        // Scout 3 behavior
        if (this.gameObject.name == "scout3")
        {
            //Moving to Patrol Point 1
            if (Vector2.Distance(transform.position, pointPatrol1TransformTarget.position) > 0.5f && b_movingToPatrolPoint1 == true && b_IsAimed_Scout3 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = pointPatrol1TransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, pointPatrol1TransformTarget.position) <= 0.5f)
            {
                b_movingToPatrolPoint1 = false; b_movingToPatrolPoint2 = true;
            }
            //Moving to Patrol Point 2
            if (Vector2.Distance(transform.position, pointPatrol2TransformTarget.position) > 0.5f && b_movingToPatrolPoint2 == true && b_IsAimed_Scout3 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = pointPatrol2TransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, pointPatrol2TransformTarget.position) <= 0.5f && b_movingToPatrolPoint2 == true)
            {
                b_movingBackToBase = true; b_movingToPatrolPoint2 = false;
            }
            //Moving to Base
            if (Vector2.Distance(transform.position, mainStationTransformTarget.position) > 0.5f && b_movingBackToBase == true && b_IsAimed_Scout3 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = mainStationTransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, mainStationTransformTarget.position) <= 0.5f && b_movingBackToBase == true)
            {
                b_movingBackToBase = false; b_movingToPatrolPoint1 = true;
            }
            //Chasing UFO
            if (b_chasingUFO == true && b_IsAimed_Scout3 == false && b_chasingAsteroid == false)
            {
                ScoutSensor tempSensor = gameObject.transform.GetComponentInChildren <ScoutSensor>();
                if (tempSensor.b_colIsUFO1 == true)
                {
                    Vector3    targetDir = ufo1TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
                if (tempSensor.b_colIsUFO2 == true)
                {
                    Vector3    targetDir = ufo2TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
                if (tempSensor.b_colIsUFO3 == true)
                {
                    Vector3    targetDir = ufo3TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
            }
            //Chasing Asteroid
            if (b_chasingUFO == false && b_IsAimed_Scout3 == false && b_chasingAsteroid == true)
            {
                ScoutSensor tempSensor = gameObject.transform.GetComponentInChildren <ScoutSensor>();
                if (tempSensor.b_colIsAsteriod1 == true)
                {
                    Vector3    targetDir = asteroid1TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }

                if (tempSensor.b_colIsAsteroid2 == true)
                {
                    Vector3    targetDir = asteroid2TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
            }
        }
        // Scout 4 behavior
        if (this.gameObject.name == "scout4")
        {
            //Moving to Patrol Point 1
            if (Vector2.Distance(transform.position, pointPatrol1TransformTarget.position) > 0.5f && b_movingToPatrolPoint1 == true && b_IsAimed_Scout4 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = pointPatrol1TransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, pointPatrol1TransformTarget.position) <= 0.5f)
            {
                b_movingToPatrolPoint1 = false; b_movingToPatrolPoint2 = true;
            }
            //Moving to Patrol Point 2
            if (Vector2.Distance(transform.position, pointPatrol2TransformTarget.position) > 0.5f && b_movingToPatrolPoint2 == true && b_IsAimed_Scout4 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = pointPatrol2TransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, pointPatrol2TransformTarget.position) <= 0.5f && b_movingToPatrolPoint2 == true)
            {
                b_movingBackToBase = true; b_movingToPatrolPoint2 = false;
            }
            //Moving to Base
            if (Vector2.Distance(transform.position, mainStationTransformTarget.position) > 0.5f && b_movingBackToBase == true && b_IsAimed_Scout4 == false && b_chasingUFO == false && b_chasingAsteroid == false)
            {
                Vector3    targetDir = mainStationTransformTarget.position - transform.position;
                float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                transform.Translate(Vector3.up * Time.deltaTime * f_speed);
            }
            if (Vector2.Distance(transform.position, mainStationTransformTarget.position) <= 0.5f && b_movingBackToBase == true)
            {
                b_movingBackToBase = false; b_movingToPatrolPoint1 = true;
            }
            //Chasing UFO
            if (b_chasingUFO == true && b_IsAimed_Scout4 == false && b_chasingAsteroid == false)
            {
                ScoutSensor tempSensor = gameObject.transform.GetComponentInChildren <ScoutSensor>();
                if (tempSensor.b_colIsUFO1 == true)
                {
                    Vector3    targetDir = ufo1TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
                if (tempSensor.b_colIsUFO2 == true)
                {
                    Vector3    targetDir = ufo2TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
                if (tempSensor.b_colIsUFO3 == true)
                {
                    Vector3    targetDir = ufo3TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
            }
            //Chasing Asteroid
            if (b_chasingUFO == false && b_IsAimed_Scout4 == false && b_chasingAsteroid == true)
            {
                ScoutSensor tempSensor = gameObject.transform.GetComponentInChildren <ScoutSensor>();
                if (tempSensor.b_colIsAsteriod1 == true)
                {
                    Vector3    targetDir = asteroid1TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }

                if (tempSensor.b_colIsAsteroid2 == true)
                {
                    Vector3    targetDir = asteroid2TransformTarget.position - transform.position;
                    float      angle     = Mathf.Atan2(targetDir.y, targetDir.x) * Mathf.Rad2Deg - 90f;
                    Quaternion q         = Quaternion.AngleAxis(angle, Vector3.forward);
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, q, f_rotationSpeed);

                    transform.Translate(Vector3.up * Time.deltaTime * f_speed);
                }
            }
        }
    }