Files
Studio/Assets/Scripts/XRLib/GenericController/GenericControllerOption.cs
2025-02-21 11:57:09 +09:00

74 lines
2.3 KiB
C#

using System;
using UnityEngine;
namespace XRLib
{
public abstract class GenericControllerOption : ScriptableObject, ISerializationCallbackReceiver
{
[SerializeField]bool _orthographic;
[SerializeField]float _moveSensivity;
[SerializeField]float _zoomSensivity;
[SerializeField]float _rotateSensivity;
[SerializeField]float _moveSpeed;
[SerializeField]float _zoomSpeed;
[SerializeField]float _rotateSpeed;
[SerializeField]float _fieldOfView;
[SerializeField]bool _moveLimit;
[SerializeField]bool _rotateLimit;
[SerializeField]bool _azimuthRotateLimit;
[SerializeField]bool _elevationRotateLimit;
/**initialize Values*/
[NonSerialized]
public bool orthographic;
[NonSerialized]
public float moveSensivity;
[NonSerialized]
public float zoomSensivity;
[NonSerialized]
public float rotateSensivity;
[NonSerialized]
public float moveSpeed;
[NonSerialized]
public float zoomSpeed;
[NonSerialized]
public float rotateSpeed;
[NonSerialized]
public float fieldOfView;
[NonSerialized]
public bool moveLimit;
[NonSerialized]
public bool rotateLimit;
[NonSerialized]
public bool azimuthRotateLimit;
[NonSerialized]
public bool elevationRotateLimit;
public virtual void OnAfterDeserialize()
{
orthographic = _orthographic;
moveSensivity = _moveSensivity;
zoomSensivity = _zoomSensivity;
rotateSensivity = _rotateSensivity;
moveSpeed = _moveSpeed;
zoomSpeed = _zoomSpeed;
rotateSpeed = _rotateSpeed;
fieldOfView = _fieldOfView;
moveLimit = _moveLimit;
rotateLimit = _rotateLimit;
azimuthRotateLimit = _azimuthRotateLimit;
elevationRotateLimit = _elevationRotateLimit;
}
public void OnBeforeSerialize()
{
//throw new NotImplementedException();
}
public virtual void Apply(GenericController controller)
{
controller.camera.orthographic = orthographic;
controller.camera.fieldOfView = fieldOfView;
}
}
}