텔레포트 딜레이 추가

This commit is contained in:
Ino 2025-01-16 07:32:07 +09:00
parent 153c2c132f
commit 8a0c3f1eae
7 changed files with 166 additions and 38 deletions

View File

@ -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}

View File

@ -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

View File

@ -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,

View File

@ -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)

View File

@ -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);
}
}
}
}

View File

@ -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));
});
}
}

View File

@ -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));
}
}