Esempio n. 1
0
        public static GameObject DrawSpriteTimedAlpha(Vector3 position, Sprite sprite, float scale, float timer, float startDecayTimeNormalized = .8f)
        {
            GameObject gameObject = DrawSpriteTimed(position, sprite, scale, timer);

            SpriteRenderer spriteRenderer = gameObject.GetComponent <SpriteRenderer>();

            float startAlphaDecayTime = timer * startDecayTimeNormalized;
            float totalAlphaDecayTime = timer - startAlphaDecayTime;
            float currentTime         = 0f;

            FunctionUpdater.Create(() => {
                if (gameObject == null)
                {
                    return(true);
                }
                currentTime += Time.unscaledDeltaTime;
                if (currentTime >= startAlphaDecayTime)
                {
                    spriteRenderer.color = new Color(1, 1, 1, Mathf.Lerp(1f, 0f, 1 - ((timer - currentTime) / totalAlphaDecayTime)));
                }
                return(false);
            });

            return(gameObject);
        }
Esempio n. 2
0
        // Text Updater always following mouse
        public static void MouseTextUpdater(Func <string> GetTextFunc, Vector3 positionOffset = default(Vector3))
        {
            GameObject gameObject = new GameObject();

            FunctionUpdater.Create(() => {
                gameObject.transform.position = UtilsClass.GetMouseWorldPosition() + positionOffset;
                return(false);
            });
            TextUpdater(GetTextFunc, Vector3.zero, gameObject.transform);
        }
Esempio n. 3
0
        // Debug DrawLine to draw a projectile, turn Gizmos On
        public static void DebugProjectile(Vector3 from, Vector3 to, float speed, float projectileSize)
        {
            Vector3 dir = (to - from).normalized;
            Vector3 pos = from;

            FunctionUpdater.Create(() => {
                Debug.DrawLine(pos, pos + dir * projectileSize);
                float distanceBefore = Vector3.Distance(pos, to);
                pos += dir * speed * Time.deltaTime;
                float distanceAfter = Vector3.Distance(pos, to);
                if (distanceBefore < distanceAfter)
                {
                    return(true);
                }
                return(false);
            });
        }
Esempio n. 4
0
        public static void SpritePopup(Vector3 position, Sprite sprite, float scale)
        {
            float      popupTime  = 1f;
            GameObject gameObject = DrawSpriteTimedAlpha(position, sprite, scale, popupTime);

            Vector3   finalPopupPosition = position + new Vector3(0, 1, 0) * 20f;
            Transform transform          = gameObject.transform;
            Vector3   moveAmount         = (finalPopupPosition - position) / popupTime;

            FunctionUpdater.Create(delegate() {
                if (gameObject == null)
                {
                    return(true);
                }
                transform.position += moveAmount * Time.unscaledDeltaTime;
                return(false);
            }, "SpritePopup");
        }