summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/TimelineEventProxy.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Unit/TimelineEventProxy.cs')
-rw-r--r--Assets/Scripts/Unit/TimelineEventProxy.cs48
1 files changed, 25 insertions, 23 deletions
diff --git a/Assets/Scripts/Unit/TimelineEventProxy.cs b/Assets/Scripts/Unit/TimelineEventProxy.cs
index 6d4650fc..e750def2 100644
--- a/Assets/Scripts/Unit/TimelineEventProxy.cs
+++ b/Assets/Scripts/Unit/TimelineEventProxy.cs
@@ -81,6 +81,8 @@ public partial class TimelineEventProxy
private Transform m_Root;
+ private Transform m_UnitModel; // 模型的Unit,默认是m_Root的第一个子节点
+
public UnitController owner { get; private set; }
private UnitAnimation m_UnitAnimation { get { return owner.unitAnimation; } }
@@ -92,12 +94,14 @@ public partial class TimelineEventProxy
this.owner = owner;
m_Root = owner.transform;
m_PrevAnimationData = null;
+ m_UnitModel = m_Root.GetChild(0);
}
public TimelineEventProxy(Transform root)
{
m_Root = root;
m_PrevAnimationData = null;
+ m_UnitModel = m_Root.GetChild(0);
}
public static Type GetTypeByName(string name)
@@ -177,32 +181,30 @@ public partial class TimelineEventProxy
go.transform.SetParent(root.transform);
FxClear onClear = root.AddComponent<FxClear>();
onClear.gameObject.name = prefab.name + "(Clone)";
- if(owner != null)
- {
- PlayEffectInfo info = new PlayEffectInfo();
- info.path = path;
- info.playEffectType = EffectPlayTypes.Oneshot;
- info.rootTr = m_Root;
- info.posOffset = effect.position;
- info.rot = effect.rotation;
- info.scale = effect.scale;
- info.bAttached = true;
- onClear.Initialize(info);
- }
- else
+ PlayEffectInfo info = new PlayEffectInfo();
+ info.path = path;
+ info.playEffectType = EffectPlayTypes.Oneshot;
+ info.posOffset = effect.position;
+ info.rot = effect.rotation;
+ info.scale = effect.scale;
+ info.bAttached = effect.attached;
+ if(effect.attached)
{
- PlayEffectInfo info = new PlayEffectInfo();
- info.path = path;
- info.playEffectType = EffectPlayTypes.Oneshot;
- info.rootTr = m_Root;
- info.posOffset = effect.position;
- info.rot = effect.rotation;
- info.scale = effect.scale;
- info.bAttached = true;
-
- onClear.Initialize(info);
+ if(effect.attachNode == global::EventEffect.EAttachNode.Unit)
+ {
+ info.rootTr = m_Root;
+ }
+ else if(effect.attachNode == global::EventEffect.EAttachNode.Bone)
+ {
+ if(m_UnitModel != null)
+ {
+ info.rootTr = m_UnitModel.Find(effect.bone);
+ }
+ }
}
+
+ onClear.Initialize(info);
#if UNITY_EDITOR
if (isInEditMode && registerParticleSystem != null)
{