예제 #1
0
        public static void Instante(Image image, Sprite sprite, EnumPosition position, NTemplate node, Vector2 point, bool reverse = false)
        {
            if (!reverse)
            {
                image.sprite = sprite;
            }

            image.CrossFadeAlpha(reverse? 0 : 1, 0, false);

            if (!reverse)
            {
                Vector2 pos;

                if (position == EnumPosition.Custom)
                {
                    pos = point;
                }
                else
                {
                    pos = new Vector2(EngineGraphUtilities.GetXPosition(position), .5f);
                }

                image.rectTransform.anchoredPosition = EngineGraphUtilities.FromAbsolutePositionToAnchoredPosition(image.rectTransform, pos, DialogueDatabase.activeGraphPlayer.Canvas.transform as RectTransform);
            }

            node.endedInstruction = true;
        }
        public static IEnumerator FadeToPosition(Image image, EnumPosition position, NTemplate node, Vector2 point, float duration)
        {
            var canvas = DialogueDatabase.activeGraphPlayer.Canvas.transform as RectTransform;

            Vector2 pos;

            if (position != EnumPosition.Custom)
            {
                pos = new Vector2(EngineGraphUtilities.GetXPosition(position), .5f);
            }
            else
            {
                pos = point;
            }

            pos = EngineGraphUtilities.FromAbsolutePositionToAnchoredPosition(image.rectTransform, pos, canvas);

            var wait = new WaitForSeconds(duration / 2);

            image.CrossFadeAlpha(0, duration / 2, false);

            yield return(wait);

            image.rectTransform.anchoredPosition = pos;
            image.CrossFadeAlpha(1, duration / 2, false);

            yield return(wait);

            node.endedInstruction = true;
        }
        public static IEnumerator SlideToPosition(RectTransform trm, EnumPosition position, NTemplate node, Vector2 point, float duration)
        {
            var canvas = DialogueDatabase.activeGraphPlayer.Canvas.transform as RectTransform;

            Vector2 posA = trm.anchoredPosition;
            Vector2 posB;

            if (position != EnumPosition.Custom)
            {
                posB = new Vector2(EngineGraphUtilities.GetXPosition(position), .5f);
            }
            else
            {
                posB = point;
            }

            posB = EngineGraphUtilities.FromAbsolutePositionToAnchoredPosition(trm, posB, canvas);

            float lerpValue = 0;
            float result    = 0;

            yield return(new WaitUntil(() =>
            {
                trm.anchoredPosition = Vector2.Lerp(posA, posB, result);

                lerpValue += Time.deltaTime;
                result = lerpValue / duration;

                return result >= 1;
            }));

            node.endedInstruction = true;
        }
예제 #4
0
        public static IEnumerator SlideUp(Image image, Sprite sprite, EnumPosition position, NTemplate node, Vector2 point, float duration, bool reverse = false)
        {
            if (!reverse)
            {
                image.sprite = sprite;
            }

            var canvas = DialogueDatabase.activeGraphPlayer.Canvas.transform as RectTransform;
            var trm    = image.rectTransform;

            Vector2 posA;
            Vector2 posB;

            if (position != EnumPosition.Custom)
            {
                posA = new Vector2(EngineGraphUtilities.GetXPosition(position), -.5f);
                posB = new Vector2(posA.x, .5f);
            }

            else
            {
                posA = new Vector2(point.x, -.5f);
                posB = point;
            }

            posA = EngineGraphUtilities.FromAbsolutePositionToAnchoredPosition(trm, posA, canvas);
            posB = reverse ? posB : EngineGraphUtilities.FromAbsolutePositionToAnchoredPosition(trm, posB, canvas);

            if (reverse)
            {
                posA.x = posB.x;
            }

            float lerpValue = 0;
            float result    = 0;

            yield return(new WaitUntil(() =>
            {
                if (reverse)
                {
                    trm.anchoredPosition = Vector2.Lerp(posB, posA, result);
                }
                else
                {
                    trm.anchoredPosition = Vector2.Lerp(posA, posB, result);
                }

                lerpValue += Time.deltaTime;
                result = lerpValue / duration;

                return result >= 1;
            }));

            node.endedInstruction = true;
        }
        public static void InstanteToPosition(RectTransform trm, EnumPosition position, NTemplate node, Vector2 point)
        {
            var canvas = DialogueDatabase.activeGraphPlayer.Canvas.transform as RectTransform;

            Vector2 pos;

            if (position != EnumPosition.Custom)
            {
                pos = new Vector2(EngineGraphUtilities.GetXPosition(position), .5f);
            }
            else
            {
                pos = point;
            }

            pos = EngineGraphUtilities.FromAbsolutePositionToAnchoredPosition(trm, pos, canvas);

            trm.anchoredPosition = pos;

            node.endedInstruction = true;
        }