Files
Fishing2/Assets/UnityStandardAssets/Characters/FirstPerson/MouseLook.cs
2025-05-11 00:46:26 +08:00

123 lines
2.9 KiB
C#

using System;
using UnityEngine;
namespace UnityStandardAssets.Characters.FirstPerson
{
[Serializable]
public class MouseLook
{
public float XSensitivity = 2f;
public float YSensitivity = 2f;
public bool clampVerticalRotation = true;
public float MinimumX = -90f;
public float MaximumX = 90f;
public bool smooth;
public float smoothTime = 5f;
public bool lockCursor = true;
public float RotYvalue;
public bool invertMouseY;
public bool invertMouseX;
public int ControllerHandMode;
private Quaternion m_CharacterTargetRot;
private Quaternion m_CameraTargetRot;
private bool m_cursorIsLocked = true;
// private Player player;
public void Init(Transform character, Transform camera)
{
m_CharacterTargetRot = character.localRotation;
m_CameraTargetRot = camera.localRotation;
// player = ReInput.players.GetPlayer(0);
}
public void LookRotation(Transform character, Transform camera)
{
// if (!SRDebug.Instance.IsDebugPanelVisible && !SRDebug.Instance.IsDebugPanelVisible)
// {
// float num = Mathf.Clamp(player.GetAxis("cameraVerticalGamepad") * YSensitivity * 50f * Time.deltaTime + player.GetAxis("cameraVertical") * YSensitivity * 5f * Time.deltaTime, -10f, 10f);
// float num2 = Mathf.Clamp(player.GetAxis("cameraHorizontalGamepad") * XSensitivity * 50f * Time.deltaTime + player.GetAxis("cameraHorizontal") * XSensitivity * 5f * Time.deltaTime, -10f, 10f);
// if (invertMouseY)
// {
// num *= -1f;
// }
// if (invertMouseX)
// {
// num2 *= -1f;
// }
// RotYvalue = num2;
// m_CharacterTargetRot *= Quaternion.Euler(0f, num2, 0f);
// m_CameraTargetRot *= Quaternion.Euler(0f - num, 0f, 0f);
// if (clampVerticalRotation)
// {
// m_CameraTargetRot = ClampRotationAroundXAxis(m_CameraTargetRot);
// }
// if (smooth)
// {
// character.localRotation = Quaternion.Slerp(character.localRotation, m_CharacterTargetRot, smoothTime * Time.deltaTime);
// camera.localRotation = Quaternion.Slerp(camera.localRotation, m_CameraTargetRot, smoothTime * Time.deltaTime);
// }
// else
// {
// character.localRotation = m_CharacterTargetRot;
// camera.localRotation = m_CameraTargetRot;
// }
// UpdateCursorLock();
// }
}
public void SetCursorLock(bool value)
{
lockCursor = value;
if (!lockCursor)
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
else
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
}
public void UpdateCursorLock()
{
if (lockCursor)
{
InternalLockUpdate();
}
}
private void InternalLockUpdate()
{
}
private Quaternion ClampRotationAroundXAxis(Quaternion q)
{
q.x /= q.w;
q.y /= q.w;
q.z /= q.w;
q.w = 1f;
float value = 114.59156f * Mathf.Atan(q.x);
value = Mathf.Clamp(value, MinimumX, MaximumX);
q.x = Mathf.Tan((float)Math.PI / 360f * value);
return q;
}
}
}