using System; using System.Collections.Generic; using UnityEngine; public struct CameraSettingData : ICloneable{ public SettingValue mainFieldOfView; public SettingValue orbitPositionDamping; public SettingValue orbitTargetOffset; public SettingValue axisLookEnabledX; public SettingValue axisLookEnabledY; public SettingValue axisLookGainX; public SettingValue axisLookGainY; public SettingValue orbitFollowTopHeight; public SettingValue orbitFollowTopRadius; public SettingValue orbitFollowCenterHeight; public SettingValue orbitFollowCenterRadius; public SettingValue orbitFollowBottomHeight; public SettingValue orbitFollowBottomRadius; public SettingValue rotationComposerScreenPos; public SettingValue cameraOffsetOffset; public object Clone(){ return MemberwiseClone(); } public List GetAllSettings(){ var outputList = new List(); IResettableSettingValue[] settings = new[]{ mainFieldOfView as IResettableSettingValue, orbitPositionDamping, orbitTargetOffset, axisLookEnabledX, axisLookEnabledY, axisLookGainX, axisLookGainY, orbitFollowTopHeight, orbitFollowTopRadius, orbitFollowCenterHeight, orbitFollowCenterRadius, orbitFollowBottomHeight, orbitFollowBottomRadius, rotationComposerScreenPos, cameraOffsetOffset, }; outputList.AddRange(settings); return outputList; } }