Example #1
0
    // Update is called once per frame
    void Update()
    {
        OVRInput.Update();

        if (holding == null && OVRInput.Get(OVRInput.Button.PrimaryIndexTrigger, controller))
        {
            if (touchingStack != null)
            {
                holding = Instantiate(stickyNote, stickyPos);
                StickyNote newStickyNote = holding.GetComponent <StickyNote>();
                newStickyNote.color = touchingStack.color.ToString();
            }
            else if (touchingStickyNote != null)
            {
                holding = touchingStickyNote.gameObject;
                holding.transform.SetParent(stickyPos, true);
                holding.transform.position = stickyPos.position;
                StickyNote stickyNote = holding.GetComponent <StickyNote>();
                stickyNote.PickUp();
            }
        }

        if (holding != null && OVRInput.Get(OVRInput.Button.PrimaryIndexTrigger, controller) == false)
        {
            StickyNote sticky  = holding.GetComponent <StickyNote>();
            Vector3    closest = windowCollider.ClosestPoint(holding.transform.position);
            float      dist    = Vector3.Distance(closest, holding.transform.position);

            QuestDebug.Instance.Log($"Dist: {dist}");

            if (dist < 0.5f)
            {
                sticky.Stick(window, closest);
            }
            else
            {
                sticky.Drop();
            }

            holding = null;
        }
    }