예제 #1
0
        public void Setup(RippleData data, Vector2 positon, IRippleCreator creator, bool oscillate = false)
        {
            m_RippleData = data;
            m_RippleParent = (RectTransform)data.RippleParent;
            rectTransform.SetParent(m_RippleParent);
            rectTransform.SetSiblingIndex(0);
            m_Oscillate = oscillate;
            rectTransform.sizeDelta = Vector2.zero;

            switch (GetComponentInParent<Canvas>().renderMode)
            {
                case RenderMode.ScreenSpaceOverlay:
                    rectTransform.position = new Vector3(positon.x, positon.y, m_RippleParent.position.z);
                    break;
                case RenderMode.ScreenSpaceCamera:
                    rectTransform.position = new Ray(Camera.main.transform.position, Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, m_RippleParent.position.z))).GetPoint(Vector3.Distance(Camera.main.transform.position, m_RippleParent.position));
                    break;
                case RenderMode.WorldSpace:
                    rectTransform.position = new Ray(Camera.main.transform.position, Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, m_RippleParent.position.z))).GetPoint(Vector3.Distance(Camera.main.transform.position, m_RippleParent.position));
                    break;
            }

            rectTransform.localEulerAngles = Vector3.zero;
            image.color = data.Color;
            canvasGroup.alpha = data.StartAlpha;
            m_AnimationDuration = 4f / data.Speed;
            m_RippleCreator = creator;
            if (data.PlaceRippleBehind)
            {
                int index = m_RippleParent.GetSiblingIndex();
                rectTransform.SetParent(m_RippleParent.parent);
                rectTransform.SetSiblingIndex(index);
            }

        }
예제 #2
0
파일: Ripple.cs 프로젝트: dqchess/Linyx
        /// <summary>
        /// Sets the ripple's transform and rippleData, and prepares it to start expanding.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <param name="position">The position.</param>
        /// <param name="creator">The creator to send callbacks to.</param>
        /// <param name="oscillate">If true, the ripple will oscillate when expanded.</param>
        public void Setup(RippleData data, Vector2 position, IRippleCreator creator, bool oscillate = false)
        {
            m_RippleData   = data;
            m_RippleParent = (RectTransform)data.RippleParent;
            rectTransform.SetParent(m_RippleParent);
            rectTransform.SetSiblingIndex(0);
            m_Oscillate             = oscillate;
            rectTransform.sizeDelta = Vector2.zero;

            Camera camera = FindObjectOfType <Camera>();

            switch (GetComponentInParent <Canvas>().renderMode)
            {
            case RenderMode.ScreenSpaceOverlay:
                rectTransform.position = new Vector3(position.x, position.y, m_RippleParent.position.z);
                break;

            case RenderMode.ScreenSpaceCamera:
                rectTransform.position = camera.ScreenToWorldPoint(new Vector3(position.x, position.y, m_RippleParent.position.z));
                break;

            case RenderMode.WorldSpace:
                rectTransform.position = camera.ScreenToWorldPoint(new Vector3(position.x, position.y, m_RippleParent.position.z));
                break;
            }

            m_Material = rippleData.Shadow ? m_ShadowedRippleMaterial : m_RippleMaterial;

            rectTransform.localEulerAngles = Vector3.zero;
            color               = data.Color;
            canvasGroup.alpha   = data.StartAlpha;
            m_AnimationDuration = 4f / data.Speed;
            m_RippleCreator     = creator;

            if (data.PlaceRippleBehind)
            {
                int index = m_RippleParent.GetSiblingIndex();
                rectTransform.SetParent(m_RippleParent.parent);
                rectTransform.SetSiblingIndex(index);
            }
        }
예제 #3
0
        /// <summary>
        /// Sets the ripple's transform and rippleData, and prepares it to start expanding.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <param name="positon">The positon.</param>
        /// <param name="creator">The creator to send callbacks to.</param>
        /// <param name="oscillate">If true, the ripple will oscillate when expanded.</param>
        public void Setup(RippleData data, Vector2 positon, IRippleCreator creator, bool oscillate = false)
        {
            m_RippleData   = data;
            m_RippleParent = (RectTransform)data.RippleParent;
            rectTransform.SetParent(m_RippleParent);
            rectTransform.SetSiblingIndex(0);
            m_Oscillate             = oscillate;
            rectTransform.sizeDelta = Vector2.zero;
            rectTransform.position  = new Vector3(positon.x, positon.y, m_RippleParent.position.z);

            rectTransform.localEulerAngles = Vector3.zero;
            color               = data.Color;
            canvasGroup.alpha   = data.StartAlpha;
            m_AnimationDuration = 4f / data.Speed;
            m_RippleCreator     = creator;

            if (data.PlaceRippleBehind)
            {
                int index = m_RippleParent.GetSiblingIndex();
                rectTransform.SetParent(m_RippleParent.parent);
                rectTransform.SetSiblingIndex(index);
            }
        }
예제 #4
0
        public void Setup(RippleData data, Vector2 positon, IRippleCreator creator, bool oscillate = false)
        {
            m_RippleData   = data;
            m_RippleParent = (RectTransform)data.RippleParent;
            rectTransform.SetParent(m_RippleParent);
            rectTransform.SetSiblingIndex(0);
            m_Oscillate             = oscillate;
            rectTransform.sizeDelta = Vector2.zero;

            switch (GetComponentInParent <Canvas>().renderMode)
            {
            case RenderMode.ScreenSpaceOverlay:
                rectTransform.position = new Vector3(positon.x, positon.y, m_RippleParent.position.z);
                break;

            case RenderMode.ScreenSpaceCamera:
                rectTransform.position = new Ray(Camera.main.transform.position, Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, m_RippleParent.position.z))).GetPoint(Vector3.Distance(Camera.main.transform.position, m_RippleParent.position));
                break;

            case RenderMode.WorldSpace:
                rectTransform.position = new Ray(Camera.main.transform.position, Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, m_RippleParent.position.z))).GetPoint(Vector3.Distance(Camera.main.transform.position, m_RippleParent.position));
                break;
            }

            rectTransform.localEulerAngles = Vector3.zero;
            image.color         = data.Color;
            canvasGroup.alpha   = data.StartAlpha;
            m_AnimationDuration = 4f / data.Speed;
            m_RippleCreator     = creator;
            if (data.PlaceRippleBehind)
            {
                int index = m_RippleParent.GetSiblingIndex();
                rectTransform.SetParent(m_RippleParent.parent);
                rectTransform.SetSiblingIndex(index);
            }
        }