| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | #if !COMBAT_SERVERusing UnityEngine;using UnityEngine.Playables;using UnityEngine.Timeline;#endifusing CombatCore.SerializationTimeLine.TimeLineSerialization;using Fort23.Core;using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;using Object = System.Object;using Random = System.Random;/// <summary>/// 播放特效/// </summary>[System.Serializable]public class TimeLinePlayFxSerializtion : TimeLineAssetSerialization{    public string fxName;    public uint randomSeed;    public FXLocationType locationType;    public string targetSpecialDotName;    public string hitPointGroupName;    public bool isGround;    /// <summary>    /// 是否跟随目标    /// </summary>    public bool isFollowTarget;    public bool isFollowRootTarget;    /// <summary>    /// 是否不旋转 (默认是跟随目标旋转)    /// </summary>    public bool isNotRotate;    /// <summary>    /// 是否跟随攻击速度进行播放te    /// </summary>    public bool isAttSpeed;    public int CustomTargetPosIndex;    public bool isActivityCustomTargetPos;    /// <summary>    /// 是否循环    /// </summary>    public bool isLoop;    /// <summary>    /// 循环独立    /// </summary>    public bool loopAlone;    public float intervalTime;    public bool isRoat;    public int roatIndex;    public bool isUseRandom;    public TimeLineVector2 xoff;    public TimeLineVector2 yoff;    public TimeLineVector2 zoff;     public int randomGroup;    public TimeLinePlayFxSerializtion()    {    }#if !COMBAT_SERVER    public TimeLinePlayFxSerializtion(PlayableDirector playableDirector, GroupTrack groupTrack,        TimelineClip timelineClip) : base(groupTrack, timelineClip)    {        TimeLineParticleSystemAsset controlPlayableAsset = timelineClip.asset as TimeLineParticleSystemAsset;        if (controlPlayableAsset == null)        {            return;        }        GameObject go = null;        if (controlPlayableAsset.prefabGameObject != null)        {            go = controlPlayableAsset.prefabGameObject;        }        else if (playableDirector.playableGraph.GetResolver() != null)        {            go = controlPlayableAsset.sourceGameObject.Resolve(playableDirector.playableGraph.GetResolver());        }        Object obj = controlPlayableAsset.sourceGameObject.defaultValue;        // Debug.Log(playableDirector.playableGraph.GetResolver());        if (go != null)        {            fxName = go.name;            randomSeed = controlPlayableAsset.particleRandomSeed;            locationType = controlPlayableAsset.LocationType;            targetSpecialDotName = controlPlayableAsset.targetSpecialDotName;            hitPointGroupName = controlPlayableAsset.hitPointGroupName;            isFollowTarget = controlPlayableAsset.isFollowTarget;            isFollowRootTarget = controlPlayableAsset.isFollowRootTarget;            isGround = controlPlayableAsset.isGround;            isNotRotate = controlPlayableAsset.isNotRotate;            isAttSpeed = controlPlayableAsset.isAttSpeed;            targetEntityType = controlPlayableAsset.targetType;            CustomTargetPosIndex = controlPlayableAsset.CustomTargetPosIndex;            isActivityCustomTargetPos = controlPlayableAsset.isActivityCustomTargetPos;            loopAlone = controlPlayableAsset.loopAlone;            isLoop = controlPlayableAsset.isLoop;            intervalTime = controlPlayableAsset.intervalTime;            isRoat = controlPlayableAsset.isRoat;            roatIndex = controlPlayableAsset.roatIndex;            isUseRandom = controlPlayableAsset.isUseRandom;            xoff = controlPlayableAsset.xoff;            yoff = controlPlayableAsset.yoff;            zoff = controlPlayableAsset.zoff;            randomGroup = controlPlayableAsset.randomGroup;        }    }  #endif    public override TimeLineEventLogicBasic CreateLogic()    {        return CObjectPool.Instance.Fetch<TimeLineEventParticleLogicBasic>();    }}
 |