コード例 #1
0
ファイル: TurnOrderUI.cs プロジェクト: Clarksj4/TurnThang
    private void HandleOnTurnEnd(ITurnBased entity)
    {
        // If the last sequence is still in progress - force
        // it to be complete so we can start the next one.
        if (slideSequence != null &&
            slideSequence.active)
        {
            slideSequence.Complete(true);
        }

        // Get the frame of the actor whose turn it just was.
        TurnOrderUIFrame lastActorFrame = GetLastFrame();

        // Duplicate the frame at the start of the order.
        AddFrame(lastActorFrame.Actor, true);

        // Slide the order along to hide the actor who just went
        slideSequence = DOTween.Sequence();

        if (horizontal)
        {
            slideSequence.Append(slideyBitRectTransform.DOAnchorPosX(FrameSize, slideDuration));
        }
        else
        {
            slideSequence.Append(slideyBitRectTransform.DOAnchorPosY(FrameSize, slideDuration));
        }

        slideSequence.AppendCallback(() => {
            // Get rid of the original previous actor's frame
            // and reset the position of the slider.
            DestroyImmediate(lastActorFrame.gameObject);
            slideyBitRectTransform.anchoredPosition = Vector2.zero;
        });
    }
コード例 #2
0
ファイル: TurnOrderUI.cs プロジェクト: Clarksj4/TurnThang
    private TurnOrderUIFrame GetLastFrame()
    {
        int              childIndex     = slideyBit.transform.childCount - 1;
        Transform        lastChild      = slideyBit.transform.GetChild(childIndex);
        TurnOrderUIFrame lastActorFrame = lastChild.GetComponent <TurnOrderUIFrame>();

        return(lastActorFrame);
    }
コード例 #3
0
ファイル: TurnOrderUI.cs プロジェクト: Clarksj4/TurnThang
    private void AddFrame(Pawn actor, bool first = false)
    {
        // Create as first child
        TurnOrderUIFrame frame = Instantiate(FramePrefab, slideyBit.transform, false);

        frame.RectTransform.sizeDelta = Vector2.one * FrameSize;
        if (first)
        {
            frame.transform.SetAsFirstSibling();
        }

        // Set actor
        frame.SetActor(actor);
    }