using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityGameFramework.Runtime;
using DG;
using DG.Tweening;
///
/// 场景组件 抛物线
///
public class SceneEventParabolic : MonoBehaviour
{
Sequence seq;
bool isComplate = false;
private void Awake()
{
seq = DOTween.Sequence();
}
// Start is called before the first frame update
void Start()
{
}
public void OnTriggerEnter(Collider collider)
{
Role r = collider.GetComponent();
if(r && !seq.IsPlaying())
{
TestDoTween(collider.transform);
}
}
public void OnTriggerExit(Collider collider)
{
}
public void TestDoTween(Transform target)
{
var ParabolicDis = Vector3.Distance(target.transform.position, this.transform.position);
var ParabolicDown = target.transform.position.y;
var speed = 3.0f;
var time = ParabolicDis / speed;
seq.Append(this.transform.DOMoveX(target.position.x, time / 2).SetEase(Ease.Linear));
seq.Append(this.transform.DOMoveZ(target.position.z, time / 2).SetEase(Ease.Linear));
seq.Insert(0, this.transform.DOMoveY(target.transform.position.y + ParabolicDis, time / 2).SetEase(Ease.OutQuart));
seq.Insert(0.5f , this.transform.DOMoveY(ParabolicDown, time * 0.5f).SetEase(Ease.InCirc));
seq.OnComplete(() => { OnDoTweenComplete(); });
}
public void OnDoTweenComplete()
{
Debug.Log("抛物线完成!");
}
}