public void OnColliderEventPressEnter(ColliderButtonEventData eventData) { //if (debugObject != null) //{ // if (bg.enabled == false) { Instantiate(debugObject, transform.position, transform.rotation); } //} }
public virtual void OnColliderEventPressDown(ColliderButtonEventData eventData) { if (eventData.button != m_grabButton || eventList.ContainsKey(eventData) || eventData == m_bannedEventData) { return; } var casterPose = GetEventPose(eventData); var offsetPose = Pose.FromToPose(casterPose, new Pose(transform)); if (alignPosition) { offsetPose.pos = Vector3.zero; } if (alignRotation) { offsetPose.rot = Quaternion.identity; } if (!m_multipleGrabbers && eventList.Count > 0) { Release(); } eventList.AddUniqueKey(eventData, offsetPose); if (afterGrabbed != null) { afterGrabbed.Invoke(this); } }
public virtual void OnColliderEventDragEnd(ColliderButtonEventData eventData) { if (m_eventGrabberSet == null) { return; } if (!IsValidGrabButton(eventData)) { return; } Grabber grabber; if (!m_eventGrabberSet.TryGetValue(eventData, out grabber)) { return; } RemoveGrabber(grabber); m_eventGrabberSet.Remove(eventData); Grabber.Release(grabber); if (singleItemGrab) { ViveColliderEventCaster caster = eventData.eventCaster as ViveColliderEventCaster; caster.canGrab = true; } }
public void OnColliderEventPressEnter(ColliderButtonEventData eventData) { if (eventData.IsViveButton(m_activeButton) && eventData.clickingHandlers.Contains(gameObject) && pressingEvents.Add(eventData) && pressingEvents.Count == 1) { buttonObject.position = buttonOriginPosition + buttonDownDisplacement; } }
public void OnColliderEventPressExit(ColliderButtonEventData eventData) { Debug.Log("press up"); presses.Remove(eventData); UpdateMaterialState(); }
public void OnColliderEventClick(ColliderButtonEventData eventData) { if (pressingEvents.Contains(eventData) && pressingEvents.Count == 1) { StartNextRoom(); } }
void RegisterOrgHandPos(int roleIndex, ColliderButtonEventData eventData) { m_orgHandWorldPosAry[roleIndex] = eventData.eventCaster.transform.position; m_orgHandLocalPosAry[roleIndex] = m_orgHandWorldPosAry[roleIndex] - transform.position; m_prevHandWorldPosAry[roleIndex] = m_orgHandWorldPosAry[roleIndex]; m_orgHand2DLocalDistAry[roleIndex] = Vector3.ProjectOnPlane(m_orgHandLocalPosAry[roleIndex], Vector3.up).magnitude; }
public void OnColliderEventPressEnter(ColliderButtonEventData eventData) { Debug.Log("press on"); if (DownOrUp == 0) { User.transform.position = new Vector3(User.gameObject.transform.position.x, User.gameObject.transform.position.y - 1, User.gameObject.transform.position.z); } if (!eventData.IsViveButton(heighlightButton)) { return; } presses.Add(eventData); // check if this evenData is dragging me(or ancestry of mine) for (int i = eventData.draggingHandlers.Count - 1; i >= 0; --i) { if (transform.IsChildOf(eventData.draggingHandlers[i].transform)) { drags.AddUnique(eventData); break; } } UpdateMaterialState(); }
public virtual void OnColliderEventDragUpdate(ColliderButtonEventData eventData) { Debug.Log(isGrabbed + " " + !moveByVelocity + " " + (currentGrabber.eventData == eventData)); if (isGrabbed && !moveByVelocity && currentGrabber.eventData == eventData) { RecordLatestPosesForDrop(Time.time, 0.05f); if (isTeleport) { isTeleport = false; OnGrabTransform(new RigidPose(pos, rot)); } else { OnGrabTransform(); } } else { if (isTeleport) { isTeleport = false; } } }
public void OnColliderEventPressExit(ColliderButtonEventData eventData) { if (presses.Remove(eventData) && presses.Count == 0) { SetMaterial(Heightlight); } }
public void OnColliderEventPressEnter(ColliderButtonEventData eventData) { if (eventData.IsViveButton(heighlightButton) && presses.Add(eventData) && presses.Count == 1) { SetMaterial(Pressed); } }
public virtual void OnColliderEventDragStart(ColliderButtonEventData eventData) { if (!IsValidGrabButton(eventData)) { return; } if (!m_allowMultipleGrabbers) { ClearGrabbers(false); ClearEventGrabberSet(); } var grabber = BasicGrabbable.Grabber.Get(eventData); var offset = RigidPose.FromToPose(grabber.grabberOrigin, new RigidPose(transform)); grabber.grabOffset = offset; if (m_eventGrabberSet == null) { m_eventGrabberSet = new IndexedTable <ColliderButtonEventData, BasicGrabbable.Grabber>(); } m_eventGrabberSet.Add(eventData, grabber); AddGrabber(grabber); Vector3 deltaVec = grabber.grabberOrigin.pos - transform.position; Vector3 deltaVecProjected = Vector3.ProjectOnPlane(deltaVec, transform.up).normalized; initialDeltaDegrees = Vector3.SignedAngle(transform.forward, deltaVecProjected, transform.up); }
public void OnColliderEventPressExit(ColliderButtonEventData eventData) { presses.Remove(eventData); drags.Remove(eventData); UpdateMaterialState(); }
public void OnColliderEventPressExit(ColliderButtonEventData eventData) { if (pressingEvents.Remove(eventData) && pressingEvents.Count == 0) { buttonObject.position = buttonOriginPosition; } }
public virtual void OnColliderEventDragStart(ColliderButtonEventData eventData) { if ((gameObject.tag.IndexOf("plant") == -1) || (gameObject.tag.IndexOf("plant") != -1 && Manager.Instance.IsFruitReady(Int32.Parse(gameObject.tag[gameObject.tag.Length - 1].ToString())))) { if (eventData.button != m_grabButton) { return; } var casterPose = GetEventPose(eventData); var offsetPose = RigidPose.FromToPose(casterPose, new RigidPose(transform)); if (alignPosition) { offsetPose.pos = Vector3.zero; } if (alignRotation) { offsetPose.rot = Quaternion.identity; } if (eventData != grabbedEvent && beforeRelease != null) { beforeRelease.Invoke(this); } eventList.AddUniqueKey(eventData, offsetPose); if (afterGrabbed != null) { afterGrabbed.Invoke(this); } } }
/// <summary> /// Wird aufgerufen wenn der Button losgelassen wird. /// Zusätzlich wird der Button wieder an die ursprüngliche Position gesetzt. /// </summary> /// <param name="eventData">Enthält Infos über das ausgelöste Event.</param> public void OnColliderEventPressExit(ColliderButtonEventData eventData) { if (pressingEvents.Remove(eventData) && pressingEvents.Count == 0) { buttonObject.localPosition -= buttonDownDisplacement; } }
public void OnColliderEventPressEnter(ColliderButtonEventData eventData) { if (eventData.button == m_activeButton && pressingEvents.Add(eventData) && pressingEvents.Count == 1) { buttonObject.position = buttonOriginPosition + buttonDownDisplacement; } }
public virtual void OnColliderEventDragUpdate(ColliderButtonEventData eventData) { if (eventData != grabbedEvent) { return; } if (!moveByVelocity) { // if rigidbody doesn't exist, just move to eventData caster's pose var casterPose = GetEventPose(eventData); var offsetPose = eventList.GetLastValue(); if (alignPosition) { offsetPose.pos = alignPositionOffset; } if (alignRotation) { offsetPose.rot = Quaternion.Euler(alignRotationOffset); } m_prevPose = new Pose(transform); if (rigid != null) { rigid.velocity = Vector3.zero; rigid.angularVelocity = Vector3.zero; } var targetPose = casterPose * offsetPose; transform.position = targetPose.pos; transform.rotation = targetPose.rot; } }
public virtual void OnColliderEventDragStart(ColliderButtonEventData eventData) { if (eventData.button != m_grabButton) { return; } var casterPose = GetEventPose(eventData); var offsetPose = Pose.FromToPose(casterPose, new Pose(transform)); if (alignPosition) { offsetPose.pos = Vector3.zero; } if (alignRotation) { offsetPose.rot = Quaternion.identity; } if (eventData != grabbedEvent && beforeRelease != null) { beforeRelease.Invoke(this); } eventList.AddUniqueKey(eventData, offsetPose); if (afterGrabbed != null) { afterGrabbed.Invoke(this); } }
public virtual void OnColliderEventDragFixedUpdate(ColliderButtonEventData eventData) { if (eventData != grabbedEvent) { return; } if (moveByVelocity) { // if rigidbody exists, follow eventData caster using physics var casterPose = GetEventPose(eventData); var offsetPose = eventList.GetLastValue(); if (alignPosition) { offsetPose.pos = alignPositionOffset; } if (alignRotation) { offsetPose.rot = Quaternion.Euler(alignRotationOffset); } var targetPose = casterPose * offsetPose; Pose.SetRigidbodyVelocity(rigid, rigid.position, targetPose.pos, followingDuration); Pose.SetRigidbodyAngularVelocity(rigid, rigid.rotation, targetPose.rot, followingDuration, overrideMaxAngularVelocity); } }
public virtual void OnColliderEventDragStart(ColliderButtonEventData eventData) { if (eventData.button != m_grabButton) { return; } if (!m_allowMultipleGrabbers) { ClearGrabbers(false); ClearEventGrabberSet(); } var grabber = Grabber.Get(eventData); var offset = RigidPose.FromToPose(grabber.grabberOrigin, new RigidPose(transform)); if (alignPosition) { offset.pos = alignPositionOffset; } if (alignRotation) { offset.rot = Quaternion.Euler(alignRotationOffset); } grabber.grabOffset = offset; if (m_eventGrabberSet == null) { m_eventGrabberSet = new IndexedTable <ColliderButtonEventData, Grabber>(); } m_eventGrabberSet.Add(eventData, grabber); AddGrabber(grabber); }
public void OnColliderEventClick(ColliderButtonEventData eventData) { if (pressingEvents.Contains(eventData) && pressingEvents.Count == 1) { SetMenuVisible(!menuVisible); } }
public virtual void OnColliderEventDragFixedUpdate(ColliderButtonEventData eventData) { if (isGrabbed && moveByVelocity && currentGrabber.eventData == eventData) { OnGrabRigidbody(); } }
public virtual void OnColliderEventDragEnd(ColliderButtonEventData eventData) { if ((gameObject.tag.IndexOf("plant") == -1) || (gameObject.tag.IndexOf("plant") != -1 && Manager.Instance.IsFruitReady(Int32.Parse(gameObject.tag[gameObject.tag.Length - 1].ToString())))) { var released = eventData == grabbedEvent; if (released && beforeRelease != null) { beforeRelease.Invoke(this); } eventList.Remove(eventData); if (isGrabbed) { if (released && afterGrabbed != null) { afterGrabbed.Invoke(this); } } else { dragged = true; DoDrop(); } } }
public virtual void OnColliderEventPressDown(ColliderButtonEventData eventData) { GrabData grabData; if (eventData.button != m_grabButton) { return; } if (eventList.TryGetValue(eventData, out grabData)) { switch (grabData.grabState) { case EventGrabState.JustReleased: eventList.Remove(eventData); if (m_toggleReleaseCheckedFrame == Time.frameCount) { // skip when this event just released at the same frame return; } break; case EventGrabState.JustGrabbed: case EventGrabState.Grabbing: default: return; } } if (!m_multipleGrabbers) { Release(); } var casterPose = GetEventPose(eventData); var offsetPose = RigidPose.FromToPose(casterPose, new RigidPose(transform)); if (alignPosition) { offsetPose.pos = Vector3.zero; } if (alignRotation) { offsetPose.rot = Quaternion.identity; } grabData = new GrabData() { offset = offsetPose, grabState = isToggleReleaseCheckedThisFrame ? EventGrabState.Grabbing : EventGrabState.JustGrabbed, }; eventList.AddUniqueKey(eventData, grabData); if (afterGrabbed != null) { afterGrabbed.Invoke(this); } }
/// <summary> /// Methode wird aufgerufen, wenn der Button gedrückt wird. /// </summary> /// <param name="eventData">Enthält Infos über das ausgelöste Event. Beispielsweise den gedrückten Knopf am Controller.</param> public void OnColliderEventPressUp(ColliderButtonEventData eventData) { //Nur der Trigger löst die gewünschte Aktion aus. if (eventData.button.ToString().Equals("Trigger")) { GameObject.Find("GameController").GetComponent <Bowling>().resetLane(LANE_TWO); } }
public virtual void OnColliderEventDragUpdate(ColliderButtonEventData eventData) { if (isGrabbed && !moveByVelocity && currentGrabber.eventData == eventData) { RecordLatestPosesForDrop(Time.time, 0.05f); OnGrabTransform(); } }
/// <summary> /// Methode wird aufgerufen, wenn der Button gedrückt wird. /// </summary> /// <param name="eventData">Enthält Infos über das ausgelöste Event. Beispielsweise den gedrückten Knopf am Controller.</param> public void OnColliderEventPressUp(ColliderButtonEventData eventData) { //Nur der Trigger löst die gewünschte Aktion aus. if (eventData.button.ToString().Equals("Trigger")) { GameObject.Find("ResetTargetButton").GetComponent <resetThrow>().resetBalls(); } }
public void OnColliderEventPressExit(ColliderButtonEventData eventData) { Debug.Log("press exit"); GetComponent <Renderer>().material = colors[3]; GameObject clone = Instantiate(sword, spawnspot.transform.position, spawnspot.transform.rotation); // foreach (GameObject go in spawnedObjects) { Destroy(go); } // spawnedObjects.Clear(); }
public virtual void OnColliderEventDragUpdate(ColliderButtonEventData eventData) { if (isGrabbed && currentGrabber.eventData == eventData) { RecordLatestPosesForDrop(Time.time, 0.05f); RotateTowardsLikeWheel(transform, currentGrabber.grabberOrigin.pos); } }