コード例 #1
0
    public void Interact(IInteractor interactor)
    {
        switch (CurrentState)
        {
        case State.Empty:
            if (interactor.CurrentItem is null)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(ItemRequestID) || ItemRequestID.ToLower() == interactor.CurrentItem.ID.ToLower())
            {
                Product = interactor.CurrentItem.GameObject;

                interactor.DropItem();

                Product.transform.SetParent(this.transform);
                Product.transform.position = ResultPoint.transform.position;
                Product.transform.rotation = ResultPoint.transform.rotation;

                CurrentState = State.Filled;
            }

            break;

        case State.Filled:
            if (RemainingHitCount > 0)
            {
                UIfiller.transform.parent.gameObject.SetActive(true);
                RemainingHitCount -= 1;
                Debug.Log(RemainingHitCount / DefaultHealthValue);
                UIfiller.fillAmount = 1 - (RemainingHitCount / DefaultHealthValue);
            }
            else
            {
                UIfiller.transform.parent.gameObject.SetActive(false);
                CurrentState = State.Ready;
                Destroy(Product);

                if (ResultProduct is null || ResultProduct.tag != "interactable")
                {
                    return;
                }

                resultInteractable = Instantiate(ResultProduct, ResultPoint.transform.position, ResultPoint.transform.rotation).GetComponent <IInteractable>();

                CurrentState = State.Ready;
            }
            break;

        case State.Ready:
            resultInteractable.Interact(interactor);
            CurrentState = State.Completed;
            break;

        case State.Completed:
            break;
        }
    }
コード例 #2
0
    public void Interact(IInteractor interactor)
    {
        if (interactor.CurrentItem is null || Completed)
        {
            return;
        }

        if (string.IsNullOrWhiteSpace(ItemRequestID) || interactor.CurrentItem.ID.ToLower() == ItemRequestID.ToLower())
        {
            var itemTransform = interactor.CurrentItem.GameObject.transform;

            interactor.DropItem();

            itemTransform.SetParent(this.transform);
            itemTransform.position = DropPoint.transform.position;
            itemTransform.rotation = DropPoint.transform.rotation;

            Completed = true;
        }
    }