yyl
20 小时以前 5d3366f2e0f687995eb7ad2107c4379fe7acd4e8
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;
    }
 
}