Example #1
0
        private void SetRandomSpeed(Enemy enemy)
        {
            Vector3 centerDirection = _circleCenter.position - enemy.transform.position;

            float deflectionAmplitude = Mathf.Asin(_radius / centerDirection.magnitude);
            float deflection          = Random.Range(-deflectionAmplitude, deflectionAmplitude);

            Movable movableComponent = enemy.GetComponent <Movable>();

            movableComponent.Speed = centerDirection.normalized;
            movableComponent.IncreaseSpeedVector(Random.Range(MinSpeed, MaxSpeed));
            movableComponent.RotateSpeedVector(deflection);
        }