| | |
| | | using UnityEngine.UI; |
| | | |
| | | // 特效播放器,对象池管理:unity特效和spine特效都是做好的预制体 |
| | | // unity特效预制体是特效师在制作的时候生成的,unity特效约定挂载设置播放时长脚本 |
| | | // unity特效预制体是特效师在制作的时候生成的,unity特效必须挂载设置播放时长脚本 EffectTime |
| | | // spine特效是特效师制作的动画文件可直接加载用,制作成预制体可增加BoneFollower之类的进行逻辑处理 |
| | | // 非UI特效使用,UI特效UIEffectPlayer继承EffectPlayer,后续如果逻辑冲突大则不用继承 |
| | | public class EffectPlayer : MonoBehaviour |
| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | [Header("播放完毕立即回收")] |
| | | public bool isReleaseImmediately = true; //界面特效一般不需要自我销毁,跟随界面或者父对象销毁就行 |
| | | |
| | |
| | | effectConfig = null; |
| | | #if UNITY_EDITOR |
| | | if (showLog) |
| | | { |
| | | { |
| | | Debug.LogError("EffectPlayer effectId is not set"); |
| | | UnityEditor.Selection.activeGameObject = gameObject; |
| | | UnityEditor.EditorGUIUtility.PingObject(gameObject); |
| | |
| | | } |
| | | |
| | | protected virtual void PlayerEffect(bool playSpine) |
| | | { |
| | | { |
| | | var effectPrefab = ResManager.Instance.LoadAsset<GameObject>("UIEffect/" + effectConfig.packageName, effectConfig.fxName); |
| | | if (effectPrefab == null) |
| | | { |
| | |
| | | protected virtual void OnSpineAnimationComplete(Spine.TrackEntry trackEntry) |
| | | { |
| | | if (isReleaseImmediately) |
| | | { |
| | | spineComp.enabled = false; |
| | | { |
| | | spineComp.enabled = false; |
| | | Stop(); |
| | | } |
| | | } |
| | |
| | | return; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |