diff --git a/Assets/Fungus/Camera/Scripts/IView.cs b/Assets/Fungus/Camera/Scripts/IView.cs
new file mode 100644
index 00000000..2992af36
--- /dev/null
+++ b/Assets/Fungus/Camera/Scripts/IView.cs
@@ -0,0 +1,27 @@
+using UnityEngine;
+using System.Collections;
+
+namespace Fungus
+{
+ ///
+ /// Defines a camera view point.
+ /// The position and rotation are specified using the game object's transform, so this class only needs to specify the ortographic view size.
+ ///
+ public interface IView
+ {
+ ///
+ /// Orthographic size of the camera view in world units.
+ ///
+ float ViewSize { get; set; }
+
+ ///
+ /// Aspect ratio of the primary view rectangle. e.g. a 4:3 aspect ratio = 1.333.
+ ///
+ Vector2 PrimaryAspectRatio { get; set; }
+
+ ///
+ /// Aspect ratio of the secondary view rectangle. e.g. a 2:1 aspect ratio = 2/1 = 2.0.
+ ///
+ Vector2 SecondaryAspectRatio { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Fungus/Camera/Scripts/IView.cs.meta b/Assets/Fungus/Camera/Scripts/IView.cs.meta
new file mode 100644
index 00000000..9dde8775
--- /dev/null
+++ b/Assets/Fungus/Camera/Scripts/IView.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: d50490011ddfc4e6ea394a4bfbf815e0
+timeCreated: 1473676064
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Fungus/Camera/Scripts/View.cs b/Assets/Fungus/Camera/Scripts/View.cs
index bdd48b5a..bebefd5a 100644
--- a/Assets/Fungus/Camera/Scripts/View.cs
+++ b/Assets/Fungus/Camera/Scripts/View.cs
@@ -10,33 +10,31 @@ namespace Fungus
/// The position and rotation are specified using the game object's transform, so this class only needs to specify the ortographic view size.
///
[ExecuteInEditMode]
- public class View : MonoBehaviour
+ public class View : MonoBehaviour, IView
{
- ///
- /// Orthographic size of the camera view in world units.
- ///
[Tooltip("Orthographic size of the camera view in world units.")]
[SerializeField] protected float viewSize = 0.5f;
- public virtual float ViewSize { get { return viewSize; } set { viewSize = value; } }
- ///
- /// Aspect ratio of the primary view rectangle. e.g. a 4:3 aspect ratio = 1.333.
- ///
[Tooltip("Aspect ratio of the primary view rectangle. (e.g. 4:3 aspect ratio = 1.333)")]
[SerializeField] protected Vector2 primaryAspectRatio = new Vector2(4, 3);
- public virtual Vector2 PrimaryAspectRatio { get { return primaryAspectRatio; } set { primaryAspectRatio = value; } }
- ///
- /// Aspect ratio of the secondary view rectangle. e.g. a 2:1 aspect ratio = 2/1 = 2.0.
- ///
[Tooltip("Aspect ratio of the secondary view rectangle. (e.g. 2:1 aspect ratio = 2.0)")]
[SerializeField] protected Vector2 secondaryAspectRatio = new Vector2(2, 1);
- public virtual Vector2 SecondaryAspectRatio { get { return secondaryAspectRatio; } set { secondaryAspectRatio = value; } }
protected virtual void Update()
{
// Disable scaling to avoid complicating the orthographic size calculations
transform.localScale = new Vector3(1,1,1);
}
+
+ #region IView implementation
+
+ public virtual float ViewSize { get { return viewSize; } set { viewSize = value; } }
+
+ public virtual Vector2 PrimaryAspectRatio { get { return primaryAspectRatio; } set { primaryAspectRatio = value; } }
+
+ public virtual Vector2 SecondaryAspectRatio { get { return secondaryAspectRatio; } set { secondaryAspectRatio = value; } }
+
+ #endregion
}
}
\ No newline at end of file