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