Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 5
0
 public void AddHauntable(HauntableItem item)
 {
     items.Add(item);
 }
Exemplo n.º 6
0
 private void HandleLock()
 {
     indc?.gameObject.SetActive(false);
     nearestItem = null;
 }