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); }
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)); }