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); }
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); }
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); } }
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;