示例#1
0
        void FixedUpdate()
        {
            if (!BaseInited)
            {
                return;
            }
            var vectorToPlayer = (_playerTrans.position - transform.position);

            if (SpinDistance > vectorToPlayer.magnitude)
            {
                Rigidbody.AddTorque(TorqueSpeed);
                Rigidbody.angularDrag = 0.05f;
            }
            else
            {
                Rigidbody.angularDrag = BreakPower;
                Rigidbody.rotation   += ComponentUtils.SmoothRotate(transform.right, vectorToPlayer, RotationSpeed);
            }
            var forcePowerDirection = (vectorToPlayer.magnitude < 2.5f) ? -vectorToPlayer.normalized : vectorToPlayer.normalized;

            ComponentUtils.MoveRigidbody(Rigidbody, forcePowerDirection * Speed);
            ComponentUtils.LimitRigidbodySpeed(Rigidbody, Speed);
        }
示例#2
0
        void LookToTarget()
        {
            if (!_target)
            {
                Debug.LogError("Can't look to target. Target not found.");
                return;
            }
            var vectorToPlayer = _target.position - transform.position;

            transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + ComponentUtils.SmoothRotate(transform.up, vectorToPlayer, RotationSpeed));
        }