private void FixedUpdate() { hudObjects.resourceBars.UpdateVisuals(); if (Physics.Raycast(chaseCamera.transform.position, chaseCamera.transform.forward, out RaycastHit hitInfo, InteractionRange + chaseCamera.CurrentDistance, interactionMask) == false) { interactCache.interactObject = null; hudObjects.interactionPanel.Hide(); return; } Collider hitCollider = hitInfo.collider; DroppedItem droppedItem; if (droppedItem = hitCollider.GetComponent <DroppedItem>()) { InteractCache newCache = new InteractCache(InteractType.droppedItem, droppedItem); if (HasCacheChanged(newCache) == false) { return; } else { interactCache = newCache; } hudObjects.interactionPanel.SetText("Pick Up " + droppedItem.GetItem.name); } //add other sorts of interactions here ... }
private bool HasCacheChanged(InteractCache newCache) => newCache.type != interactCache.type || newCache.interactObject != interactCache.interactObject;