// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus). // It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) using UnityEngine; 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. /// [ExecuteInEditMode] public class View : MonoBehaviour, IView { [Tooltip("Orthographic size of the camera view in world units.")] [SerializeField] protected float viewSize = 0.5f; [Tooltip("Aspect ratio of the primary view rectangle. (e.g. 4:3 aspect ratio = 1.333)")] [SerializeField] protected Vector2 primaryAspectRatio = new Vector2(4, 3); [Tooltip("Aspect ratio of the secondary view rectangle. (e.g. 2:1 aspect ratio = 2.0)")] [SerializeField] protected Vector2 secondaryAspectRatio = new Vector2(2, 1); 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 } }