2
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.8 KiB
C#

2 years ago
using UnityEngine;
namespace Game
{
public class ClipEffect : TimelineClipBase
{
private EffectClip _mRealAsset;
public override void OnEnter()
{
_mRealAsset = Asset as EffectClip;
var duration = EndTime - StartTime;
var castDir = Owner.skill.CastDir;
castDir = new Vector3(castDir.x, 0, castDir.z);//忽略y
var toGridSize = 16f / 64f;
var isRight = Owner.move.IsRight;
var rotf = Util.Vec3ToRot(castDir);
foreach (var item in _mRealAsset.template.EffectInfos)
{
var targetEntity = 0;
var isSpeedIgnore = item.isSpeedIgnore;
var rot = Quaternion.FromToRotation(Vector3.right, castDir);
var posAdd = rot * (item.offset * toGridSize);
var pos = Owner.view.PositionView + posAdd;
if (item.isGround)
{
pos = Owner.move.Position + posAdd;
pos = new Vector3(pos.x, 0, pos.z);
}
if (item.isAttach)
{
targetEntity = Owner.ID();
}
var rotFinal = GameRandom.RandomRot(rotf + item.rotAdd, item.rotAddRandom);
if (item.Effect != null)
{
Util.CastEffect(item.Effect, pos, rotFinal, targetEntity, isSpeedIgnore ? 0 : duration, item.isAttach);
}
else
{
Util.Print("ClipEffect特效释放失败未配置特效");
}
}
}
public override void OnStay()
{
}
public override void OnLeave()
{
}
}
}