mirror of
https://github.com/GTA-ASM/SanAndreasUnity
synced 2024-11-23 12:33:02 +00:00
camera distance is configurable
This commit is contained in:
parent
d138ac9a66
commit
fb302bf086
6 changed files with 39 additions and 7 deletions
|
@ -39,12 +39,11 @@ namespace SanAndreasUnity.Behaviours
|
||||||
|
|
||||||
public CharacterController characterController { get; private set; }
|
public CharacterController characterController { get; private set; }
|
||||||
|
|
||||||
[SerializeField] private float m_cameraDistance = 3f;
|
public float CameraDistance { get { return PedManager.Instance.cameraDistanceFromPed; } set { PedManager.Instance.cameraDistanceFromPed = value; } }
|
||||||
public float CameraDistance { get { return m_cameraDistance; } set { m_cameraDistance = value; } }
|
|
||||||
|
|
||||||
[SerializeField] private float m_cameraDistanceVehicle = 6f;
|
public float CameraDistanceVehicle { get { return VehicleManager.Instance.cameraDistanceFromVehicle; } set { VehicleManager.Instance.cameraDistanceFromVehicle = value; } }
|
||||||
public float CameraDistanceVehicle { get { return m_cameraDistanceVehicle; } set { m_cameraDistanceVehicle = value; } }
|
|
||||||
|
|
||||||
|
// used for clamping camera rotation
|
||||||
[SerializeField] private Vector2 m_cameraClampValue = new Vector2(60, 60);
|
[SerializeField] private Vector2 m_cameraClampValue = new Vector2(60, 60);
|
||||||
public Vector2 CameraClampValue { get { return m_cameraClampValue; } set { m_cameraClampValue = value; } }
|
public Vector2 CameraClampValue { get { return m_cameraClampValue; } set { m_cameraClampValue = value; } }
|
||||||
|
|
||||||
|
|
|
@ -173,7 +173,8 @@ namespace SanAndreasUnity.Behaviours.Peds.States
|
||||||
|
|
||||||
public virtual void UpdateCameraZoom()
|
public virtual void UpdateCameraZoom()
|
||||||
{
|
{
|
||||||
m_ped.CameraDistance = Mathf.Clamp(m_ped.CameraDistance - m_ped.MouseScrollInput.y, 2.0f, 32.0f);
|
m_ped.CameraDistance = Mathf.Clamp(m_ped.CameraDistance - m_ped.MouseScrollInput.y, PedManager.Instance.minCameraDistanceFromPed,
|
||||||
|
PedManager.Instance.maxCameraDistanceFromPed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void CheckCameraCollision()
|
public virtual void CheckCameraCollision()
|
||||||
|
|
|
@ -160,7 +160,8 @@ namespace SanAndreasUnity.Behaviours.Peds.States
|
||||||
|
|
||||||
public override void UpdateCameraZoom()
|
public override void UpdateCameraZoom()
|
||||||
{
|
{
|
||||||
m_ped.CameraDistanceVehicle = Mathf.Clamp(m_ped.CameraDistanceVehicle - m_ped.MouseScrollInput.y, 2.0f, 32.0f);
|
m_ped.CameraDistanceVehicle = Mathf.Clamp(m_ped.CameraDistanceVehicle - m_ped.MouseScrollInput.y, PedManager.Instance.minCameraDistanceFromPed,
|
||||||
|
PedManager.Instance.maxCameraDistanceFromPed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void CheckCameraCollision ()
|
public override void CheckCameraCollision ()
|
||||||
|
|
|
@ -13,6 +13,10 @@ namespace SanAndreasUnity.Behaviours
|
||||||
public float pedTurnSpeed = 10f;
|
public float pedTurnSpeed = 10f;
|
||||||
public bool showPedSpeedometer = true;
|
public bool showPedSpeedometer = true;
|
||||||
|
|
||||||
|
public float cameraDistanceFromPed = 3f;
|
||||||
|
public float minCameraDistanceFromPed = 2f;
|
||||||
|
public float maxCameraDistanceFromPed = 30f;
|
||||||
|
|
||||||
[Header("Health bar")]
|
[Header("Health bar")]
|
||||||
|
|
||||||
public bool displayHealthBarAbovePeds = false;
|
public bool displayHealthBarAbovePeds = false;
|
||||||
|
|
|
@ -9,6 +9,8 @@ namespace SanAndreasUnity.Behaviours.Vehicles
|
||||||
|
|
||||||
public GameObject vehiclePrefab;
|
public GameObject vehiclePrefab;
|
||||||
|
|
||||||
|
public float cameraDistanceFromVehicle = 6f;
|
||||||
|
|
||||||
public bool syncLinearVelocity = true;
|
public bool syncLinearVelocity = true;
|
||||||
public bool syncAngularVelocity = true;
|
public bool syncAngularVelocity = true;
|
||||||
public Utilities.WhenOnClient whenToDisableRigidBody = Utilities.WhenOnClient.OnlyOnOtherClients;
|
public Utilities.WhenOnClient whenToDisableRigidBody = Utilities.WhenOnClient.OnlyOnOtherClients;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using SanAndreasUnity.UI;
|
using SanAndreasUnity.UI;
|
||||||
|
using SanAndreasUnity.Behaviours;
|
||||||
|
using SanAndreasUnity.Behaviours.Vehicles;
|
||||||
|
|
||||||
namespace SanAndreasUnity.Settings {
|
namespace SanAndreasUnity.Settings {
|
||||||
|
|
||||||
|
@ -24,15 +26,38 @@ namespace SanAndreasUnity.Settings {
|
||||||
setValue = (value) => { s_fieldOfView = value; if (Camera.main != null) Camera.main.fieldOfView = value; },
|
setValue = (value) => { s_fieldOfView = value; if (Camera.main != null) Camera.main.fieldOfView = value; },
|
||||||
persistType = OptionsWindow.InputPersistType.OnStart,
|
persistType = OptionsWindow.InputPersistType.OnStart,
|
||||||
};
|
};
|
||||||
|
OptionsWindow.FloatInput m_cameraDistanceFromPed = new OptionsWindow.FloatInput() {
|
||||||
|
description = "Camera distance from ped",
|
||||||
|
minValue = 0.1f,
|
||||||
|
maxValue = 100f,
|
||||||
|
getValue = () => PedManager.Instance.cameraDistanceFromPed,
|
||||||
|
setValue = (value) => { PedManager.Instance.cameraDistanceFromPed = value; },
|
||||||
|
persistType = OptionsWindow.InputPersistType.OnStart,
|
||||||
|
};
|
||||||
|
OptionsWindow.FloatInput m_cameraDistanceFromVehicle = new OptionsWindow.FloatInput() {
|
||||||
|
description = "Camera distance from vehicle",
|
||||||
|
minValue = 0.1f,
|
||||||
|
maxValue = 100f,
|
||||||
|
getValue = () => VehicleManager.Instance.cameraDistanceFromVehicle,
|
||||||
|
setValue = (value) => { VehicleManager.Instance.cameraDistanceFromVehicle = value; },
|
||||||
|
persistType = OptionsWindow.InputPersistType.OnStart,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Awake ()
|
void Awake ()
|
||||||
{
|
{
|
||||||
OptionsWindow.RegisterInputs ("CAMERA", m_farClipPlaneInput, m_fieldOfViewInput);
|
OptionsWindow.RegisterInputs ("CAMERA", m_farClipPlaneInput, m_fieldOfViewInput, m_cameraDistanceFromPed, m_cameraDistanceFromVehicle);
|
||||||
UnityEngine.SceneManagement.SceneManager.activeSceneChanged += (s1, s2) => OnActiveSceneChanged();
|
UnityEngine.SceneManagement.SceneManager.activeSceneChanged += (s1, s2) => OnActiveSceneChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Start ()
|
||||||
|
{
|
||||||
|
// assign min & max values for camera distance
|
||||||
|
m_cameraDistanceFromPed.minValue = m_cameraDistanceFromVehicle.minValue = PedManager.Instance.minCameraDistanceFromPed;
|
||||||
|
m_cameraDistanceFromPed.maxValue = m_cameraDistanceFromVehicle.maxValue = PedManager.Instance.maxCameraDistanceFromPed;
|
||||||
|
}
|
||||||
|
|
||||||
void OnActiveSceneChanged()
|
void OnActiveSceneChanged()
|
||||||
{
|
{
|
||||||
// apply settings
|
// apply settings
|
||||||
|
|
Loading…
Reference in a new issue