골렘 차일드 스킬2 다단히트로 변경

This commit is contained in:
Ino 2025-05-30 08:38:39 +09:00
parent 51cb718fb0
commit b5315e37f0
4 changed files with 131 additions and 107 deletions

View File

@ -29,89 +29,89 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6375824511339138443}
- {fileID: 3342063792445068335}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &5389208046211158943
GameObject:
--- !u!1001 &3345865209516317653
PrefabInstance:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6375824511339138443}
- component: {fileID: 292154521008100957}
- component: {fileID: 3775451288762826441}
m_Layer: 3
m_Name: Indicator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6375824511339138443
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5389208046211158943}
serializedVersion: 2
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 3, y: 3, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2201136656505196193}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &292154521008100957
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 2201136656505196193}
m_Modifications:
- target: {fileID: 1173698457435006, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_Name
value: Marker 7 Danger zone
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 198706515776294966, guid: a93b07a8595bb0145bc3af1e9911c409,
type: 3}
propertyPath: lengthInSec
value: 3
objectReference: {fileID: 0}
- target: {fileID: 198706515776294966, guid: a93b07a8595bb0145bc3af1e9911c409,
type: 3}
propertyPath: InitialModule.startLifetime.scalar
value: 3
objectReference: {fileID: 0}
- target: {fileID: 198980401682514854, guid: a93b07a8595bb0145bc3af1e9911c409,
type: 3}
propertyPath: lengthInSec
value: 2.5
objectReference: {fileID: 0}
- target: {fileID: 198980401682514854, guid: a93b07a8595bb0145bc3af1e9911c409,
type: 3}
propertyPath: InitialModule.startLifetime.scalar
value: 2.5
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a93b07a8595bb0145bc3af1e9911c409, type: 3}
--- !u!4 &3342063792445068335 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4367129774968826, guid: a93b07a8595bb0145bc3af1e9911c409,
type: 3}
m_PrefabInstance: {fileID: 3345865209516317653}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5389208046211158943}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &3775451288762826441
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5389208046211158943}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 3e1c80888ebc582469572ddac13cc967, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}

View File

@ -9,7 +9,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 2041519526365624679}
- component: {fileID: 3584743580748486036}
- component: {fileID: 338443113752706658}
- component: {fileID: 5485071435884941762}
m_Layer: 0
m_Name: Golem_Child_Skill2
@ -34,7 +34,7 @@ Transform:
- {fileID: 2056933602880048142}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3584743580748486036
--- !u!114 &338443113752706658
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -43,14 +43,19 @@ MonoBehaviour:
m_GameObject: {fileID: 4365863600087615352}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d2fd9d460da6a4d87b4be83a4cdc32, type: 3}
m_Script: {fileID: 11500000, guid: c85446e2e4058a141922972c3cd2888c, type: 3}
m_Name:
m_EditorClassIdentifier:
ColliderLayer: Actor
m_Pierce: 1
m_Pierce: 0
str_HitEffect:
m_ShowTimeOverEffect: 1
ShowTarget: 0
m_Collider: {fileID: 0}
ColliderActiveDealyTime: 2.5
LoopTime: 0.4
Loop: 1
DelayTime: 0.1
ColliderActiveFrame: 1
--- !u!65 &5485071435884941762
BoxCollider:
m_ObjectHideFlags: 0
@ -70,7 +75,7 @@ BoxCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 3, y: 3, z: 3}
m_Size: {x: 5, y: 3, z: 5}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1001 &4651982303332091442
PrefabInstance:

View File

@ -42,8 +42,8 @@ public class Boss_GolemChild : BossMobActor
CoolTime_Skill1 = 1f;
CoolTime_Skill2 = 2f;
//CoolTime_Skill1 = 10000f;
CoolTime_Skill2 = 20000f;
CoolTime_Skill1 = 10000f;
//CoolTime_Skill2 = 20000f;
}
protected override void Init(bool initSkill1CoolTime, bool initSkill2CoolTime)
@ -147,16 +147,19 @@ public class Boss_GolemChild : BossMobActor
dic_indicator[1].transform.position = targetPos;
yield return new WaitForSeconds(Skill2ChargingTime);
dic_indicator[1].SetActive(false);
AnimationPlay("boss_skill2attack");
AnimationPlay("boss_skill2attack"); // 스킬 발사
yield return new WaitForSeconds(1.5f);
yield return new WaitForSeconds(1.0f);
dic_indicator[1].SetActive(false); // 인디케이터 끄기
//yield return new WaitForSeconds(0.5f);
yield return new WaitForSeconds(3f); // 테스트용
Init(false, true);
Check_Battle();
yield return new WaitForSeconds(3.5f);
// 추가 데미지
ProjectileInfo.Ins.Shoot_Projectile("FieldBoss/Golem_Child_Skill2After", this, m_Target, Get_Skill2Dmg(), targetPos, 3f);
//ProjectileInfo.Ins.Shoot_Projectile("FieldBoss/Golem_Child_Skill2After", this, m_Target, Get_Skill2Dmg(), targetPos, 3f);
}
protected override float Get_Skill2Dmg() { return Skill2Dmg; }

View File

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