회전 베기

This commit is contained in:
Ino 2025-05-09 15:41:22 +09:00
parent 72e17af2bf
commit ef0181395d
7 changed files with 206 additions and 11 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -0,0 +1,139 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1350445096495842306
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1350445096495842305}
- component: {fileID: 2691850233177647995}
m_Layer: 0
m_Name: Effect_Hit_Skill_SpinSlash
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1350445096495842305
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1350445096495842306}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6634425797090940437}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2691850233177647995
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1350445096495842306}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 456d2bd1c5c2e5e4b8b948836c4975a4, type: 3}
m_Name:
m_EditorClassIdentifier:
NoUseParticleTime: 1
OffTime: 0.5
e_EffectLocation: 0
--- !u!1001 &4075250217066410284
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1350445096495842305}
m_Modifications:
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalScale.x
value: 0.25
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalScale.y
value: 0.25
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalScale.z
value: 0.25
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7249675442437269310, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
propertyPath: m_Name
value: FX_Shoot_02_hit
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: dd2b1ac4a32ca184683f15984f30d88f, type: 3}
--- !u!4 &6634425797090940437 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 7249675442437269305, guid: dd2b1ac4a32ca184683f15984f30d88f,
type: 3}
m_PrefabInstance: {fileID: 4075250217066410284}
m_PrefabAsset: {fileID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c1805a501e37d1a469c05f08c4ce3792
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -46,14 +46,17 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8086c809b8d173d45be2ca40560a681a, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Pierce: 0
str_HitEffect:
m_ShowTimeOverEffect: 1
ColliderLayer: Actor
m_Pierce: 1
str_HitEffect: Effect_Hit_Skill_SpinSlash
m_ShowTimeOverEffect: 0
m_Collider: {fileID: 0}
Loop: 15
DelayTime: 0.25
LoopTime: 3
Loop: 0
DelayTime: 0.1
ColliderActiveFrame: 1
m_speed: 4
m_firstspeed: 10
m_speed: 2
--- !u!65 &646577785751406902
BoxCollider:
m_ObjectHideFlags: 0
@ -148,11 +151,26 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3795761376887037933, guid: 01d7f969ea087264999d466695415a99,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3966090300889708928, guid: 01d7f969ea087264999d466695415a99,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4297842659697493505, guid: 01d7f969ea087264999d466695415a99,
type: 3}
propertyPath: m_Name
value: FX_Whirling Sword
objectReference: {fileID: 0}
- target: {fileID: 4963428307614964137, guid: 01d7f969ea087264999d466695415a99,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []

View File

@ -5,7 +5,9 @@ using UnityEngine;
public class Projectile_StopAndColliderControl : ProjectileBase
{
public Collider m_Collider;
[Header("다단히트 갯수")]
[Header("다단히트 시간(0 이상일 때 우선 적용")]
public float LoopTime = 0f;
[Header("다단히트 갯수(시간이 0이하일 때 적용)")]
public int Loop = 1;
[Header("충돌박스가 꺼졌다 켜지는 시간(0 == 1프레임)")]
public float DelayTime = 1f;
@ -26,14 +28,25 @@ public class Projectile_StopAndColliderControl : ProjectileBase
protected IEnumerator Co_Collider()
{
for (int i = 0; i < Loop; i++)
int loopCount = Loop;
if (LoopTime > 0f)
{
float oneCycleTime = Mathf.Max(DelayTime, Time.deltaTime) + (ColliderActiveFrame / 60f);
loopCount = Mathf.FloorToInt(LoopTime / oneCycleTime);
loopCount = Mathf.Max(loopCount, 1); // 최소 1회는 보장
}
for (int i = 0; i < loopCount; i++)
{
m_Collider.enabled = false;
yield return new WaitForSeconds(DelayTime > 0f ? DelayTime : Time.deltaTime);
m_Collider.enabled = true;
for (int j = 0; j < ColliderActiveFrame; j++)
yield return null;
}
m_Collider.enabled = false;
act_End?.Invoke();
act_End = null;

View File

@ -3,12 +3,22 @@ using UnityEngine;
public class Skill_SpinSlash : Projectile_StopAndColliderControl
{
[Header("처음 이동 속도")]
public float m_firstspeed = 4f;
[Header("이동 속도")]
public float m_speed = 2f;
bool hitStart;
public override void Set(ProjectileData _data)
{
hitStart = false;
_data.eStartPos = eProjectileStartPos.ShooterCenter;
_data.Action_OnHit = hitter =>
{
hitStart = true;
hitter.Attract(transform.position);
};
base.Set(_data);
LookAt_ShooterFoward();
StartCoroutine(Co_Update());
@ -17,14 +27,22 @@ public class Skill_SpinSlash : Projectile_StopAndColliderControl
IEnumerator Co_Update()
{
yield return new WaitForSeconds(0.5f);
while (!hitStart)
{
yield return null;
if (DSUtil.CheckNull(m_ProjecTileData.target)) break;
transform.position = Vector3.MoveTowards(transform.position, m_ProjecTileData.target.Get_position(),
m_firstspeed * Time.deltaTime);
}
while (true)
{
yield return null;
if (DSUtil.CheckNull(m_ProjecTileData.target)) break;
transform.position = Vector3.MoveTowards(transform.position, m_ProjecTileData.target.Get_position(),
m_speed * Time.deltaTime);
yield return null;
}
}
}