private HauntableItem GetNearestItem() { if (haunter == null) { return(null); } Debug.DrawRay(haunter.root.position, Vector3.right * interactionDistance, Color.magenta); var nearestDistance = float.MaxValue; HauntableItem nearest = null; foreach (var item in items) { if (item.isExausted) { continue; } var distance = (haunter.root.position - item.root.position).magnitude; if (distance > interactionDistance) { continue; } if (distance < nearestDistance) { nearest = item; nearestDistance = distance; } } return(nearest); }
public void Update() { if (actionLockController.IsLocked()) { return; } if (indc == null) { return; } nearestItem = GetNearestItem(); if (nearestItem == null) { indc.gameObject.SetActive(false); return; } indc.gameObject.SetActive(true); if (indcType != nearestItem.hauntType) { indcType = nearestItem.hauntType; indc.image.sprite = iconMap[indcType].image; } indc.transform.position = nearestItem.root.position + Vector3.up * indcHeight; }
public HauntableItem GetHauntable() { var item = new HauntableItem() { root = transform, hauntType = hauntType, fear = fear }; item.onHaunt += OnHaunt; return(item); }
public HauntableItem GetHauntable() { var item = new HauntableItem() { root = gameObject.transform, hauntType = hauntType, fear = fear, }; item.onHaunt += HandleHaunt; return(item); }
public void AddHauntable(HauntableItem item) { items.Add(item); }
private void HandleLock() { indc?.gameObject.SetActive(false); nearestItem = null; }