void start_(HoloToolkit.Unity.InputModule.BaseInputEventData eventData) { if (currentInputSource != null) { Debug.Log("barance err?"); } currentInputSource = eventData.InputSource; currentInputSourceId = eventData.SourceId; var rigidBody = this.GetComponent <Rigidbody>(); if (rigidBody) { rigidBody.useGravity = false; } lastPosition_ = this.transform.position; diffPosition_ = new Vector3(); InputManager.Instance.PushModalInputHandler(gameObject); Debug.Log(string.Format("start_ {0} : {1}", eventData.selectedObject.name, eventData.SourceId)); PickTool.SetActive(true); }
private void AttachInputSourcePointer(BaseInputEventData eventData) { AttachInputSourcePointer(eventData.InputSource, eventData.SourceId); }
private bool SupportsPointingRay(BaseInputEventData eventData) { return(SupportsPointingRay(eventData.InputSource, eventData.SourceId)); }
private void HandleEvent <T>(BaseInputEventData eventData, ExecuteEvents.EventFunction <T> eventHandler) where T : IEventSystemHandler { if (disabledRefCount > 0) { return; } // Send the event to global listeners for (int i = 0; i < globalListeners.Count; i++) { // Global listeners should only get events on themselves, as opposed to their hierarchy ExecuteEvents.Execute(globalListeners[i], eventData, eventHandler); } // Handle a multiple of modal inputs if (MultiModalInputDictionary.Count > 0 && MultiModalInputDictionary.ContainsKey(eventData.SourceId)) { GameObject modalInput = MultiModalInputDictionary[eventData.SourceId]; if (eventData.InputSource != null && modalInput != null) { if (ExecuteEvents.ExecuteHierarchy(modalInput, eventData, eventHandler)) { return; } } } /* * // Handle only one modal input if one exists * if (modalInputStack.Count > 0) * { * GameObject modalInput = modalInputStack.Peek(); * * if (eventData.InputSource != null && modalInput != null) * { * if (ExecuteEvents.ExecuteHierarchy(modalInput, eventData, eventHandler)) * { * return; * } * } * * // If there is a focused object in the hierarchy of the modal handler, start the event * // bubble there * GameObject focusedObject = GazeManager.Instance.HitObject; * if (focusedObject != null && focusedObject.transform.IsChildOf(modalInput.transform)) * { * * if (ExecuteEvents.ExecuteHierarchy(focusedObject, eventData, eventHandler)) * { * return; * } * } * // Otherwise, just invoke the event on the modal handler itself * else * { * if (ExecuteEvents.ExecuteHierarchy(modalInput, eventData, eventHandler)) * { * return; * } * } * } */ // If event was not handled by modal, pass it on to the current focused object if (GazeManager.Instance.HitObject != null) { bool eventHandled = ExecuteEvents.ExecuteHierarchy(GazeManager.Instance.HitObject, eventData, eventHandler); if (eventHandled) { return; } } // If event was not handled by the focused object, pass it on to any fallback handlers if (fallbackInputStack.Count > 0) { GameObject fallbackInput = fallbackInputStack.Peek(); ExecuteEvents.ExecuteHierarchy(fallbackInput, eventData, eventHandler); } }