Exemplo n.º 1
0
 public void UpdateFacingToTarget()
 {
     if (target != null && targetVisible)
     {
         Vector3 vector = AimOffset(target);
         if (peekIndex != 0)
         {
             Vector3 position = eyePos.transform.position;
             Vector3.Distance(vector, position);
             Vector3 vector2 = Vector3.Cross((vector - position).normalized, Vector3.up);
             vector += vector2 * visibilityOffsets[peekIndex];
         }
         Vector3 vector3 = (vector - eyePos.transform.position).normalized;
         if (currentAmmoGravity != 0f)
         {
             float num = 0.2f;
             if (target is BasePlayer)
             {
                 float num2 = Mathf.Clamp01(target.WaterFactor()) * 1.8f;
                 if (num2 > num)
                 {
                     num = num2;
                 }
             }
             vector = target.transform.position + Vector3.up * num;
             float   angle      = GetAngle(eyePos.transform.position, vector, currentAmmoVelocity, currentAmmoGravity);
             Vector3 normalized = (vector.XZ3D() - eyePos.transform.position.XZ3D()).normalized;
             vector3 = Quaternion.LookRotation(normalized) * Quaternion.Euler(angle, 0f, 0f) * Vector3.forward;
         }
         aimDir = vector3;
     }
     UpdateAiming();
 }