public void UseItemFromSlot(int index) { if (interactable == null) { return; } if (index + 1 > inventorySlots.Count) { return; } if (inventorySlots[index].item == null || interactable.GetComponent <ZodiacStatue>().itemRequired == null) { return; } if (inventorySlots[index].item.itemName == interactable.GetComponent <ZodiacStatue>().itemRequired.itemName) { Debug.Log(inventorySlots[index].item.itemName + " " + interactable.GetComponent <ZodiacStatue>().itemRequired.itemName); interactable.Activate(this.gameObject); } else if (inventorySlots[index].item.itemName != interactable.GetComponent <ZodiacStatue>().itemRequired.itemName) { Debug.Log(inventorySlots[index].item.itemName + " " + interactable.GetComponent <ZodiacStatue>().itemRequired.itemName); //interactable.Deactivate(this.gameObject); } }
void ActivateObject() { if (grabbedObject != null && grabbedObject.parameters.activationType == ActivationType.Handheld) { //grabbedObject.Activate(); switch (grabbedObject.parameters.objectName) { case "Bat": anim.SetTrigger("SwingTrigger"); break; default: grabbedObject.Activate(); break; } } else { //Collider[] objectsActivate = Physics.OverlapSphere(self.position + self.forward * checkCircleDistance, checkCircleRadius); //if (objectsActivate.Length > 0) //{ // List<Interactable> activableObjects = FilteredObjects(objectsActivate, Filter.Activate); // if (activableObjects.Count > 0) // { // GetNearestInFront(activableObjects).Activate(); // } //} if (canInteract != null && canInteract.GetComponent <Interactable>().parameters.activationType == ActivationType.Proximity) { canInteract.Activate(); } } }
void Interact() { // Handle attempts to interact, ie actively pressing key to interact with, any game objects. // This does not handle "automatic" interactions that require no player input ie proximity based prompts/states GameObject interactableGameObj = null; if (Input.anyKey) { RaycastHit hit; // Physics raycast if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hit, MaxInteractDistance)) { if (hit.transform.gameObject.CompareTag("Interactable") || hit.transform.gameObject.CompareTag("Tower")) { // Objects can't have more than one tag... :-/ // Internal workaround? interactableGameObj = hit.transform.gameObject; } } // UI/canvas raycast GameObject hitGameObj; if (shopMenuRaycastUtil.IsPlayerFacingUIElem(out hitGameObj)) { interactableGameObj = hitGameObj; } } if (interactableGameObj != null) { Interactable interactable = GetInteractable(interactableGameObj); interactable.Activate(); } }
// Update is called once per frame void Update() { DrawLightSaber(); CheckIfRayCastHit(); if (OVRInput.Get(OVRInput.Button.PrimaryIndexTrigger)) { pressed = true; } else { pressed = false; cando = true; } if (pressed && cando) { // Interactables if (currentSelection) { currentSelection.Activate(); ChangeLineCol(Color.red); cando = false; } //UI buttons if (currentBtn) { currentBtn.onClick.Invoke(); ChangeLineCol(Color.red); cando = false; } } }
public int Interact(Vector2Int offset) { if (interactable && offset.magnitude > 0) { return(interactable.Activate(this, offset)); } return(0); }
// Activate specified controller private void ActivateController(Interactable controller) { // Set to active controller.Activate(); // Add to active list activeControllers.Add(controller); // Update active status if need be CheckActiveStatus(); }
IEnumerator WaitForInteractionElementCoroutine(Interactable interactable, GameObject outlineObject, Canvas menuObject) { outlineObject.SetActive(true); interactable.Activate(); menuObject.enabled = true; yield return(new WaitUntil(() => interactable.Grabbed)); outlineObject.SetActive(false); yield return(new WaitUntil(() => interactable.Triggered)); interactable.Deactivate(); _waitForInteraction = false; yield return(null); }
private void Update() { if (!parent.initialized) { return; } if (Input.GetKeyDown(KeyCode.Space)) { parent.Activate(); Destroy(this); } }
void Use() { RaycastHit hit; if (Physics.Raycast(transform.position, transform.forward, out hit, InteractRange)) { try { Interactable I = hit.collider.transform.gameObject.GetComponent <Interactable>(); if (I != null) { I.Activate(); } } catch (NullReferenceException) {} } }
void Use() { int layerMask = LayerMask.GetMask("Interact"); RaycastHit hit; if (Physics.Raycast(transform.position, transform.forward, out hit, layerMask)) { try { Interactable I = hit.collider.transform.gameObject.GetComponent <Interactable>(); if (I != null) { I.Activate(); } } catch {} } }
//Called when there is an update to one of the listed interactables public void Activation_UseItem() { //Check each interactable in our list to see if they are all 'correct' foreach (IItemUsable interactableNeeded in interactablesNeeded) { if (!interactableNeeded.IsCorrect()) { hasActivated = false; break; } else { hasActivated = true; } } //Send an update to the interactable that we want to enable/disable interactableToActivate.Activate(hasActivated); }
private void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { Application.Quit(); } if (isWalking) { Debug.Log(Vector3.Distance(new Vector3(transform.position.x, 0, transform.position.z), new Vector3(agent.destination.x, 0, agent.destination.z))); if (Vector3.Distance(new Vector3(transform.position.x, 0, transform.position.z), new Vector3(agent.destination.x, 0, agent.destination.z)) <= closeEnoughDist) { agent.SetDestination(transform.position); isWalking = false; anim.SetBool("IsWalking", false); ThingToActivateUponArival.Activate(); anim.SetTrigger("Interact"); } } }
void Interact() { //Checking for any nearby interactables Collider2D col2 = Physics2D.OverlapCircle(transform.position, interactRadius, interactableLayer); if (col2 != null) //If one is found { Interactable interactable = col2.gameObject.GetComponent <Interactable>(); if (!camFol.IsFollowing()) //Stop the camera and focus it on the interactable { SetFocus(interactable); camFol.ChangeFollow(); } if (interactable.IsFocus()) { interactText.gameObject.SetActive(true); //Turn on press E text if (control.useItem) //If E is pressed { interactable.Activate(); //Activate the interactable } } else { interactText.gameObject.SetActive(false); } } else //If there is no interactable nearby anymore { if (camFol.IsFollowing()) //Resume camera movement { camFol.ChangeFollow(); RemoveFocus(); } } }
void Use(char Filter) { LayerMask Ignore = ~LayerMask.GetMask("Waypoint"); RaycastHit hit; if (Physics.Raycast(transform.position, transform.forward, out hit, InteractRange, Ignore)) { try { Interactable I = hit.collider.transform.root.gameObject.GetComponent <Interactable>(); if (I == null) { I = hit.collider.transform.gameObject.GetComponent <Interactable>(); } if (I == null) { I = hit.collider.transform.parent.gameObject.GetComponent <Interactable>(); } if (I != null) { if (Filter == 'M') { lastM = I; } else { lastF = I; } I.Activate(Filter); } } catch {} } }
public void Activate() { RaycastHit hitInfo; if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hitInfo, interactionRange, Interactable)) { Interactable heldItem = cam.transform.GetComponentInChildren <Interactable>(); Interactable Obj = hitInfo.transform.GetComponent <Interactable>(); Debug.Log(hitInfo.transform.name); if (heldItem == null) { if (Obj != null) { Obj.Activate(); } } else { heldItem.Deactivate(); } } }
public void interact() { currentInteractableSelected.Activate(); }
public void Simulate(List <Vector2> positions) { Peripheral.Instance.ChangeTime(TimeScale.Normal); my_interactable.Activate(Skill); my_interactable.Simulate(positions); }
void DropF() { lastF.Activate('F'); fPermission = false; lastF = null; }
// Update is called once per frame void Update() { Vector3 origin = this.transform.position; Vector3 direction = this.transform.forward * rayLength; if (Input.GetKeyDown(KeyCode.T)) { if (mobileActive) { mobileActive = !mobileActive; mobile.SetActive(false); } else { mobileActive = !mobileActive; mobile.SetActive(true); } } // Draw the Raycast and puts colliding object in vision variable Debug.DrawRay(origin, direction); if (Physics.Raycast(origin, direction, out vision, rayLength)) { // If object has Interactable tag continue if (vision.collider.tag.Equals("Interactable") && FindObjectOfType <PlayerController>().PlayerControlsEnabled()) { // Check if object is Interactable bool succes = vision.collider.gameObject.TryGetComponent <Interactable>(out Interactable newSelection); image.color = crosshairSelectColor; // If object has Interactable component, continue, // else Log in error if (succes) { // If object is newly selected, perform select function if (!currentSelection) { currentSelection = newSelection; currentSelection.Select(); } else if (!newSelection.Equals(currentSelection)) { currentSelection.Deselect(); currentSelection = newSelection; currentSelection.Select(); } } else { Debug.LogError(vision.collider.name + " has an Interactable tag, but does not contain an Interactable component"); currentSelection = null; image.color = crosshairDefaultColor; } } else { // If no interactable object is collided with, but there is an object selected, // deselect the object. if (currentSelection) { currentSelection.Deselect(); currentSelection = null; image.color = crosshairDefaultColor; } } } // if no object is collided with, deselect the current selection if it exists else if (currentSelection) { currentSelection.Deselect(); currentSelection = null; image.color = crosshairDefaultColor; } // If 'E' key is pressed, activate current selection if (currentSelection && Input.GetKeyDown(KeyCode.E)) { currentSelection.Activate(); } }
// Update is called once per frame void Update() { if (Input.GetButtonDown("Fire1") && CursorManager.Instance.cursorState != CursorManager.CursorStates.deactivated) { // Fire ray GameObject camGO = GameObject.Find(CurrentCamera.Value); Camera cam = camGO.GetComponentInChildren <Camera>(); if (cam == null || camGO == null) { Debug.LogError("PointAndClick::Update() -- Camera not found on " + CurrentCamera); return; } Ray ray = cam.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, InteractableMask)) { PlayerHealth.Value -= 5; Debug.LogWarning(hit.transform.name); if (hit.transform.root.gameObject.layer == LayerMask.NameToLayer("Interactable")) { Interactable i = hit.transform.GetComponent <Interactable>(); if (i.MustMoveToBeforeInteraction) { Debug.Log("Move to"); if (i.MoveToLoc != null) { GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerMovement>().MoveToInteract(i.MoveToLoc.position, i); } else { Debug.LogWarning("Move to loc not found for interactable. Defaulting to basic activate."); i.Activate(); } } else { Debug.Log("Interact"); i.Activate(); } } } } // Passive Raycast if (CursorManager.Instance.cursorState != CursorManager.CursorStates.deactivated) { // Fire passive ray GameObject camGO = GameObject.Find(CurrentCamera.Value); Camera cam = camGO.GetComponentInChildren <Camera>(); if (cam == null || camGO == null) { Debug.LogError("PointAndClick::Update() -- Camera not found on " + CurrentCamera); return; } Ray ray = cam.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, InteractableMask)) { if (hit.transform.root.gameObject.layer == LayerMask.NameToLayer("Interactable")) { CursorManager.Instance.SetCurstor(CursorManager.CursorStates.interactable); DisplayInteractionText.Instance.SetText(hit.transform.gameObject.GetComponent <Interactable>().Name); } else { CursorManager.Instance.SetCurstor(CursorManager.CursorStates.normal); DisplayInteractionText.Instance.SetText(""); } } } }
void DropM() { lastM.Activate('M'); mPermission = false; lastM = null; }