private static void CreateEffect(AnimClipData.EffectData animClipEffect) { EffectConf.EffectData data = LuaEffectConfModel.GetEffectData(animClipEffect.id); string path = Tool.GetAssetProjectPath(data.resourceName, Config.PrefabExtension, Config.SkillEffectPath); GameObject effectNode = LoadPrefab(Tool.ProjectPathToFullPath(path)); SetEffectTransform(data, effectNode); SetEffectParticle(animClipEffect.id, effectNode); m_dicIDEffectObject.Add(animClipEffect.id, effectNode); }
public static void ReloadEffectConf() { LuaEffectConfModel.Reset(); LuaReader.Read <EffectConf.EffectData>(true); LuaEffectConfModel.Init(); foreach (var idObjectPair in m_dicIDEffectObject) { uint id = idObjectPair.Key; GameObject effectNode = idObjectPair.Value; EffectConf.EffectData data = LuaEffectConfModel.GetEffectData(id); if (data.IsNullTable()) { continue; } SetEffectTransform(data, effectNode); } }
private static void SetEffectTransform(EffectConf.EffectData data, GameObject effectNode) { if (data.pivotType == EffectConf.PivotType.Follow) { Transform parent = null; if (data.parentPivotType == EffectConf.ParentPivotType.Body) { parent = m_model.transform.Find(data.pivotNodeName); } else { if (m_rightWeapon != null) { parent = m_rightWeapon.transform.Find(data.pivotNodeName); } if (parent == null && m_leftWeapon != null) { parent = m_leftWeapon.transform.Find(data.pivotNodeName); } } if (parent) { effectNode.transform.SetParent(parent); } } Tool.NormalizeTransform(effectNode); if (!data.offset.IsNullTable()) { effectNode.transform.localPosition = data.offset.Vector; } if (!data.scale.IsNullTable()) { effectNode.transform.localScale = data.scale.Vector; } if (!data.rotation.IsNullTable()) { effectNode.transform.localRotation = Quaternion.Euler(data.rotation.Vector); } }