1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| 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;
| }
|
| }
|
|