diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md diff --git a/LICENSE.md.meta b/LICENSE.md.meta new file mode 100644 index 0000000..cb1e8f5 --- /dev/null +++ b/LICENSE.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 19cc458417b2b8741953fcb6487d7dfe +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/RegistartionUI.prefab b/Runtime/RegistrationUI.prefab similarity index 99% rename from Runtime/RegistartionUI.prefab rename to Runtime/RegistrationUI.prefab index c300f71..199fe84 100644 --- a/Runtime/RegistartionUI.prefab +++ b/Runtime/RegistrationUI.prefab @@ -105,6 +105,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -274,6 +275,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -410,6 +412,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -623,6 +626,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -702,7 +706,7 @@ GameObject: - component: {fileID: 7148892776856201653} - component: {fileID: 6634393656915495675} m_Layer: 5 - m_Name: RegistartionUI + m_Name: RegistrationUI m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -776,7 +780,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 + m_PresetInfoIsWorld: 1 --- !u!114 &7148892776856201653 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Runtime/RegistartionUI.prefab.meta b/Runtime/RegistrationUI.prefab.meta similarity index 100% rename from Runtime/RegistartionUI.prefab.meta rename to Runtime/RegistrationUI.prefab.meta diff --git a/Runtime/Scripts/RegistrationVrController.cs b/Runtime/Scripts/RegistrationVrController.cs index 00cd4a7..870f45a 100644 --- a/Runtime/Scripts/RegistrationVrController.cs +++ b/Runtime/Scripts/RegistrationVrController.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Linq; using UnityEngine; /// @@ -18,19 +17,24 @@ public class RegistrationVrController : MonoBehaviour [SerializeField] private bool calibrateObject; [HideInInspector] public GameObject controllerInUse; - private Calibrator _calibrator; - private Vector3 _tipPosition; + protected Calibrator _calibrator; + protected Vector3 _tipPosition; private GameObject _demoObject; private bool _isRecordingTipPosition; - private List _tipPositionsOverTime = new List(); + private readonly List _tipPositionsOverTime = new List(); public readonly Vector3 PredefinedTipPosition = new Vector3(0.01211928f,-0.08250856f,-0.08393941f); + + protected Handedness ControllerSelection => controllerSelection; + protected bool CalibrateObject => calibrateObject; + protected virtual float TipForwardOffset => 0.06f; + public enum Handedness { RightHanded, LeftHanded } - private void Awake() + protected virtual void Awake() { _calibrator = gameObject.AddComponent(); SetupController(); @@ -41,7 +45,7 @@ private void Awake() } - private void Start() + protected virtual void Start() { if (calibrateObject) registration.SetState(Registration.State.Calibration); @@ -50,7 +54,7 @@ private void Start() _calibrator.SetRelativePostition(PredefinedTipPosition); } - private void OnStateChanged() + protected virtual void OnStateChanged() { switch (registration.currentState) { @@ -66,18 +70,23 @@ private void OnStateChanged() } } - private void OnEnable() + protected virtual void OnEnable() { SetupController(); } - private void SetupController() + protected virtual void OnDisable() + { + } + + protected virtual void SetupController() { controllerInUse = SearchForController(controllerSelection); - _calibrator.toCalibrate = controllerInUse; + if (_calibrator != null) + _calibrator.toCalibrate = controllerInUse; } - private void Update() + protected virtual void Update() { if (registration.currentState == Registration.State.Inactive) return; switch (registration.currentState) @@ -94,7 +103,7 @@ private void Update() } } - private void CalibrationActions() + protected virtual void CalibrationActions() { UpdateTipPosition(); UpdateDemoObject(); @@ -110,7 +119,7 @@ private void CalibrationActions() } - private void MarkerStateActions() + protected virtual void MarkerStateActions() { UpdateTipPosition(); UpdateDemoObject(); @@ -121,7 +130,7 @@ private void MarkerStateActions() RightHandMarkerInteractions(); } - private void ConfirmationStateActions() + protected virtual void ConfirmationStateActions() { if (CommitButtonPressed()) { @@ -135,17 +144,17 @@ private void ConfirmationStateActions() } } - private void UpdateTipPosition() + protected virtual void UpdateTipPosition() { if (calibrateObject) _tipPosition = _calibrator.GetCalibratedCurrentPosition(); else if (controllerInUse != null) - _tipPosition = controllerInUse.transform.position + controllerInUse.transform.forward * 0.06f; + _tipPosition = controllerInUse.transform.position + controllerInUse.transform.forward * TipForwardOffset; else Debug.LogWarning("No Controller in Use!"); } - private void UpdateDemoObject() + protected virtual void UpdateDemoObject() { if (_demoObject == null) return; @@ -153,19 +162,20 @@ private void UpdateDemoObject() Helper.SetColor(_demoObject, Helper.GetColorForIndex(registration.markers.Count)); } - private void RightHandMarkerInteractions() + protected virtual void RightHandMarkerInteractions() { if (_isRecordingTipPosition && AnyTriggerUp()) EndRecordingTipPosition(); if (!_isRecordingTipPosition && AnyTriggerDown()) StartRecordingTipPosition(); if (CancelButtonPressed()) registration.ResetEverything(); } - private void StartRecordingTipPosition() + protected virtual void StartRecordingTipPosition() { _isRecordingTipPosition = true; _tipPositionsOverTime.Clear(); } - private void EndRecordingTipPosition() + + protected virtual void EndRecordingTipPosition() { if(_tipPositionsOverTime == null || _tipPositionsOverTime.Count < 1)return; _isRecordingTipPosition = false; @@ -175,7 +185,8 @@ private void EndRecordingTipPosition() _tipPositionsOverTime.Clear(); registration.AddMarker(midPoint); } - private GameObject SearchForController(Handedness handedness) + + protected virtual GameObject SearchForController(Handedness handedness) { string controllerName = handedness == Handedness.RightHanded ? "RightControllerAnchor" : "LeftControllerAnchor"; @@ -183,7 +194,7 @@ private GameObject SearchForController(Handedness handedness) return controllerToUse; } - private void LeftHandMarkerInteractions() + protected virtual void LeftHandMarkerInteractions() { if (OVRInput.GetDown(OVRInput.Button.One, OVRInput.Controller.LTouch)) { @@ -191,23 +202,23 @@ private void LeftHandMarkerInteractions() } } - private static bool CommitButtonPressed() + protected virtual bool CommitButtonPressed() { return OVRInput.GetDown(OVRInput.Button.One, OVRInput.Controller.RTouch); } - private static bool CancelButtonPressed() + protected virtual bool CancelButtonPressed() { return OVRInput.GetDown(OVRInput.Button.Two, OVRInput.Controller.RTouch); } - private static bool AnyTriggerDown() + protected virtual bool AnyTriggerDown() { return OVRInput.GetDown(OVRInput.Button.PrimaryHandTrigger, OVRInput.Controller.RTouch) || OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger, OVRInput.Controller.RTouch); } - private static bool AnyTriggerUp() + protected virtual bool AnyTriggerUp() { return OVRInput.GetUp(OVRInput.Button.PrimaryHandTrigger, OVRInput.Controller.RTouch) || OVRInput.GetUp(OVRInput.Button.PrimaryIndexTrigger, OVRInput.Controller.RTouch);