コード例 #1
0
    private IEnumerator AskForMissingItem()
    {
        var items       = LostItem.Instances;
        var wantedItems = CustomerManager.Instance.wantedItems;

        while (items.Count - wantedItems.Count == 0)
        {
            yield return(null);
        }

        int      max  = items.Count;
        LostItem item = null;

        do
        {
            // Pick random available spot.
            var random      = GameManager.Instance.Random;
            int randomIndex = random.Next(0, max);
            item = items[randomIndex];
        } while (wantedItems.Contains(item));

        wantedItems.Add(item);
        _wantedItem = item;

        // ReSharper disable once LocalVariableHidesMember
        var renderer = item.GetComponent <SpriteRenderer>();

        _wantedItemRenderer.sprite = renderer.sprite;
        _wantedItemRenderer.color  = Color.black;
        _wantedItemRenderer.gameObject.SetActive(true);
    }
コード例 #2
0
ファイル: Table.cs プロジェクト: DragosPopse/LostAndFound
    public void ConstraintMovement(LostItem item, bool condition)
    {
        if (condition)
        {
            var itemBounds      = item.GetComponent <BoxCollider2D>().bounds;
            var itemNewPosition = item.NewPosition;

            //Check if point is not within bounds
            if (itemNewPosition.x + itemBounds.extents.x > Bounds.max.x)
            {
                itemNewPosition.x = Bounds.max.x - itemBounds.extents.x;
            }
            else if (itemNewPosition.x - itemBounds.extents.x < Bounds.min.x)
            {
                itemNewPosition.x = Bounds.min.x + itemBounds.extents.x;
            }

            if (itemNewPosition.y + itemBounds.extents.y > Bounds.max.y && !item.IsSelected)
            {
                itemNewPosition.y = Bounds.max.y - itemBounds.extents.y;
            }
            else if (itemNewPosition.y - itemBounds.extents.y < Bounds.min.y)
            {
                itemNewPosition.y = Bounds.min.y + itemBounds.extents.y;
            }

            item.NewPosition = itemNewPosition;
        }
    }
コード例 #3
0
    public void PoolItem(LostItem item)
    {
        var sprite = item.GetComponent <SpriteRenderer>().sprite;

        for (int i = 0; i < _usedItems.Count; i++)
        {
            if (_usedItems[i].GetComponent <SpriteRenderer>().sprite == sprite)
            {
                _itemPool.Add(_usedItems[i]);
                _usedItems.Remove(_usedItems[i]);
                break;
            }
        }
    }