//--------------------------------------------------------
|
// [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();
|
}
|
|
});
|
}
|
}
|
}
|
|
}
|