using UnityEngine; public class UIEffectTransmitController : MonoBehaviour { public Transform start; public Transform end; public UIEffect transmit; public int scale = 1; //根据界面自行调整比例 private void Update() { if (transform == null) { return; } if (transmit == null) { return; } if (start == null) { return; } if (end == null) { return; } transmit.transform.position = start.position; transmit.transform.localScale = new Vector3(Vector3.Distance(end.position, start.position) * scale, 1, 1); //transmit.transform.localRotation.z 值根据 end和start的位置计算, end在start的右边时,localRotation.z = 0, end在start的左边时,localRotation.z = 180 float angle = Mathf.Atan2(end.position.y - start.position.y, end.position.x - start.position.x) * Mathf.Rad2Deg; transmit.transform.localRotation = Quaternion.Euler(0, 0, angle); } private void OnDisable() { start = null; end = null; transmit = null; } }