void TestDistanceToPlayer() { float minDist = float.PositiveInfinity; Ray ray = new Ray(playerHead.position, playerHead.forward * radius * 2.0f); for (int i = 0; i < genericInteractables.Count; i++) { genericInteractables[i].highLightSystem.hightLight = false; if (genericInteractables[i].interactable == true) { Vector3 d2p = genericInteractables[i].transform.position - playerHead.position; float d = Vector3.Cross(ray.direction, d2p).sqrMagnitude *d2p.sqrMagnitude; if (d < minDist) { minDist = d; grabableItem = genericInteractables[i]; } } } if (grabableItem) { grabableItem.highLightSystem.hightLight = true; } }
void OnTriggerEnter(Collider c) { if (!colliders.Contains(c)) { colliders.Add(c); GenericInteractable gi = c.GetComponentInParent <GenericInteractable>(); if (gi && !genericInteractables.Contains(gi) && gi.interactable == true) { genericInteractables.Add(gi); } } }
public void RemoveFromLists(GenericInteractable gi) { if (colliders.Contains(gi.grabCollider)) { colliders.Remove(gi.grabCollider); } if (genericInteractables.Contains(gi)) { genericInteractables.Remove(gi); } if (grabableItem == gi) { grabableItem = null; } }
void OnTriggerExit(Collider c) { if (colliders.Contains(c)) { colliders.Remove(c); GenericInteractable gi = c.GetComponentInParent <GenericInteractable>(); if (gi && genericInteractables.Contains(gi)) { gi.highLightSystem.hightLight = false; genericInteractables.Remove(gi); if (grabableItem == gi) { grabableItem = null; } } } }
public void AddToList(GenericInteractable gi) { colliders.Add(gi.grabCollider); genericInteractables.Add(gi); }
void Awake() { buyGenericInteractable = buyButton.GetComponent <GenericInteractable>(); priceUpGenericInteractable = priceUpButton.GetComponent <GenericInteractable>(); priceDownGenericInteractable = priceDownButton.GetComponent <GenericInteractable>(); }