using UnityEngine;
using UnityEngine.UI;
public class UIEffect : MonoBehaviour {
[SerializeField] private RectTransform targetRect;
[SerializeField] private ParticleSystem particle;
private Canvas _canvas;
public Canvas Canvas { get { return this._canvas ? this._canvas : this._canvas = targetRect.GetComponent<Graphic> ().canvas; } }
// Start is called before the first frame update
void Start () {
//RectTransformをスクリーン座標に変換
Vector2 screenPos = RectTransformUtility.WorldToScreenPoint (Canvas.worldCamera, targetRect.position);
//ワールド座標
Vector3 worldPos = Vector3.zero;
//スクリーン座標→ワールド座標に変換
RectTransformUtility.ScreenPointToWorldPointInRectangle (targetRect, screenPos, Canvas.worldCamera, out worldPos);
worldPos.z = 0.0f;
particle.transform.position = worldPos;
particle.Emit (1);
}
}