public void OnColliderEventPressEnter(ColliderButtonEventData eventData)
 {
     //if (debugObject != null)
     //{
     //    if (bg.enabled == false) { Instantiate(debugObject, transform.position, transform.rotation); }
     //}
 }
Exemple #2
0
    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);
        }
    }
Exemple #3
0
        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;
                }
            }
        }
Exemple #10
0
 public void OnColliderEventPressExit(ColliderButtonEventData eventData)
 {
     if (presses.Remove(eventData) && presses.Count == 0)
     {
         SetMaterial(Heightlight);
     }
 }
Exemple #11
0
 public void OnColliderEventPressEnter(ColliderButtonEventData eventData)
 {
     if (eventData.IsViveButton(heighlightButton) && presses.Add(eventData) && presses.Count == 1)
     {
         SetMaterial(Pressed);
     }
 }
Exemple #12
0
    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);
    }
Exemple #13
0
    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;
     }
 }
Exemple #15
0
        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);
        }
Exemple #22
0
 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();
     }
 }
Exemple #24
0
        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();
     }
 }
Exemple #29
0
 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();
 }
Exemple #30
0
 public virtual void OnColliderEventDragUpdate(ColliderButtonEventData eventData)
 {
     if (isGrabbed && currentGrabber.eventData == eventData)
     {
         RecordLatestPosesForDrop(Time.time, 0.05f);
         RotateTowardsLikeWheel(transform, currentGrabber.grabberOrigin.pos);
     }
 }