少年修仙传客户端代码仓库
hch
2025-07-24 50e53441950268933694eeb5aad36147bbe1014d
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Tuesday, October 09, 2018
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
 
namespace vnxbqy.UI {
 
    public class UIEffectFly:MonoBehaviour {
        [SerializeField] Transform m_tran1;
        [SerializeField] Transform m_tran2;
        [SerializeField] Transform m_tran3;
        [SerializeField] Transform m_tran4;
        [SerializeField] Transform m_tran5;
        [SerializeField] Transform m_tran6;
        [SerializeField] Transform m_tran7;
        [SerializeField] Transform m_tran8;
        [SerializeField] Transform m_tran9;
 
        [SerializeField] Transform m_endTran;
 
        [Header("需要生成的个数")]
        public int NUMBER = 5;
        [Header("移动的时间")]
        public float SPEED = 2f;
        [Header("需要进行延迟的时间")]
        public float LOADTIME = 0.1f;
        public void StartFly(int Inedx)
        {
            switch (Inedx)
            {
                case 1:
                    GetVector3Pos(m_tran1.position, m_endTran.position);
                    break;
                case 2:
                    GetVector3Pos(m_tran2.position, m_endTran.position);
                    break;
                case 3:
                    GetVector3Pos(m_tran3.position, m_endTran.position);
                    break;
                case 4:
                    GetVector3Pos(m_tran4.position, m_endTran.position);
                    break;
                case 5:
                    GetVector3Pos(m_tran5.position, m_endTran.position);
                    break;
                case 6:
                    GetVector3Pos(m_tran6.position, m_endTran.position);
                    break;
                case 7:
                    GetVector3Pos(m_tran7.position, m_endTran.position);
                    break;
                case 8:
                    GetVector3Pos(m_tran8.position, m_endTran.position);
                    break;
                case 9:
                    GetVector3Pos(m_tran9.position, m_endTran.position);
                    break;
            }
 
        }
 
        private void GetVector3Pos(Vector3 StartVec,Vector3 endVec)
        {
            var direction = Vector3.Normalize(StartVec - endVec);
            var normal = new Vector3(-direction.y, direction.x, 0);
            var distance = Vector3.Distance(StartVec, endVec);
            int Type = 0;
            int Type1 = 0;
            for (int i = 0; i < NUMBER; i++)
            {
                var pivot = StartVec + normal * UnityEngine.Random.Range(-distance, distance) * 0.7f + direction * distance * 0.4f;
                var effect = EffectMgr.Instance.PlayUIEffect(5134,2500, this.transform, true);
                effect.transform.position = StartVec;
                var bezierMove = effect.AddMissingComponent<BezierMove>();
                bezierMove.duration = (SPEED - i * LOADTIME);
                Type += 1;
                bezierMove.Begin(StartVec, pivot, endVec, () =>
                {
                    Type1 += 1;
                    effect.Stop();
                    DestroyObject(bezierMove);
                    if (Type == Type1)
                    {
                      //  OnComplet();
                    }
 
                });
            }
        }
    }
 
}