protected void _OnMVRTouchMoved(VRTouch iTouch) { if (TouchEvents == VRTouch.ETouchParameter.ReceiveTouchEvents) { //MiddleVRTools.Log(2, "Touch end: " + iSrc.name + ".NbTouch: " + m_Touches.Count); SendMessage("OnMVRTouchMoved", iTouch, SendMessageOptions.DontRequireReceiver); } }
protected virtual void _OnMVRTouchMoved(VRTouch iTouch) { if (TouchEvents == VRTouch.ETouchParameter.ReceiveTouchEvents) { //MiddleVRTools.Log(2, "Touch end: " + iSrc.name + ".NbTouch: " + m_Touches.Count); SendMessage("OnMVRTouchMoved", iTouch, SendMessageOptions.DontRequireReceiver); } }
// ***** RECEIVE TOUCH protected void _OnMVRTouchBegin(VRTouch iTouch) { if (TouchEvents == VRTouch.ETouchParameter.ReceiveTouchEvents) { m_Touches.Add(iTouch); //MiddleVRTools.Log(2, "Touch begin: " + iSrc.name + ". NbTouch: " + m_Touches.Count ); SendMessage("OnMVRTouchBegin", iTouch, SendMessageOptions.DontRequireReceiver); } }
protected virtual VRTouch _FindVRTouch(GameObject iTouchedObject) { VRTouch touch = null; // Find existing VRTouch foreach (VRTouch touchInList in m_Touches) { if (touchInList.TouchedObject == iTouchedObject) { touch = touchInList; } } return(touch); }
protected virtual void OnTriggerExit(Collider collider) { if (TouchEvents == VRTouch.ETouchParameter.SendTouchEvents) { // We are the touch emitter GameObject touchedObject = collider.gameObject; VRTouch touch = _FindVRTouch(touchedObject); if (touch != null) { _SendVRTouchEnd(touch, false); } } }
protected void OnMVRTouchBegin(VRTouch iTouch) { Vector3 fwd = -transform.TransformDirection(Vector3.up); Ray ray = new Ray(iTouch.TouchObject.transform.position, fwd); var collider = GetComponent <Collider>(); RaycastHit hit; if (collider != null && collider.Raycast(ray, out hit, 1.0F)) { if (hit.collider.gameObject == gameObject) { Vector2 mouseCursor = hit.textureCoord; SetVirtualMousePosition(mouseCursor); } } }
protected virtual void OnTriggerStay(Collider collider) { if (TouchEvents == VRTouch.ETouchParameter.SendTouchEvents) { // We are the touch emitter GameObject touchedObject = collider.gameObject; VRActor actor = touchedObject.GetComponent <VRActor>(); if (actor != null) { VRTouch touch = _FindVRTouch(touchedObject); if (touch != null) { // Send message to touched object actor._OnMVRTouchMoved(touch); // Send message to ourself this.SendMessage("OnMVRTouchMoved", touch, SendMessageOptions.DontRequireReceiver); } } } }
protected virtual void _SendVRTouchEnd(VRTouch iTouch, bool iOnDestroy) { // Other actor VRActor actor = iTouch.TouchedObject.GetComponent <VRActor>(); if (actor != null) { // Send message to touched object actor._OnMVRTouchEnd(iTouch); // Send message to ourself this.SendMessage("OnMVRTouchEnd", iTouch, SendMessageOptions.DontRequireReceiver); // XXX Cb: in OnDestroy we are iterating over the m_Touches list // here we are removing an element, so in OnDestroy, foreach // complains that the list has been modified // There is probably a cleaner way to do this !! if (!iOnDestroy) { // Ourself m_Touches.Remove(iTouch); } } }
// ***** SEND TOUCH protected virtual void OnTriggerEnter(Collider collider) { if (TouchEvents == VRTouch.ETouchParameter.SendTouchEvents) { GameObject touchedObject = collider.gameObject; // Other actor VRActor otherActor = touchedObject.GetComponent <VRActor>(); if (otherActor != null) { VRTouch touch = new VRTouch(); touch.TouchedObject = touchedObject; touch.TouchObject = this.gameObject; // Send message to touched object otherActor._OnMVRTouchBegin(touch); // Send message to ourself so attached script can also react this.SendMessage("OnMVRTouchBegin", touch, SendMessageOptions.DontRequireReceiver); m_Touches.Add(touch); } } }
protected void OnMVRTouchMoved(VRTouch iTouch) { print(name + ": OnMVRTouchMoved, touch object=" + iTouch.TouchObject); }
protected void OnMVRTouchEnd(VRTouch iTouch) { SetVirtualMouseButtonPressed(); SetVirtualMouseButtonReleased(); }
protected void OnMVRTouchEnd(VRTouch iTouch) { print(name + ": OnMVRTouchBegin, touch object=" + iTouch.TouchObject); this.GetComponent <Renderer>().material.color = Color.white; }
// ***** RECEIVE TOUCH protected virtual void _OnMVRTouchBegin(VRTouch iTouch) { if (TouchEvents == VRTouch.ETouchParameter.ReceiveTouchEvents) { m_Touches.Add(iTouch); //MiddleVRTools.Log(2, "Touch begin: " + iSrc.name + ". NbTouch: " + m_Touches.Count ); SendMessage("OnMVRTouchBegin", iTouch, SendMessageOptions.DontRequireReceiver); } }
protected void OnMVRTouchEnd(VRTouch iTouch) { print(name + ": OnMVRTouchBegin, touch object=" + iTouch.TouchObject); this.GetComponent<Renderer>().material.color = Color.white; }
// ***** SEND TOUCH protected void OnTriggerEnter(Collider collider) { if (TouchEvents == VRTouch.ETouchParameter.SendTouchEvents) { GameObject touchedObject = collider.gameObject; // Other actor VRActor otherActor = touchedObject.GetComponent<VRActor>(); if (otherActor != null) { VRTouch touch = new VRTouch(); touch.TouchedObject = touchedObject; touch.TouchObject = this.gameObject; // Send message to touched object otherActor._OnMVRTouchBegin(touch); // Send message to ourself so attached script can also react this.SendMessage("OnMVRTouchBegin", touch, SendMessageOptions.DontRequireReceiver); m_Touches.Add(touch); } } }
protected void OnMVRTouchBegin(VRTouch iTouch) { Vector3 fwd = -transform.TransformDirection(Vector3.up); Ray ray = new Ray(iTouch.TouchObject.transform.position, fwd); var collider = GetComponent<Collider>(); RaycastHit hit; if (collider != null && collider.Raycast(ray, out hit, 1.0F)) { if (hit.collider.gameObject == gameObject) { Vector2 mouseCursor = hit.textureCoord; SetVirtualMousePosition(mouseCursor); } } }
protected void _SendVRTouchEnd(VRTouch iTouch, bool iOnDestroy) { // Other actor VRActor actor = iTouch.TouchedObject.GetComponent<VRActor>(); if (actor != null) { // Send message to touched object actor._OnMVRTouchEnd(iTouch); // Send message to ourself this.SendMessage("OnMVRTouchEnd", iTouch, SendMessageOptions.DontRequireReceiver); // XXX Cb: in OnDestroy we are iterating over the m_Touches list // here we are removing an element, so in OnDestroy, foreach // complains that the list has been modified // There is probably a cleaner way to do this !! if (!iOnDestroy) { // Ourself m_Touches.Remove(iTouch); } } }
public void OnMVRTouchBegin(VRTouch iTouch) { print(name + ": OnMVRTouchBegin by, touch object=" + iTouch.TouchObject); this.GetComponent <Renderer>().material.color = Color.red; }