added: axis enabled and gain settings to camera settings processor
This commit is contained in:
@@ -32,6 +32,12 @@ public struct CameraSettingValues{
|
||||
public CameraSettingSingleValue<Vector3> orbitPositionDamping;
|
||||
public CameraSettingSingleValue<Vector3> orbitTargetOffset;
|
||||
|
||||
public CameraSettingSingleValue<bool> axisLookEnabledX;
|
||||
public CameraSettingSingleValue<bool> axisLookEnabledY;
|
||||
|
||||
public CameraSettingSingleValue<float> axisLookGainX;
|
||||
public CameraSettingSingleValue<float> axisLookGainY;
|
||||
|
||||
public CameraSettingSingleValue<float> orbitFollowTopHeight;
|
||||
public CameraSettingSingleValue<float> orbitFollowTopRadius;
|
||||
public CameraSettingSingleValue<float> orbitFollowCenterHeight;
|
||||
@@ -48,6 +54,12 @@ public struct CameraSettingValues{
|
||||
|
||||
orbitPositionDamping = new CameraSettingSingleValue<Vector3>(defaultSmoothing);
|
||||
orbitTargetOffset = new CameraSettingSingleValue<Vector3>(defaultSmoothing);
|
||||
|
||||
axisLookEnabledX = new CameraSettingSingleValue<bool>();
|
||||
axisLookEnabledY = new CameraSettingSingleValue<bool>();
|
||||
|
||||
axisLookGainX = new CameraSettingSingleValue<float>(defaultSmoothing);
|
||||
axisLookGainY = new CameraSettingSingleValue<float>(defaultSmoothing);
|
||||
|
||||
orbitFollowTopHeight = new CameraSettingSingleValue<float>(defaultSmoothing);
|
||||
orbitFollowTopRadius = new CameraSettingSingleValue<float>(defaultSmoothing);
|
||||
@@ -72,6 +84,7 @@ public class CameraSettingsProcessor : MonoBehaviour{
|
||||
private CinemachineOrbitalFollow orbit;
|
||||
private CinemachineRotationComposer rotComp;
|
||||
private CinemachineCameraOffset offset;
|
||||
private CinemachineInputAxisController axisCont;
|
||||
|
||||
public void Awake(){
|
||||
// Singleton management
|
||||
@@ -87,11 +100,16 @@ public class CameraSettingsProcessor : MonoBehaviour{
|
||||
orbit = mainCamera.GetComponent<CinemachineOrbitalFollow>();
|
||||
rotComp = mainCamera.GetComponent<CinemachineRotationComposer>();
|
||||
offset = mainCamera.GetComponent<CinemachineCameraOffset>();
|
||||
axisCont = mainCamera.GetComponent<CinemachineInputAxisController>();
|
||||
|
||||
// Initialize camera settings values
|
||||
values = new CameraSettingValues{
|
||||
cameraOffsetOffset = new CameraSettingSingleValue<Vector3>(defaultSmoothing: .2f, offset.Offset),
|
||||
mainFieldOfView = new CameraSettingSingleValue<float>(defaultSmoothing: .2f, main.Lens.FieldOfView),
|
||||
axisLookEnabledX = new CameraSettingSingleValue<bool>(0f, axisCont.Controllers[0].Enabled),
|
||||
axisLookEnabledY = new CameraSettingSingleValue<bool>(0f, axisCont.Controllers[1].Enabled),
|
||||
axisLookGainX = new CameraSettingSingleValue<float>(defaultSmoothing: .2f, axisCont.Controllers[0].Input.Gain),
|
||||
axisLookGainY = new CameraSettingSingleValue<float>(defaultSmoothing: .2f, axisCont.Controllers[1].Input.Gain),
|
||||
orbitPositionDamping = new CameraSettingSingleValue<Vector3>(defaultSmoothing: .2f, orbit.TrackerSettings.PositionDamping),
|
||||
orbitFollowTopHeight = new CameraSettingSingleValue<float>(defaultSmoothing: .2f, orbit.Orbits.Top.Height),
|
||||
orbitFollowTopRadius = new CameraSettingSingleValue<float>(defaultSmoothing: .2f, orbit.Orbits.Top.Radius),
|
||||
@@ -107,6 +125,18 @@ public class CameraSettingsProcessor : MonoBehaviour{
|
||||
main.Lens.FieldOfView = Mathf.SmoothDamp(main.Lens.FieldOfView,
|
||||
values.mainFieldOfView.targetValue, ref values.mainFieldOfView.velocityRef,
|
||||
values.mainFieldOfView.smoothing);
|
||||
|
||||
axisCont.Controllers[0].Enabled = values.axisLookEnabledX.targetValue;
|
||||
|
||||
axisCont.Controllers[1].Enabled = values.axisLookEnabledY.targetValue;
|
||||
|
||||
axisCont.Controllers[0].Input.Gain = Mathf.SmoothDamp(axisCont.Controllers[0].Input.Gain,
|
||||
values.axisLookGainX.targetValue, ref values.axisLookGainX.velocityRef,
|
||||
values.axisLookGainX.smoothing);
|
||||
|
||||
axisCont.Controllers[1].Input.Gain = Mathf.SmoothDamp(axisCont.Controllers[1].Input.Gain,
|
||||
values.axisLookGainY.targetValue, ref values.axisLookGainY.velocityRef,
|
||||
values.axisLookGainY.smoothing);
|
||||
|
||||
orbit.TargetOffset = Vector3.SmoothDamp(orbit.TargetOffset,
|
||||
values.orbitTargetOffset.targetValue, ref values.orbitTargetOffset.velocityRefV3,
|
||||
@@ -147,6 +177,8 @@ public class CameraSettingsProcessor : MonoBehaviour{
|
||||
offset.Offset = Vector3.SmoothDamp(offset.Offset,
|
||||
values.cameraOffsetOffset.targetValue, ref values.cameraOffsetOffset.velocityRefV3,
|
||||
values.cameraOffsetOffset.smoothing);
|
||||
|
||||
|
||||
}
|
||||
|
||||
void Update(){
|
||||
|
||||
Reference in New Issue
Block a user