using System; using UnityEngine; public abstract class AVRControllerBehavior : MonoBehaviour { public abstract Vector3 GetVelocityHand(); public abstract float GetRotHandY(); public abstract AVRControllerBehavior.BEH_TYPE BehaviourType { get; } public abstract bool IsHandCameraMode { get; } public abstract bool HandCameraMode { get; set; } public abstract bool IsHandPenMode { get; } public abstract bool HandDanceMode { get; set; } public abstract bool HandVRIKMode { get; set; } public abstract bool HandYotogiMode { get; set; } public virtual AVRControllerBehavior.LIMIT_MODE HandLimitMode { get { return this.m_eHandLimitMode; } set { this.m_eHandLimitMode = value; } } public virtual bool HandModelVisible { get { return this.m_bHandModelVisible; } set { this.m_bHandModelVisible = value; } } protected virtual void Awake() { } public virtual void Init(AVRController f_controller) { this.m_controller = f_controller; this.m_buttons = this.m_controller.VRControllerButtons; this.m_obj_controller = this.m_controller.VRControllerObj; } public bool m_bHandL = true; public Vector3 m_vMoveCam; public float m_fRotCam; protected OvrMgr.OvrObject.Controller m_obj_controller; protected AVRController m_controller; protected AVRControllerButtons m_buttons; protected Transform m_trTabletPenRoot; protected GameObject m_goTabletPen; protected AVRControllerBehavior.LIMIT_MODE m_eHandLimitMode; protected bool m_bHandModelVisible = true; protected bool m_bHandDanceMode; protected bool m_bHandVRIKMode; protected bool m_bHandYotogiMode; public enum BEH_TYPE { LEGACY, NEW, DUMMY } public enum LIMIT_MODE { NORMAL, NO_WARP, HAND_ONLY } }