/// <summary> /// Initialize the interaction technique /// </summary> /// <param name="hdProvider">The HandProvider.</param> /// <param name="go">The Original SubDataset.</param> /// <param name="headsetTransform">The transform representing the head. If null, we take Camera.main.transform gameobject</param> public void Init(HandDetectorProvider hdProvider, DefaultSubDatasetGameObject go, Transform headsetTransform = null) { //Hand provider m_hdProvider = hdProvider; m_original = go; if (headsetTransform == null) { headsetTransform = Camera.main.transform; } //Handle the transform tree Vector3 cameraForward = headsetTransform.forward; cameraForward.y = 0; transform.localPosition = headsetTransform.position + new Vector3(0, -0.15f, 0) + 0.45f * cameraForward; transform.localRotation = Quaternion.identity; HandPositionGO.transform.SetParent(null, false); //Handle gestures m_gestureRecognizer = new GestureRecognizer(); m_gestureRecognizer.SetRecognizableGestures(GestureSettings.Tap); m_gestureRecognizer.Tapped += OnTap; m_gestureRecognizer.StartCapturingGestures(); m_headsetTransform = headsetTransform; HeadsetStartOrientation = headsetTransform.rotation; HeadsetStartPosition = headsetTransform.position; }
/// <summary> /// Initialize the interaction technique. The headset start position is reset to the headsetTransform object position /// </summary> /// <param name="hdProvider">The HandProvider.</param> /// <param name="go">The Original SubDataset.</param> /// <param name="wimScale">The replicas scale</param> /// <param name="headsetTransform">The transform representing the head. If null, we take Camera.main.transform gameobject</param> public virtual void Init(HandDetectorProvider hdProvider, DefaultSubDatasetGameObject go, Vector3 wimScale, Transform headsetTransform = null) { //Hand provider m_hdProvider = hdProvider; m_original = go; if (headsetTransform == null) { headsetTransform = Camera.main.transform; } transform.localRotation = Quaternion.identity; transform.localScale = wimScale; m_wim = go.CreateMiniature(); m_wim.transform.SetParent(transform, false); m_wim.transform.localPosition = new Vector3(0, 0, 0); m_wim.transform.localRotation = go.transform.rotation; m_wim.transform.localScale = new Vector3(1, 1, 1); HandPositionGO.transform.SetParent(null, false); OriginalHandPositionGO.transform.SetParent(null, false); //Handle gestures m_gestureRecognizer = new GestureRecognizer(); m_gestureRecognizer.SetRecognizableGestures(GestureSettings.Tap); m_gestureRecognizer.Tapped += OnTap; m_gestureRecognizer.StartCapturingGestures(); //Handle the positions HeadsetStartOrientation = headsetTransform.rotation; HeadsetStartPosition = headsetTransform.position; }
public override void Init(HandDetectorProvider hdProvider, DefaultSubDatasetGameObject go, Vector3 wimScale, Transform headsetTransform = null) { base.Init(hdProvider, go, wimScale, headsetTransform); RayObject.transform.SetParent(null, false); }