Пример #1
0
 // Use this for initialization
 protected override void Start()
 {
     timerColor = 0;
     red        = false;
     steering   = GetComponent <SteeringForces> ();
     speed      = 50f;
     attack     = 1;
     health     = 10f;
     direction  = transform.forward;
     velocity   = new Vector3(0, 0, 0);
 }
Пример #2
0
                // ...

                void FixedUpdate()
                {
                    if (target)
                    {
                        Vector3 force = SteeringForces.seek(

                            transform.position, target.transform.position,
                            speed, target.arrivalRadius, target.arrivedRadius, visionRadius, scaleByDistance);

                        agent.rigidbody.AddForce(force);
                    }
                }
Пример #3
0
 // Use this for initialization
 protected override void Start()
 {
     timerColor      = 0;
     red             = false;
     em              = EnemyMode.Tank;
     projectileTimer = projectileCooldown + 1;
     switchTimer     = 0;
     steering        = GetComponent <SteeringForces> ();
     speed           = 50f;
     attack          = 1;
     health          = 65f;
     direction       = transform.forward;
     velocity        = new Vector3(0, 0, 0);
 }
Пример #4
0
                    // ...

                    void FixedUpdate()
                    {
                        Vector3 force = Vector3.zero;

                        Collider[] colliders = UnityEngine.Physics.OverlapSphere(transform.position, checkForEnemiesRadius);

                        for (int i = 0; i < colliders.Length; i++)
                        {
                            Enemy enemy = colliders[i].GetComponentInParent <Enemy>();

                            if (enemy)
                            {
                                force += SteeringForces.seek(transform.position, enemy.transform.position, speed);

                                break;
                            }
                        }

                        bullet.rigidbody.AddForce(force);
                    }
Пример #5
0
                    // ...

                    void FixedUpdate()
                    {
                        // Rotate.

                        Quaternion rotationX = Quaternion.AngleAxis(rotationEulerX, Vector3.right);
                        Quaternion rotationY = Quaternion.AngleAxis(rotationEulerY, Vector3.up);
                        Quaternion rotationZ = Quaternion.AngleAxis(rotationEulerZ, Vector3.forward);

                        Quaternion rotation = rotationX * rotationY * rotationZ;

                        rigidbody.MoveRotation(rotation);

                        // Move.

                        Vector3 force     = Vector3.zero;
                        Vector3 forwardXZ = rotationY * Vector3.forward;

                        force += forwardXZ * input.y;

                        // Always seek to origin on Y-axis (seek y = 0.0f).

                        Vector3 seekToOriginY = SteeringForces.seek(transform.position, Vector3.zero, 1.0f, seekToOriginArrivalRadius, seekToOriginArrivedRadius);

                        seekToOriginY.x = 0.0f;
                        seekToOriginY.z = 0.0f;

                        force += seekToOriginY;

                        force *= speed;

                        rigidbody.AddForce(force);

                        // Lock position on Y. Attempts to smoothly move player back to 0.0f.

                        //Vector3 position = transform.position;
                        //position.y = Mathf.Lerp(position.y, 0.0f, Time.deltaTime * moveToZeroSpeedY);

                        //rigidbody.MovePosition(position);
                    }
Пример #6
0
                    // ...

                    void FixedUpdate()
                    {
                        Vector3 force          = Vector3.zero;
                        Vector3 targetPosition = GameManager.instance.player.transform.position;

                        // If player is beyond (vision) range, seek to origin.

                        if ((targetPosition - transform.position).magnitude > visionRadius)
                        {
                            force += SteeringForces.seek(transform.position,
                                                         Vector3.zero, speed, originArrivalRadius, originArrivedRadius);
                        }

                        // Else, hunt down player.

                        else
                        {
                            force += SteeringForces.seek(transform.position,
                                                         targetPosition, speed, targetArrivalRadius, targetArrivedRadius);
                        }

                        Collider[] colliders = UnityEngine.Physics.OverlapSphere(transform.position, avoidOtherEnemiesRadius);

                        for (int i = 0; i < colliders.Length; i++)
                        {
                            Enemy other = colliders[i].GetComponentInParent <Enemy>();

                            if (other)
                            {
                                if (other != this)
                                {
                                    force += -SteeringForces.seek(transform.position, other.transform.position, avoidOtherEnemiesForce, avoidOtherEnemiesRadius);
                                }
                            }
                        }

                        rigidbody.AddForce(force);
                        rigidbody.MoveRotation(rotation);
                    }