예제 #1
0
        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);
        }
예제 #2
0
 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);
     }
 }
예제 #3
0
 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);
     }
 }