public LookAtAction(InteractableRaw interactable, InteractorRaw interactor, Transform primearyOffset, bool preventZ, UpdateEvents updates) : base(interactor, updates)
        {
            target = interactable;
            lookAt = interactor.transform;
            pivot  = primearyOffset;
            PreventLookAtZRotation = preventZ;

            SaveOrientation(false);
        }
Пример #2
0
        public static void CleanInteracableTouching(InteractorRaw grabber, ref List <GameObject> touched)
        {
            Transform parent = grabber.transform;

            for (int i = 0; i < touched.Count; i++)
            {
                if (touched[i].transform.IsChildOf(parent))
                {
                    touched.RemoveAt(i);
                    i--;
                }
            }
        }
        public override void UpdateAction()
        {
            InteractorRaw primeHand = interactable.grab.currentGrabber;

            if (!primeHand)
            {
                Disable();
                Debug.LogError("uh oh Tried To Switch Hands With an unheld object: count + " + interactable.grab.grabbedObjects.Count);
                return;
            }

            interactable.UnGrab(primeHand);
        }
Пример #4
0
 public void UnGrabbed(InteractorRaw interactor)
 {
     visual.enabled = false;
     if (interactor.inputManager.handedness == InputManagerNew.hands.Left)
     {
         selectMapLeft.Activated.RemoveListener(Select);
         selectMapLeft.Deactivated.RemoveListener(UnSelected);
     }
     else
     {
         selectMapRight.Activated.RemoveListener(Select);
         selectMapRight.Deactivated.RemoveListener(UnSelected);
     }
 }
Пример #5
0
        public static IEnumerator GrabPrecogCoroutine(float waitTime, InteractorRaw interactor, System.Action grabEvent)
        {
            float endTime = Time.time + waitTime;

            while (interactor.touch.touchedObjects.Count <= 0 && Time.time <= endTime)
            {
                yield return(new WaitForEndOfFrame());
            }

            if (interactor.touch.touchedObjects.Count > 0)
            {
                grabEvent.Invoke();
            }
        }
        private void OnEnable()
        {
            manager = (InputManagerNew)target;
            manager.RefreshInputMappings();

            SerializedProperty interactor = serializedObject.FindProperty("interactor");
            SerializedProperty grabMap    = serializedObject.FindProperty("grabMap");

            if (interactor.objectReferenceValue == null)
            {
                InteractorRaw _interactor = null;

                _interactor = manager.GetComponent <InteractorRaw>();

                if (_interactor == null)
                {
                    _interactor = manager.GetComponentInParent <InteractorRaw>();
                }


                interactor.objectReferenceValue = _interactor;
            }

            if (grabMap.objectReferenceValue == null)
            {
                foreach (var map in manager.inputMappings)
                {
                    Debug.Log(map.mapName.ToLower().Contains("grab"));
                    if (map.mapName.ToLower().Contains("grab"))
                    {
                        grabMap.objectReferenceValue = map;
                    }
                }
            }

            serializedObject.ApplyModifiedProperties();
        }
 public SwitchAction(InteractableRaw target, InteractorRaw interactor) : base(interactor, UpdateEvents.Once)
 {
     interactable = target;
     hand         = interactor;
 }
 public SecondaryAction(InteractorRaw interactor, UpdateEvents updates) : base(updates)
     => grabHand = interactor;