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); } }
/// <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); } }
/// <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); } }
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); } }