diff --git a/Assets/Res_Addr/Animations/Animation/OneHand/combo06_3_inplace.fbx.meta b/Assets/Res_Addr/Animations/Animation/OneHand/combo06_3_inplace.fbx.meta index 9bf69deda..adce51136 100644 --- a/Assets/Res_Addr/Animations/Animation/OneHand/combo06_3_inplace.fbx.meta +++ b/Assets/Res_Addr/Animations/Animation/OneHand/combo06_3_inplace.fbx.meta @@ -65,9 +65,9 @@ ModelImporter: data: Effect_Teleport objectReferenceParameter: {instanceID: 0} floatParameter: 0 - intParameter: 0 + intParameter: 3 messageOptions: 0 - - time: 0.31938368 + - time: 0.24672593 functionName: SkillEvent data: objectReferenceParameter: {instanceID: 0} diff --git a/Assets/Res_Addr/Animations/pcanim_bladedancer.controller b/Assets/Res_Addr/Animations/pcanim_bladedancer.controller index 89ea164c1..7a3db6615 100644 --- a/Assets/Res_Addr/Animations/pcanim_bladedancer.controller +++ b/Assets/Res_Addr/Animations/pcanim_bladedancer.controller @@ -155,6 +155,28 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1101 &-1864928895291874748 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 110222392} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.6875 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!91 &9100000 AnimatorController: m_ObjectHideFlags: 0 @@ -1873,6 +1895,9 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: -8595439761856317893} m_Position: {x: 240, y: -370, z: 0} + - serializedVersion: 1 + m_State: {fileID: 3454328892865944757} + m_Position: {x: 240, y: -290, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] @@ -2154,6 +2179,33 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1102 &3454328892865944757 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: bd_skill3 + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -1864928895291874748} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 048ab3b1edcfaa84db4050b4b6566b8a, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1102 &4804184176358769930 AnimatorState: serializedVersion: 6 diff --git a/Assets/Res_Addr/Skill/Skill_DashSlash.prefab b/Assets/Res_Addr/Skill/Skill_DashSlash.prefab index 145ac4e53..00b295d7d 100644 --- a/Assets/Res_Addr/Skill/Skill_DashSlash.prefab +++ b/Assets/Res_Addr/Skill/Skill_DashSlash.prefab @@ -10,7 +10,6 @@ GameObject: m_Component: - component: {fileID: 1546606949675769332} - component: {fileID: 5111058809629920574} - - component: {fileID: 142063209341995173} m_Layer: 0 m_Name: Skill_DashSlash m_TagString: Untagged @@ -48,27 +47,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Pierce: 1 str_HitEffect: ---- !u!65 &142063209341995173 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2248026914158479146} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 1 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 3, y: 3, z: 3} - m_Center: {x: 0, y: 0, z: 0} + go_effect: {fileID: 1831299349266973681} --- !u!1001 &1832658455297489783 PrefabInstance: m_ObjectHideFlags: 0 @@ -164,8 +143,56 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 1403155227687046, guid: 4e2074741319b474387d3407224cba5f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 8594722768523727425} + - targetCorrespondingSourceObject: {fileID: 1403155227687046, guid: 4e2074741319b474387d3407224cba5f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 4695122307932267738} m_SourcePrefab: {fileID: 100100000, guid: 4e2074741319b474387d3407224cba5f, type: 3} +--- !u!1 &1831299349266973681 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1403155227687046, guid: 4e2074741319b474387d3407224cba5f, + type: 3} + m_PrefabInstance: {fileID: 1832658455297489783} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8594722768523727425 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1831299349266973681} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a38a032bc645dd748bf40d9200bf783a, type: 3} + m_Name: + m_EditorClassIdentifier: + Off_OnlyThisObj_byHit: 0 +--- !u!65 &4695122307932267738 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1831299349266973681} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 8.322192, y: 8, z: 8} + m_Center: {x: 0.16109625, y: 0, z: -0.37000018} --- !u!4 &1836927718114409633 stripped Transform: m_CorrespondingSourceObject: {fileID: 4781919058806742, guid: 4e2074741319b474387d3407224cba5f, diff --git a/Assets/Script/Character/Actor.cs b/Assets/Script/Character/Actor.cs index 7ab83495c..e895a4c93 100644 --- a/Assets/Script/Character/Actor.cs +++ b/Assets/Script/Character/Actor.cs @@ -831,6 +831,24 @@ public class Actor : MyCoroutine transform.position = targetPos; // 최종 위치 설정 } + public void Set_Invisible(float invisibleTime, Action actVisible) { StartCoroutine(Co_Invisible(invisibleTime, actVisible)); } + IEnumerator Co_Invisible(float invisibleTime, Action actVisible) + { + m_animation.speed = 0f; + m_bImmortal = true; + for (int i = 0; i < arr_Renderer.Length; i++) arr_Renderer[i].enabled = false; + Weapon_OnOff(false); + + yield return new WaitForSeconds(invisibleTime); + + m_animation.speed = 1f; + m_bImmortal = false; + for (int i = 0; i < arr_Renderer.Length; i++) arr_Renderer[i].enabled = true; + Weapon_OnOff(true); + + actVisible?.Invoke(); + } + protected virtual void Weapon_OnOff(bool active) { } #endregion public int Get_ID() { return m_ID; } @@ -844,6 +862,7 @@ public class Actor : MyCoroutine public Vector3 Get_Top_postion() { return tf_HUD_Dmg.position; } public Vector3 Get_CenterPositionFoward(float dist = 1f) { return Get_Center_position() + transform.forward * dist; } public Vector3 Get_PositionFoward(float dist = 1f) { return Get_position() + transform.forward * dist; } + public Vector3 Get_PositionBack(float dist = 1f) { return Get_position() + -transform.forward * dist; } public Vector3 Get_TeleportPostion(float dist = 1f) { var startPos = Get_position(); // 현재 위치 @@ -1651,7 +1670,6 @@ public class Actor : MyCoroutine { case eEffect.Skill_JumpAttack: StartCoroutine(Co_JumpAttack(1f, 0.8f)); break; case eEffect.Skill_FatalBlow: StartCoroutine(Co_JumpAttack(0.8f, 0.6f)); break; - case eEffect.Skill_DashSlash: Set_Warp(Get_TeleportPostion()); break; } if (!string.IsNullOrEmpty(m_Magic.m_SkillTableData.s_CastingEffect)) @@ -1872,12 +1890,19 @@ public class Actor : MyCoroutine if (SettingsMain.Ins) SettingsMain.Ins.Add_Event(System.Reflection.MethodBase.GetCurrentMethod().Name, 3, 0, 0f, s); #endif } - public virtual void ShowEffect(string s) + public virtual void ShowEffect(AnimationEvent s) { #if UNITY_EDITOR - if (SettingsMain.Ins) SettingsMain.Ins.Add_Event(System.Reflection.MethodBase.GetCurrentMethod().Name, 3, 0, 0f, s); + if (SettingsMain.Ins) SettingsMain.Ins.Add_Event(System.Reflection.MethodBase.GetCurrentMethod().Name, 3, + s.intParameter, s.floatParameter, s.stringParameter); #endif - InGameInfo.Ins.Show_Effect(s, Get_Center_position(), transform.eulerAngles); + switch (s.intParameter) + { + case 0: InGameInfo.Ins.Show_Effect(s.stringParameter, Get_Center_position(), transform.eulerAngles); break; + case 1: InGameInfo.Ins.Show_Effect(s.stringParameter, Get_position(), transform.eulerAngles); break; + case 2: InGameInfo.Ins.Show_Effect(s.stringParameter, Get_Center_position()); break; + case 3: InGameInfo.Ins.Show_Effect(s.stringParameter, Get_position()); break; + } } public virtual void Init_CurAnim(bool resetpos) diff --git a/Assets/Script/Character/PCActor.cs b/Assets/Script/Character/PCActor.cs index 3f1c4be1b..79158e180 100644 --- a/Assets/Script/Character/PCActor.cs +++ b/Assets/Script/Character/PCActor.cs @@ -435,4 +435,16 @@ public class PCActor : MyActor transform.localScale = Vector3.one * targetscale; actComplete?.Invoke(); } + + protected override void Weapon_OnOff(bool active) + { + for (int i = 0; i < tfs_weapon.Length; i++) + { + if (tfs_weapon[i].childCount > 0) + { + for (int j = 0; j < tfs_weapon[i].childCount; j++) + tfs_weapon[i].GetChild(j).gameObject.SetActive(active); + } + } + } } \ No newline at end of file diff --git a/Assets/Script/Character/Projectile/Skill/Skill_DashSlash.cs b/Assets/Script/Character/Projectile/Skill/Skill_DashSlash.cs index bd47a732e..71e007815 100644 --- a/Assets/Script/Character/Projectile/Skill/Skill_DashSlash.cs +++ b/Assets/Script/Character/Projectile/Skill/Skill_DashSlash.cs @@ -1,8 +1,19 @@ +using UnityEngine; + public class Skill_DashSlash : ProjectileBase { + public GameObject go_effect; + public override void Set(ProjectileData _data) { base.Set(_data); - StartCoroutine(Co_Off(0.1f)); + go_effect.SetActive(false); + _data.shooter.Set_Invisible(0.5f, () => + { + go_effect.SetActive(true); + _data.shooter.Set_Warp(_data.target.Get_PositionFoward()); + transform.position = _data.shooter.Get_Center_position(); + StartCoroutine(Co_Off(0.1f)); + }); } } \ No newline at end of file diff --git a/Assets/Script/Character/Projectile/Skill/Skill_DeathBlade.cs b/Assets/Script/Character/Projectile/Skill/Skill_DeathBlade.cs index 0bf34e3fe..2a4c17a81 100644 --- a/Assets/Script/Character/Projectile/Skill/Skill_DeathBlade.cs +++ b/Assets/Script/Character/Projectile/Skill/Skill_DeathBlade.cs @@ -1,4 +1,3 @@ -using System.Collections; using UnityEngine; public class Skill_DeathBlade : ProjectileBase @@ -14,14 +13,16 @@ public class Skill_DeathBlade : ProjectileBase _data.LifeTime = lifetime; _data.eStartPos = eProjectileStartPos.ShooterCenter; base.Set(_data); - _data.Action_OnHit = hitter => { }; StartCoroutine(Co_Move_Strait(eProjectileStrait.Forward)); - //StartCoroutine(Co_Update()); - } - IEnumerator Co_Update() - { - yield return new WaitForSeconds(0.2f); - Off(true); + _data.Action_OnHit = hitter => + { // 단검을 맞췄을 경우 + _data.shooter.Set_Invisible(0.5f, () => + { + _data.shooter.Set_Warp(_data.target.Get_PositionBack()); + }); + }; + + StartCoroutine(Co_Off(lifetime)); } } \ No newline at end of file