123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #if UNITY_EDITOR
- using UnityEngine;
- namespace O3DWB
- {
- public class CameraDataSnapshot
- {
- #region Private Variables
- private TransformSnapshot _transformSnapshot;
- private CameraType _cameraType;
- #endregion
- #region Public Methods
- public void TakeSnapshot(Camera camera)
- {
- _transformSnapshot = new TransformSnapshot();
- _transformSnapshot.TakeSnapshot(camera.transform);
- _cameraType = camera.orthographic ? CameraType.Orthographic : CameraType.Perspective;
- }
- public override bool Equals(object value)
- {
- if (ReferenceEquals(value, null)) return false;
- if (ReferenceEquals(value, this)) return true;
- if (value.GetType() != this.GetType()) return false;
- return IsEqual(value as CameraDataSnapshot);
- }
- public bool Equals(CameraDataSnapshot cameraDataSnapshot)
- {
- if (ReferenceEquals(cameraDataSnapshot, null)) return false;
- if (ReferenceEquals(cameraDataSnapshot, this)) return true;
- return IsEqual(cameraDataSnapshot);
- }
- public override int GetHashCode()
- {
- int hash = 13;
- hash = (hash * 7) + _transformSnapshot.GetHashCode();
- hash = (hash * 7) + _cameraType.GetHashCode();
- return hash;
- }
- public static bool operator ==(CameraDataSnapshot firstSnapshot, CameraDataSnapshot secondSnapshot)
- {
- return !ReferenceEquals(firstSnapshot, null) &&
- !ReferenceEquals(secondSnapshot, null) &&
- (ReferenceEquals(firstSnapshot, secondSnapshot) || firstSnapshot.IsEqual(secondSnapshot));
- }
- public static bool operator !=(CameraDataSnapshot firstSnapshot, CameraDataSnapshot secondSnapshot)
- {
- return !(firstSnapshot == secondSnapshot);
- }
- #endregion
- #region Private Methods
- private bool IsEqual(CameraDataSnapshot cameraDataSnapshot)
- {
- return _transformSnapshot == cameraDataSnapshot._transformSnapshot &&
- _cameraType == cameraDataSnapshot._cameraType;
- }
- #endregion
- }
- }
- #endif
|