private void CheckInteract() { if (Input.GetKeyDown(KeyCode.E)) { bool interacted = false; if (!torchAction.currentlyHeld) { interacted = torchAction.Pickup(); if (interacted && sfx) { sfx.clip = pickupSound; sfx.Play(); } } if (!interacted) { //Test for interactable Collider[] hitColliders = Physics.OverlapBox(InteractZone.transform.position + InteractZone.center, InteractZone.size / 2, Quaternion.identity, CanInteractWith); //if found activate it foreach (Collider c in hitColliders) { interacted = true; Interactible inter = c.GetComponent <Interactible>(); inter.ActivateInteraction(); if (sfx) { sfx.clip = interactSound; sfx.Play(); } } } //Still nothing? attempt drop if (!interacted) { torchAction.Drop(); } else //Also notify Animator { _Anim.SetTrigger("Pickup"); } } }
public void ResetPositions() { Vector3 v; Quaternion q; TA.Drop(); foreach (GameObject obj in ResetList) { if (OriginalPositions.TryGetValue(obj, out v) && OriginalRotations.TryGetValue(obj, out q)) { obj.transform.SetPositionAndRotation(v, q); obj.SendMessage("ResetObject", SendMessageOptions.DontRequireReceiver); } } CurrentTorch.transform.SetPositionAndRotation(SavedPos, SavedRot); }