void Save() { if (actor.Skill != null) { string skillFileName = getCurrentSkillName(); string fullFilePath = AssertBundleCreator.SkillAssetbundlePath + skillFileName + ".txt"; StreamWriter skillWrite = new StreamWriter(fullFilePath); skillWrite.Flush(); skillWrite.WriteLine("skill " + skillFileName); skillWrite.WriteLine("{"); skillWrite.WriteLine("\t\tAnimation " + actor.Skill.getAnimateName()); skillWrite.WriteLine("\t\tBreakTime " + actor.Skill.getParameter("BreakTime")); skillWrite.WriteLine("\t\tHitTime " + actor.Skill.getParameter("HitTime")); skillWrite.WriteLine("\t\tShakeTime " + actor.Skill.getParameter("ShakeTime")); skillWrite.WriteLine("\t\tRepeatEffect " + actor.Skill.getParameter("RepeatEffect")); skillWrite.WriteLine("\t\tEnableRibbon " + actor.Skill.getParameter("EnableRibbon")); for (int i = 0; i < actor.Skill.getSkillEffectCount(); i++) { skillWrite.WriteLine("\t\tAnimEffect"); GFX.GfxSkillEffect skillEffect = actor.Skill.getSkillEffect(i); skillWrite.WriteLine("\t\t{"); skillWrite.WriteLine("\t\t\tAttachTime " + skillEffect.getParameter("AttachTime")); skillWrite.WriteLine("\t\t\tAttachPoint " + skillEffect.getParameter("AttachPoint")); skillWrite.WriteLine("\t\t\tEffectTemplateName " + skillEffect.getParameter("EffectTemplateName")); skillWrite.WriteLine("\t\t\tOffsetPos " + skillEffect.getParameter("OffsetPos")); skillWrite.WriteLine("\t\t\tOffsetRotation " + skillEffect.getParameter("OffsetRotation")); skillWrite.WriteLine("\t\t\tOffsetScale " + skillEffect.getParameter("OffsetScale")); skillWrite.WriteLine("\t\t\tAttach " + skillEffect.getParameter("Attach")); skillWrite.WriteLine("\t\t}"); } if (actor.Skill.isHitGroundEffectExist()) { skillWrite.WriteLine("\t\tHitGroundEffect"); skillWrite.WriteLine("\t\t{"); skillWrite.WriteLine("\t\t\tAttachTime " + actor.Skill.HitGroundEffect.getParameter("AttachTime")); skillWrite.WriteLine("\t\t\tShakeTime " + actor.Skill.HitGroundEffect.getParameter("ShakeTime")); skillWrite.WriteLine("\t\t\tAnimation " + actor.Skill.HitGroundEffect.getParameter("Animation")); skillWrite.WriteLine("\t\t\tAttachPoint " + actor.Skill.HitGroundEffect.getParameter("AttachPoint")); skillWrite.WriteLine("\t\t\tEffectTemplateName " + actor.Skill.HitGroundEffect.getParameter("EffectTemplateName")); skillWrite.WriteLine("\t\t\tOffsetPos " + actor.Skill.HitGroundEffect.getParameter("OffsetPos")); skillWrite.WriteLine("\t\t\tOffsetRotation " + actor.Skill.HitGroundEffect.getParameter("OffsetRotation")); skillWrite.WriteLine("\t\t\tOffsetScale " + actor.Skill.HitGroundEffect.getParameter("OffsetScale")); skillWrite.WriteLine("\t\t\tAttach " + actor.Skill.HitGroundEffect.getParameter("Attach")); skillWrite.WriteLine("\t\t}"); } skillWrite.WriteLine("}"); skillWrite.Close(); EditorUtility.DisplayDialog("Save Skill File", "Success!", "Ok"); } else { Debug.LogError("skill instance is none"); } }
void Update() { if (mObject != null) { GFX.GfxSystem.Instance.Tick(); AnimNames = mObject.getAnimationName(); AnimNames.Sort(); AnimNames.Insert(0, "none"); if (isReadyUpdateLocater) { GameObject go = mObject.getGameObject(); if (go != null) { Transform[] actorBones = go.GetComponentsInChildren <Transform>(); foreach (Transform t in actorBones) { if (t.name.IndexOf("Locator") != -1) { LocatorNames.Add(t.name); } } } isReadyUpdateLocater = false; if (mEffects.Count != 0 && mEffects[effectIndex] != "none" && mSkill != null) { GFX.GfxSkillEffect curSkillEffect = mSkill.getSkillEffect(effectIndex - 1); if (curSkillEffect != null) { string attachPoint = curSkillEffect.getParameter("AttachPoint"); mLocatorNameIndex = LocatorNames.IndexOf(attachPoint); if (mLocatorNameIndex == -1) { mLocatorNameIndex = 0; } } } if (mSkill != null) { string curAnimateName = mSkill.getParameter("Animation"); mSkillAnimateNameIndex = AnimNames.IndexOf(curAnimateName); if (mSkillAnimateNameIndex == -1) { mSkillAnimateNameIndex = 0; } } } } }
void Save() { if (mSkill != null) { string skillFileName = SkillNames[skillIndex]; string fullFilePath = AssertBundleCreator.SkillAssetbundlePath + skillFileName + ".txt"; FileStream skillData = new FileStream(fullFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write); skillData.Flush(); StreamWriter skillWrite = new StreamWriter(skillData); skillWrite.WriteLine("skill " + skillFileName); skillWrite.WriteLine("{"); skillWrite.WriteLine("\t\tAnimation " + mSkill.getAnimateName()); skillWrite.WriteLine("\t\tBreakTime " + mSkill.getParameter("BreakTime")); skillWrite.WriteLine("\t\tHitTime " + mSkill.getParameter("HitTime")); skillWrite.WriteLine("\t\tShakeTime " + mSkill.getParameter("ShakeTime")); skillWrite.WriteLine("\t\tRepeatEffect " + mSkill.getParameter("RepeatEffect")); skillWrite.WriteLine("\t\tEnableRibbon " + mSkill.getParameter("EnableRibbon")); for (int i = 0; i < mSkill.getSkillEffectCount(); i++) { skillWrite.WriteLine("\t\tAnimEffect"); GFX.GfxSkillEffect skillEffect = mSkill.getSkillEffect(i); skillWrite.WriteLine("\t\t{"); skillWrite.WriteLine("\t\t\tAttachTime " + skillEffect.getParameter("AttachTime")); skillWrite.WriteLine("\t\t\tAttachPoint " + skillEffect.getParameter("AttachPoint")); skillWrite.WriteLine("\t\t\tEffectTemplateName " + skillEffect.getParameter("EffectTemplateName")); skillWrite.WriteLine("\t\t\tOffsetPos " + skillEffect.getParameter("OffsetPos")); skillWrite.WriteLine("\t\t\tOffsetRotation " + skillEffect.getParameter("OffsetRotation")); skillWrite.WriteLine("\t\t\tOffsetScale " + skillEffect.getParameter("OffsetScale")); skillWrite.WriteLine("\t\t\tAttach " + skillEffect.getParameter("Attach")); skillWrite.WriteLine("\t\t}"); } skillWrite.WriteLine("}"); skillWrite.Close(); skillData.Close(); } }
void showSkillEffect() { if (mEffects[effectIndex] != "none") { if (effectIndex != lastEffectIndex) { GFX.GfxSkillEffect curSkillEffect = actor.Skill.getSkillEffect(effectIndex - 1); mAtttachTime = curSkillEffect.AttachTime; string attachPoint = curSkillEffect.getParameter("AttachPoint"); mLocatorNameIndex = actor.LocatorNames.IndexOf(attachPoint); if (mLocatorNameIndex == -1) { mLocatorNameIndex = 0; } mEffectName = curSkillEffect.getParameter("EffectTemplateName"); mOffsetPos = curSkillEffect.OffsetPos; mOffsetRotation = new Vector4(curSkillEffect.OffsetRotation.x, curSkillEffect.OffsetRotation.y, curSkillEffect.OffsetRotation.z, curSkillEffect.OffsetRotation.w); mOffsetScale = curSkillEffect.OffsetScale; mAttach = curSkillEffect.Attach; } lastEffectIndex = effectIndex; GUILayout.BeginHorizontal("box"); mAtttachTime = EditorGUILayout.Slider("AttachTime", mAtttachTime, 0f, 10f); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("AttachPoint"); mLocatorNameIndex = EditorGUILayout.Popup(mLocatorNameIndex, actor.LocatorNames.ToArray()); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("EffectTemplateName"); mEffectName = GUILayout.TextField(mEffectName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); mOffsetPos = EditorGUILayout.Vector3Field("OffsetPos", mOffsetPos); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); mOffsetRotation = EditorGUILayout.Vector4Field("OffsetRotation", mOffsetRotation); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); mOffsetScale = EditorGUILayout.Vector3Field("OffsetScale", mOffsetScale); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); mAttach = EditorGUILayout.Toggle("Attach", mAttach); GUILayout.EndHorizontal(); if (GUILayout.Button("SetSkillEffect")) { GFX.GfxSkillEffect curSkillEffect = actor.Skill.getSkillEffect(effectIndex - 1); curSkillEffect.AttachTime = mAtttachTime; if (actor.LocatorNames[mLocatorNameIndex] == "none") { curSkillEffect.setParameter("AttachPoint", ""); } else { curSkillEffect.setParameter("AttachPoint", actor.LocatorNames[mLocatorNameIndex]); } curSkillEffect.setParameter("EffectTemplateName", mEffectName); curSkillEffect.Attach = mAttach; curSkillEffect.OffsetPos = mOffsetPos; curSkillEffect.OffsetRotation = new Quaternion(mOffsetRotation.x, mOffsetRotation.y, mOffsetRotation.z, mOffsetRotation.w); curSkillEffect.OffsetScale = mOffsetScale; } } GUILayout.BeginHorizontal("box"); GUILayout.BeginHorizontal("box"); if (GUILayout.Button("AddEffect")) { stat = GUI_STATUS.ADDEFFECT; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); if (GUILayout.Button("RemoveEffect")) { removeSkillEffect(); } GUILayout.EndHorizontal(); GUILayout.EndHorizontal(); }