feat: 보스 패턴 시스템 구현

- BossPatternData SO로 스킬/Wait 스텝 순서와 쿨타임 정의
- UsePatternAction으로 Behavior Graph에서 패턴 실행
- 보스 전용 애니메이션 분리 및 AnimatorOverrideController 정상화

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 18:08:06 +09:00
parent 03e1b1303c
commit 309bf5f48b
19 changed files with 565 additions and 321 deletions

View File

@@ -156,7 +156,7 @@ AnimatorState:
m_MirrorParameterActive: 0 m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0 m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0 m_TimeParameterActive: 0
m_Motion: {fileID: -7717634560727564301, guid: 079bd00af1b92964d8973dcbf2dcd21f, type: 3} m_Motion: {fileID: -7717634560727564301, guid: 4005a77aa7d531742b1de1bec27001b1, type: 3}
m_Tag: m_Tag:
m_SpeedParameter: m_SpeedParameter:
m_MirrorParameter: m_MirrorParameter:

View File

@@ -139,7 +139,7 @@ AnimatorState:
m_MirrorParameterActive: 0 m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0 m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0 m_TimeParameterActive: 0
m_Motion: {fileID: -7717634560727564301, guid: 079bd00af1b92964d8973dcbf2dcd21f, type: 3} m_Motion: {fileID: -7717634560727564301, guid: 0f6fd9302e489b94d96774e2713b1317, type: 3}
m_Tag: m_Tag:
m_SpeedParameter: m_SpeedParameter:
m_MirrorParameter: m_MirrorParameter:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 05b69b4b9ac11f14f8a36997c49e8445 guid: d3e4690f866332b43b86ee7005291cd0
ModelImporter: ModelImporter:
serializedVersion: 22200 serializedVersion: 22200
internalIDToNameTable: [] internalIDToNameTable: []
@@ -15,7 +15,7 @@ ModelImporter:
resampleCurves: 1 resampleCurves: 1
optimizeGameObjects: 0 optimizeGameObjects: 0
removeConstantScaleCurves: 0 removeConstantScaleCurves: 0
motionNodeName: motionNodeName: Root
rigImportErrors: rigImportErrors:
rigImportWarnings: rigImportWarnings:
animationImportErrors: animationImportErrors:
@@ -33,7 +33,7 @@ ModelImporter:
extraUserProperties: [] extraUserProperties: []
clipAnimations: clipAnimations:
- serializedVersion: 16 - serializedVersion: 16
name: A_Attack_LightCombo01A_ReturnToIdle_Sword name: A_Attack_LightCombo01A_ReturnToIdle_RootMotion_Sword
takeName: A_Attack_Light01A_ReturnToIdle takeName: A_Attack_Light01A_ReturnToIdle
internalID: -8265974341663887746 internalID: -8265974341663887746
firstFrame: 25 firstFrame: 25
@@ -46,12 +46,12 @@ ModelImporter:
hasAdditiveReferencePose: 0 hasAdditiveReferencePose: 0
loopTime: 0 loopTime: 0
loopBlend: 0 loopBlend: 0
loopBlendOrientation: 1 loopBlendOrientation: 0
loopBlendPositionY: 1 loopBlendPositionY: 0
loopBlendPositionXZ: 1 loopBlendPositionXZ: 0
keepOriginalOrientation: 1 keepOriginalOrientation: 0
keepOriginalPositionY: 1 keepOriginalPositionY: 1
keepOriginalPositionXZ: 1 keepOriginalPositionXZ: 0
heightFromFeet: 0 heightFromFeet: 0
mirror: 0 mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 079bd00af1b92964d8973dcbf2dcd21f guid: 4005a77aa7d531742b1de1bec27001b1
ModelImporter: ModelImporter:
serializedVersion: 24200 serializedVersion: 24200
internalIDToNameTable: [] internalIDToNameTable: []
@@ -15,7 +15,7 @@ ModelImporter:
resampleCurves: 1 resampleCurves: 1
optimizeGameObjects: 0 optimizeGameObjects: 0
removeConstantScaleCurves: 0 removeConstantScaleCurves: 0
motionNodeName: motionNodeName: Root
animationImportErrors: animationImportErrors:
animationImportWarnings: animationImportWarnings:
animationRetargetingWarnings: animationRetargetingWarnings:
@@ -31,7 +31,7 @@ ModelImporter:
extraUserProperties: [] extraUserProperties: []
clipAnimations: clipAnimations:
- serializedVersion: 16 - serializedVersion: 16
name: A_Attack_LightCombo01A_Sword name: A_Attack_LightCombo01A_RootMotion_Sword
takeName: A_Attack_Light01A takeName: A_Attack_Light01A
internalID: -7717634560727564301 internalID: -7717634560727564301
firstFrame: 1 firstFrame: 1
@@ -47,36 +47,22 @@ ModelImporter:
loopBlendOrientation: 1 loopBlendOrientation: 1
loopBlendPositionY: 1 loopBlendPositionY: 1
loopBlendPositionXZ: 1 loopBlendPositionXZ: 1
keepOriginalOrientation: 1 keepOriginalOrientation: 0
keepOriginalPositionY: 1 keepOriginalPositionY: 1
keepOriginalPositionXZ: 1 keepOriginalPositionXZ: 0
heightFromFeet: 0 heightFromFeet: 0
mirror: 0 mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: [] curves: []
events: events:
- time: 0.4590326 - time: 0.4984817
functionName: OnEffect
data:
objectReferenceParameter: {instanceID: 0}
floatParameter: 0
intParameter: 1
messageOptions: 0
- time: 0.46052074
functionName: OnEffect
data:
objectReferenceParameter: {instanceID: 0}
floatParameter: 0
intParameter: 2
messageOptions: 0
- time: 0.4627699
functionName: OnEffect functionName: OnEffect
data: data:
objectReferenceParameter: {instanceID: 0} objectReferenceParameter: {instanceID: 0}
floatParameter: 0 floatParameter: 0
intParameter: 0 intParameter: 0
messageOptions: 0 messageOptions: 0
- time: 1 - time: 0.9981159
functionName: OnSkillEnd functionName: OnSkillEnd
data: data:
objectReferenceParameter: {instanceID: 0} objectReferenceParameter: {instanceID: 0}
@@ -196,7 +182,7 @@ ModelImporter:
maskSource: {fileID: 31900000, guid: ebc8800d7aef22a4aa95591cd452157d, type: 2} maskSource: {fileID: 31900000, guid: ebc8800d7aef22a4aa95591cd452157d, type: 2}
additiveReferencePoseFrame: 1 additiveReferencePoseFrame: 1
- serializedVersion: 16 - serializedVersion: 16
name: A_Attack_LightCombo01A_WindUp_Sword name: A_Attack_LightCombo01A_WindUp_RootMotion_Sword
takeName: A_Attack_Light01A takeName: A_Attack_Light01A
internalID: -3664902444864169318 internalID: -3664902444864169318
firstFrame: 1 firstFrame: 1
@@ -209,12 +195,12 @@ ModelImporter:
hasAdditiveReferencePose: 0 hasAdditiveReferencePose: 0
loopTime: 0 loopTime: 0
loopBlend: 0 loopBlend: 0
loopBlendOrientation: 1 loopBlendOrientation: 0
loopBlendPositionY: 1 loopBlendPositionY: 0
loopBlendPositionXZ: 1 loopBlendPositionXZ: 0
keepOriginalOrientation: 1 keepOriginalOrientation: 0
keepOriginalPositionY: 1 keepOriginalPositionY: 1
keepOriginalPositionXZ: 1 keepOriginalPositionXZ: 0
heightFromFeet: 0 heightFromFeet: 0
mirror: 0 mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
@@ -333,7 +319,7 @@ ModelImporter:
maskSource: {fileID: 31900000, guid: ebc8800d7aef22a4aa95591cd452157d, type: 2} maskSource: {fileID: 31900000, guid: ebc8800d7aef22a4aa95591cd452157d, type: 2}
additiveReferencePoseFrame: 1 additiveReferencePoseFrame: 1
- serializedVersion: 16 - serializedVersion: 16
name: A_Attack_LightCombo01A_Hit_Sword name: A_Attack_LightCombo01A_Hit_RootMotion_Sword
takeName: A_Attack_Light01A takeName: A_Attack_Light01A
internalID: 5609185257447268413 internalID: 5609185257447268413
firstFrame: 11 firstFrame: 11
@@ -346,12 +332,12 @@ ModelImporter:
hasAdditiveReferencePose: 0 hasAdditiveReferencePose: 0
loopTime: 0 loopTime: 0
loopBlend: 0 loopBlend: 0
loopBlendOrientation: 1 loopBlendOrientation: 0
loopBlendPositionY: 1 loopBlendPositionY: 0
loopBlendPositionXZ: 1 loopBlendPositionXZ: 0
keepOriginalOrientation: 1 keepOriginalOrientation: 0
keepOriginalPositionY: 1 keepOriginalPositionY: 1
keepOriginalPositionXZ: 1 keepOriginalPositionXZ: 0
heightFromFeet: 0 heightFromFeet: 0
mirror: 0 mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
@@ -470,7 +456,7 @@ ModelImporter:
maskSource: {fileID: 31900000, guid: ebc8800d7aef22a4aa95591cd452157d, type: 2} maskSource: {fileID: 31900000, guid: ebc8800d7aef22a4aa95591cd452157d, type: 2}
additiveReferencePoseFrame: 1 additiveReferencePoseFrame: 1
- serializedVersion: 16 - serializedVersion: 16
name: A_Attack_LightCombo01A_FollowThrough_Sword name: A_Attack_LightCombo01A_FollowThrough_RootMotion_Sword
takeName: A_Attack_Light01A takeName: A_Attack_Light01A
internalID: -2249959126892459381 internalID: -2249959126892459381
firstFrame: 15 firstFrame: 15
@@ -483,12 +469,12 @@ ModelImporter:
hasAdditiveReferencePose: 0 hasAdditiveReferencePose: 0
loopTime: 0 loopTime: 0
loopBlend: 0 loopBlend: 0
loopBlendOrientation: 1 loopBlendOrientation: 0
loopBlendPositionY: 1 loopBlendPositionY: 0
loopBlendPositionXZ: 1 loopBlendPositionXZ: 0
keepOriginalOrientation: 1 keepOriginalOrientation: 0
keepOriginalPositionY: 1 keepOriginalPositionY: 1
keepOriginalPositionXZ: 1 keepOriginalPositionXZ: 0
heightFromFeet: 0 heightFromFeet: 0
mirror: 0 mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000

View File

@@ -145,8 +145,8 @@ MonoBehaviour:
rid: 8805855836547055694 rid: 8805855836547055694
BlackboardGroupReferences: [] BlackboardGroupReferences: []
Root: Root:
rid: 8805855941168464690 rid: 8805855956374126792
m_VersionTimestamp: 639092257330260006 m_VersionTimestamp: 639092810721857513
- rid: 8805855836547055694 - rid: 8805855836547055694
type: {class: BlackboardReference, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: BlackboardReference, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
@@ -220,7 +220,119 @@ MonoBehaviour:
m_Value1: 14990413519379198129 m_Value1: 14990413519379198129
Name: Die Name: Die
m_Value: 0 m_Value: 0
- rid: 8805855941168464690 - rid: 8805855956374126726
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 0
- rid: 8805855956374126727
type: {class: 'BlackboardVariable`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 1
- rid: 8805855956374126728
type: {class: 'BlackboardVariable`1[[System.String, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: Player
- rid: 8805855956374126729
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 10
- rid: 8805855956374126736
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 1
- rid: 8805855956374126737
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 1
- rid: 8805855956374126738
type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: {fileID: 0}
- rid: 8805855956374126745
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 5
- rid: 8805855956374126746
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 10
- rid: 8805855956374126747
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 5
- rid: 8805855956374126749
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 10
- rid: 8805855956374126750
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 5
- rid: 8805855956374126751
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 0
- rid: 8805855956374126752
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 2
- rid: 8805855956374126792
type: {class: Start, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: Start, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
ID: ID:
@@ -231,10 +343,10 @@ MonoBehaviour:
m_Parent: m_Parent:
rid: -2 rid: -2
m_Child: m_Child:
rid: 8805855941168464691 rid: 8805855956374126793
Repeat: 0 Repeat: 0
AllowMultipleRepeatsPerTick: 0 AllowMultipleRepeatsPerTick: 0
- rid: 8805855941168464691 - rid: 8805855956374126793
type: {class: RepeaterModifier, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: RepeaterModifier, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
ID: ID:
@@ -243,11 +355,11 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464690 rid: 8805855956374126792
m_Child: m_Child:
rid: 8805855941168464692 rid: 8805855956374126794
m_AllowMultipleRepeatsPerTick: 0 m_AllowMultipleRepeatsPerTick: 0
- rid: 8805855941168464692 - rid: 8805855956374126794
type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
ID: ID:
@@ -256,21 +368,21 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464691 rid: 8805855956374126793
m_Children: m_Children:
- rid: 8805855941168464693 - rid: 8805855956374126795
m_RegisteredObservers: [] m_RegisteredObservers: []
m_Conditions: m_Conditions:
- rid: 8805855941168464694 - rid: 8805855956374126796
m_RequiresAllConditions: 0 m_RequiresAllConditions: 0
True: True:
rid: -2 rid: -2
False: False:
rid: 8805855941168464693 rid: 8805855956374126795
m_CurrentChild: m_CurrentChild:
rid: -2 rid: -2
m_ObserverType: 0 m_ObserverType: 0
- rid: 8805855941168464693 - rid: 8805855956374126795
type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
ID: ID:
@@ -279,12 +391,12 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464692 rid: 8805855956374126794
m_Children: m_Children:
- rid: 8805855941168464695 - rid: 8805855956374126797
- rid: 8805855941168464696 - rid: 8805855956374126798
m_RegisteredObservers: [] m_RegisteredObservers: []
- rid: 8805855941168464694 - rid: 8805855956374126796
type: {class: VariableComparisonCondition, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: VariableComparisonCondition, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
Graph: Graph:
@@ -292,10 +404,10 @@ MonoBehaviour:
Variable: Variable:
rid: 8805855941168464577 rid: 8805855941168464577
Operator: Operator:
rid: 8805855941168464697 rid: 8805855956374126726
ComparisonValue: ComparisonValue:
rid: 8805855941168464698 rid: 8805855956374126727
- rid: 8805855941168464695 - rid: 8805855956374126797
type: {class: SetTargetInRangeAction, ns: , asm: Colosseum.Game} type: {class: SetTargetInRangeAction, ns: , asm: Colosseum.Game}
data: data:
ID: ID:
@@ -304,14 +416,14 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464693 rid: 8805855956374126795
Target: Target:
rid: 8805855941168464573 rid: 8805855941168464573
Tag: Tag:
rid: 8805855941168464699 rid: 8805855956374126728
Range: Range:
rid: 8805855941168464700 rid: 8805855956374126729
- rid: 8805855941168464696 - rid: 8805855956374126798
type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
ID: ID:
@@ -320,54 +432,22 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464693 rid: 8805855956374126795
m_Children: m_Children:
- rid: 8805855941168464701 - rid: 8805855956374126799
- rid: 8805855941168464702 - rid: 8805855956374126800
m_RegisteredObservers: [] m_RegisteredObservers: []
m_Conditions: m_Conditions:
- rid: 8805855941168464703 - rid: 8805855956374126801
m_RequiresAllConditions: 0 m_RequiresAllConditions: 0
True: True:
rid: 8805855941168464701 rid: 8805855956374126799
False: False:
rid: 8805855941168464702 rid: 8805855956374126800
m_CurrentChild: m_CurrentChild:
rid: -2 rid: -2
m_ObserverType: 0 m_ObserverType: 0
- rid: 8805855941168464697 - rid: 8805855956374126799
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 0
- rid: 8805855941168464698
type: {class: 'BlackboardVariable`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 1
- rid: 8805855941168464699
type: {class: 'BlackboardVariable`1[[System.String, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: Player
- rid: 8805855941168464700
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 10
- rid: 8805855941168464701
type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
ID: ID:
@@ -376,22 +456,22 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464696 rid: 8805855956374126798
m_Children: m_Children:
- rid: 8805855941168464704 - rid: 8805855956374126802
- rid: 8805855941168464705 - rid: 8805855956374126803
m_RegisteredObservers: [] m_RegisteredObservers: []
m_Conditions: m_Conditions:
- rid: 8805855941168464706 - rid: 8805855956374126804
m_RequiresAllConditions: 0 m_RequiresAllConditions: 0
True: True:
rid: 8805855941168464704 rid: 8805855956374126802
False: False:
rid: 8805855941168464705 rid: 8805855956374126803
m_CurrentChild: m_CurrentChild:
rid: -2 rid: -2
m_ObserverType: 0 m_ObserverType: 0
- rid: 8805855941168464702 - rid: 8805855956374126800
type: {class: WaitAction, ns: , asm: Colosseum.Game} type: {class: WaitAction, ns: , asm: Colosseum.Game}
data: data:
ID: ID:
@@ -400,10 +480,10 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464696 rid: 8805855956374126798
Duration: Duration:
rid: 8805855941168464707 rid: 8805855956374126736
- rid: 8805855941168464703 - rid: 8805855956374126801
type: {class: VariableComparisonCondition, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: VariableComparisonCondition, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
Graph: Graph:
@@ -411,10 +491,10 @@ MonoBehaviour:
Variable: Variable:
rid: 8805855941168464573 rid: 8805855941168464573
Operator: Operator:
rid: 8805855941168464708 rid: 8805855956374126737
ComparisonValue: ComparisonValue:
rid: 8805855941168464709 rid: 8805855956374126738
- rid: 8805855941168464704 - rid: 8805855956374126802
type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
ID: ID:
@@ -423,12 +503,12 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464701 rid: 8805855956374126799
m_Children: m_Children:
- rid: 8805855941168464710 - rid: 8805855956374126805
- rid: 8805855941168464711 - rid: 8805855956374126806
m_RegisteredObservers: [] m_RegisteredObservers: []
- rid: 8805855941168464705 - rid: 8805855956374126803
type: {class: ParallelAllComposite, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: ParallelAllComposite, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
ID: ID:
@@ -437,49 +517,25 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464701 rid: 8805855956374126799
m_Children: m_Children:
- rid: 8805855941168464712 - rid: 8805855956374126807
- rid: 8805855941168464713 - rid: 8805855956374126808
m_RegisteredObservers: [] m_RegisteredObservers: []
- rid: 8805855941168464706 - rid: 8805855956374126804
type: {class: CheckDistanceCondition, ns: Unity.Behavior, asm: Unity.Behavior} type: {class: CheckDistanceCondition, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
Transform: Transform:
rid: 8805855941168464714 rid: 8805855956374126809
Target: Target:
rid: 8805855941168464715 rid: 8805855956374126810
Operator: Operator:
rid: 8805855941168464716 rid: 8805855956374126745
Threshold: Threshold:
rid: 8805855941168464572 rid: 8805855941168464572
- rid: 8805855941168464707 - rid: 8805855956374126805
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 1
- rid: 8805855941168464708
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 1
- rid: 8805855941168464709
type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: {fileID: 0}
- rid: 8805855941168464710
type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game} type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game}
data: data:
ID: ID:
@@ -488,26 +544,27 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464704 rid: 8805855956374126802
Target: Target:
rid: 8805855941168464573 rid: 8805855941168464573
RotationSpeed: RotationSpeed:
rid: 8805855941168464717 rid: 8805855956374126746
AngleThreshold: AngleThreshold:
rid: 8805855941168464718 rid: 8805855956374126747
- rid: 8805855941168464711 - rid: 8805855956374126806
type: {class: UseSkillAction, ns: , asm: Colosseum.Game} type: {class: SelectorComposite, ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
ID: ID:
m_Value0: 4635061544341080751 m_Value0: 1213596326002826456
m_Value1: 17453988481007680603 m_Value1: 9846416129968350328
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464704 rid: 8805855956374126802
"\uC2A4\uD0AC": m_Children:
rid: 8805855941168464576 - rid: 8805855956374126811
- rid: 8805855941168464712 m_RegisteredObservers: []
- rid: 8805855956374126807
type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game} type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game}
data: data:
ID: ID:
@@ -516,14 +573,14 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464705 rid: 8805855956374126803
Target: Target:
rid: 8805855941168464573 rid: 8805855941168464573
RotationSpeed: RotationSpeed:
rid: 8805855941168464719 rid: 8805855956374126749
AngleThreshold: AngleThreshold:
rid: 8805855941168464720 rid: 8805855956374126750
- rid: 8805855941168464713 - rid: 8805855956374126808
type: {class: ChaseTargetAction, ns: , asm: Colosseum.Game} type: {class: ChaseTargetAction, ns: , asm: Colosseum.Game}
data: data:
ID: ID:
@@ -532,14 +589,14 @@ MonoBehaviour:
Graph: Graph:
rid: 8805855836547055693 rid: 8805855836547055693
m_Parent: m_Parent:
rid: 8805855941168464705 rid: 8805855956374126803
Target: Target:
rid: 8805855941168464573 rid: 8805855941168464573
Speed: Speed:
rid: 8805855941168464721 rid: 8805855956374126751
StopDistance: StopDistance:
rid: 8805855941168464722 rid: 8805855956374126752
- rid: 8805855941168464714 - rid: 8805855956374126809
type: {class: 'GameObjectToComponentBlackboardVariable`1[[UnityEngine.Transform, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} type: {class: 'GameObjectToComponentBlackboardVariable`1[[UnityEngine.Transform, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
GUID: GUID:
@@ -549,7 +606,7 @@ MonoBehaviour:
m_Value: {fileID: 0} m_Value: {fileID: 0}
m_LinkedVariable: m_LinkedVariable:
rid: 8805855941168464571 rid: 8805855941168464571
- rid: 8805855941168464715 - rid: 8805855956374126810
type: {class: 'GameObjectToComponentBlackboardVariable`1[[UnityEngine.Transform, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} type: {class: 'GameObjectToComponentBlackboardVariable`1[[UnityEngine.Transform, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
GUID: GUID:
@@ -559,62 +616,26 @@ MonoBehaviour:
m_Value: {fileID: 0} m_Value: {fileID: 0}
m_LinkedVariable: m_LinkedVariable:
rid: 8805855941168464573 rid: 8805855941168464573
- rid: 8805855941168464716 - rid: 8805855956374126811
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior} type: {class: UsePatternAction, ns: , asm: Colosseum.Game}
data:
ID:
m_Value0: 8803463902102802735
m_Value1: 11879507492776070900
Graph:
rid: 8805855836547055693
m_Parent:
rid: 8805855956374126806
Pattern:
rid: 8805855956374126812
- rid: 8805855956374126812
type: {class: 'BlackboardVariable`1[[Colosseum.AI.BossPatternData, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior}
data: data:
GUID: GUID:
m_Value0: 0 m_Value0: 0
m_Value1: 0 m_Value1: 0
Name: Name:
m_Value: 5 m_Value: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2}
- rid: 8805855941168464717
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 10
- rid: 8805855941168464718
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 5
- rid: 8805855941168464719
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 10
- rid: 8805855941168464720
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 5
- rid: 8805855941168464721
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 0
- rid: 8805855941168464722
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: 2
--- !u!114 &11400000 --- !u!114 &11400000
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -643,12 +664,13 @@ MonoBehaviour:
- rid: 8805855841097089765 - rid: 8805855841097089765
- rid: 8805855841097089766 - rid: 8805855841097089766
- rid: 8805855846311395415 - rid: 8805855846311395415
- rid: 8805855846311395454
- rid: 8805855941168464148 - rid: 8805855941168464148
- rid: 8805855941168464149 - rid: 8805855941168464149
- rid: 8805855941168464150 - rid: 8805855941168464150
- rid: 8805855941168464612 - rid: 8805855941168464612
m_VersionTimestamp: 639092257330260006 - rid: 8805855948962791632
- rid: 8805855956374126770
m_VersionTimestamp: 639092810721857513
m_SerializedVersion: 2 m_SerializedVersion: 2
m_DebugInfo: {fileID: -6758363554468061369} m_DebugInfo: {fileID: -6758363554468061369}
m_RuntimeGraph: {fileID: -3933356984444701103} m_RuntimeGraph: {fileID: -3933356984444701103}
@@ -782,21 +804,6 @@ MonoBehaviour:
Variables: [] Variables: []
NamedChildren: [] NamedChildren: []
IsPlaceholder: 0 IsPlaceholder: 0
- Name: Use Skill
Story: "[\uC2A4\uD0AC] \uC0AC\uC6A9"
RuntimeTypeString: UseSkillAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=null
RuntimeTypeID:
m_Value0: 12860304689956036473
m_Value1: 13342401439750041301
Variables:
- Name: "\uC2A4\uD0AC"
Type:
m_SerializableType: Colosseum.Skills.SkillData, Colosseum.Game, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
Tooltip:
NamedChildren: []
IsPlaceholder: 0
- Name: Repeat - Name: Repeat
Story: Story:
RuntimeTypeString: Unity.Behavior.RepeaterModifier, Unity.Behavior, Version=0.0.0.0, RuntimeTypeString: Unity.Behavior.RepeaterModifier, Unity.Behavior, Version=0.0.0.0,
@@ -807,6 +814,31 @@ MonoBehaviour:
Variables: [] Variables: []
NamedChildren: [] NamedChildren: []
IsPlaceholder: 0 IsPlaceholder: 0
- Name: Use Pattern
Story: "[Pattern] \uC2E4\uD589"
RuntimeTypeString: UsePatternAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=null
RuntimeTypeID:
m_Value0: 13305875091066958497
m_Value1: 15475974310776131785
Variables:
- Name: Pattern
Type:
m_SerializableType: Colosseum.AI.BossPatternData, Colosseum.Game, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
Tooltip:
NamedChildren: []
IsPlaceholder: 0
- Name: Try In Order
Story:
RuntimeTypeString: Unity.Behavior.SelectorComposite, Unity.Behavior, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
RuntimeTypeID:
m_Value0: 11477120919463386923
m_Value1: 7730102824742023565
Variables: []
NamedChildren: []
IsPlaceholder: 0
m_Blackboards: [] m_Blackboards: []
m_MainBlackboardAuthoringAsset: {fileID: -6591390698989283165} m_MainBlackboardAuthoringAsset: {fileID: -6591390698989283165}
m_CommandBuffer: m_CommandBuffer:
@@ -1756,7 +1788,7 @@ MonoBehaviour:
m_NodeModel: m_NodeModel:
rid: 8805855846311395415 rid: 8805855846311395415
m_Connections: m_Connections:
- rid: 8805855846311395455 - rid: 8805855956374126771
- rid: 8805855846311395418 - rid: 8805855846311395418
type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
data: data:
@@ -1824,73 +1856,6 @@ MonoBehaviour:
m_Value1: 0 m_Value1: 0
Name: Name:
m_Value: 5 m_Value: 5
- rid: 8805855846311395454
type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
data:
Position: {x: 665.8387, y: 644.6723}
ID:
m_Value0: 4635061544341080751
m_Value1: 17453988481007680603
Parents: []
PortModels:
- rid: 8805855846311395455
- rid: 8805855846311395456
NodeType:
m_SerializableType: UseSkillAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=null
NodeTypeID:
m_Value0: 12860304689956036473
m_Value1: 13342401439750041301
m_FieldValues:
- rid: 8805855846311395457
- rid: 8805855846311395455
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
data:
m_Name: InputPort
m_PortDataFlowType: 0
m_IsFloating: 0
m_NodeModel:
rid: 8805855846311395454
m_Connections:
- rid: 8805855846311395417
- rid: 8805855846311395456
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
data:
m_Name: OutputPort
m_PortDataFlowType: 1
m_IsFloating: 0
m_NodeModel:
rid: 8805855846311395454
m_Connections: []
- rid: 8805855846311395457
type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
data:
FieldName: "\uC2A4\uD0AC"
Type:
m_SerializableType: Colosseum.Skills.SkillData, Colosseum.Game, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
LocalValue:
rid: 8805855846311395458
LinkedVariable:
rid: 8805855846311395476
- rid: 8805855846311395458
type: {class: 'BlackboardVariable`1[[Colosseum.Skills.SkillData, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: {fileID: 0}
- rid: 8805855846311395476
type: {class: 'TypedVariableModel`1[[Colosseum.Skills.SkillData, Colosseum.Game]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
data:
ID:
m_Value0: 15894527964846533412
m_Value1: 3771131609012049390
Name: Default Attack Skill
IsExposed: 1
m_IsShared: 0
m_Value: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
- rid: 8805855941168464148 - rid: 8805855941168464148
type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
data: data:
@@ -2139,6 +2104,101 @@ MonoBehaviour:
rid: 8805855941168464612 rid: 8805855941168464612
m_Connections: m_Connections:
- rid: 8805855941168464155 - rid: 8805855941168464155
- rid: 8805855948962791632
type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
data:
Position: {x: 587.1919, y: 730.68475}
ID:
m_Value0: 8803463902102802735
m_Value1: 11879507492776070900
Parents: []
PortModels:
- rid: 8805855948962791633
- rid: 8805855948962791634
NodeType:
m_SerializableType: UsePatternAction, Colosseum.Game, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
NodeTypeID:
m_Value0: 13305875091066958497
m_Value1: 15475974310776131785
m_FieldValues:
- rid: 8805855948962791636
- rid: 8805855948962791633
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
data:
m_Name: InputPort
m_PortDataFlowType: 0
m_IsFloating: 0
m_NodeModel:
rid: 8805855948962791632
m_Connections:
- rid: 8805855956374126772
- rid: 8805855948962791634
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
data:
m_Name: OutputPort
m_PortDataFlowType: 1
m_IsFloating: 0
m_NodeModel:
rid: 8805855948962791632
m_Connections: []
- rid: 8805855948962791636
type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
data:
FieldName: Pattern
Type:
m_SerializableType: Colosseum.AI.BossPatternData, Colosseum.Game, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
LocalValue:
rid: 8805855948962791638
LinkedVariable:
rid: -2
- rid: 8805855948962791638
type: {class: 'BlackboardVariable`1[[Colosseum.AI.BossPatternData, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior}
data:
GUID:
m_Value0: 0
m_Value1: 0
Name:
m_Value: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2}
- rid: 8805855956374126770
type: {class: CompositeNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
data:
Position: {x: 666.3364, y: 639.8787}
ID:
m_Value0: 1213596326002826456
m_Value1: 9846416129968350328
Parents: []
PortModels:
- rid: 8805855956374126771
- rid: 8805855956374126772
NodeType:
m_SerializableType: Unity.Behavior.SelectorComposite, Unity.Behavior, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
NodeTypeID:
m_Value0: 11477120919463386923
m_Value1: 7730102824742023565
m_FieldValues: []
- rid: 8805855956374126771
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
data:
m_Name: InputPort
m_PortDataFlowType: 0
m_IsFloating: 0
m_NodeModel:
rid: 8805855956374126770
m_Connections:
- rid: 8805855846311395417
- rid: 8805855956374126772
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
data:
m_Name: OutputPort
m_PortDataFlowType: 1
m_IsFloating: 0
m_NodeModel:
rid: 8805855956374126770
m_Connections:
- rid: 8805855948962791633
--- !u!114 &6694785542709420471 --- !u!114 &6694785542709420471
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -0,0 +1,26 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3}
m_Name: "P_TestBoss_\uC6B0\uC2182\uC5F0\uD0C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData
patternName: "\uAE30\uBCF8 \uD328\uD134"
steps:
- Type: 0
Skill: {fileID: 11400000, guid: 4f40629d4d334434285e8fdec3714536, type: 2}
Duration: 0
- Type: 1
Skill: {fileID: 0}
Duration: 0.5
- Type: 0
Skill: {fileID: 11400000, guid: 4f40629d4d334434285e8fdec3714536, type: 2}
Duration: 0
cooldown: 5

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5efd8123be76bf844875d386d9d5f73d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -293,7 +293,7 @@ MonoBehaviour:
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillController m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillController
animator: {fileID: 3426985706796420257} animator: {fileID: 3426985706796420257}
baseController: {fileID: 9100000, guid: db718381bb2992e469c76c64015e065b, type: 2} baseController: {fileID: 9100000, guid: db718381bb2992e469c76c64015e065b, type: 2}
baseSkillClip: {fileID: -7717634560727564301, guid: 079bd00af1b92964d8973dcbf2dcd21f, type: 3} baseSkillClip: {fileID: -7717634560727564301, guid: 0f6fd9302e489b94d96774e2713b1317, type: 3}
debugMode: 1 debugMode: 1
showAreaDebug: 1 showAreaDebug: 1
debugDrawDuration: 1 debugDrawDuration: 1

View File

@@ -2496,6 +2496,10 @@ PrefabInstance:
propertyPath: m_Layer propertyPath: m_Layer
value: 6 value: 6
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8818883032728065057, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
propertyPath: baseSkillClip
value:
objectReference: {fileID: -7717634560727564301, guid: 4005a77aa7d531742b1de1bec27001b1, type: 3}
- target: {fileID: 8949738738676772673, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3} - target: {fileID: 8949738738676772673, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
propertyPath: m_Layer propertyPath: m_Layer
value: 6 value: 6

View File

@@ -0,0 +1,117 @@
using System;
using Colosseum.AI;
using Colosseum.Skills;
using Unity.Behavior;
using Unity.Properties;
using UnityEngine;
using Action = Unity.Behavior.Action;
/// <summary>
/// 보스 패턴을 실행하는 Behavior Tree Action.
/// 패턴 내 스텝(스킬 또는 대기)을 순서대로 실행하며, 패턴 쿨타임을 관리합니다.
/// </summary>
[Serializable, GeneratePropertyBag]
[NodeDescription(name: "Use Pattern", story: "[Pattern] ", category: "Action", id: "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6")]
public partial class UsePatternAction : Action
{
[SerializeReference] public BlackboardVariable<BossPatternData> Pattern;
private SkillController skillController;
private int currentStepIndex;
private float waitEndTime;
private bool isWaiting;
private float lastUsedTime = float.MinValue;
protected override Status OnStart()
{
if (Pattern?.Value == null)
{
Debug.LogWarning("[UsePatternAction] 패턴이 null입니다.");
return Status.Failure;
}
if (Time.time - lastUsedTime < Pattern.Value.Cooldown)
{
return Status.Failure;
}
if (Pattern.Value.Steps.Count == 0)
{
return Status.Failure;
}
skillController = GameObject.GetComponent<SkillController>();
if (skillController == null)
{
Debug.LogWarning($"[UsePatternAction] SkillController를 찾을 수 없습니다: {GameObject.name}");
return Status.Failure;
}
currentStepIndex = 0;
isWaiting = false;
return ExecuteCurrentStep();
}
protected override Status OnUpdate()
{
if (skillController == null)
return Status.Failure;
if (isWaiting)
{
if (Time.time < waitEndTime)
return Status.Running;
isWaiting = false;
}
else
{
if (skillController.IsPlayingAnimation)
return Status.Running;
}
currentStepIndex++;
if (currentStepIndex >= Pattern.Value.Steps.Count)
{
lastUsedTime = Time.time;
return Status.Success;
}
return ExecuteCurrentStep();
}
protected override void OnEnd()
{
skillController = null;
}
private Status ExecuteCurrentStep()
{
PatternStep step = Pattern.Value.Steps[currentStepIndex];
if (step.Type == PatternStepType.Wait)
{
isWaiting = true;
waitEndTime = Time.time + step.Duration;
return Status.Running;
}
// PatternStepType.Skill
if (step.Skill == null)
{
Debug.LogWarning($"[UsePatternAction] 스킬이 null입니다. (index {currentStepIndex})");
return Status.Failure;
}
bool success = skillController.ExecuteSkill(step.Skill);
if (!success)
{
Debug.LogWarning($"[UsePatternAction] 스킬 실행 실패: {step.Skill.SkillName} (index {currentStepIndex})");
return Status.Failure;
}
return Status.Running;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a696fff0581f7264d9491514e9aee277

View File

@@ -0,0 +1,38 @@
using UnityEngine;
using System.Collections.Generic;
using Colosseum.Skills;
namespace Colosseum.AI
{
public enum PatternStepType { Skill, Wait }
[System.Serializable]
public class PatternStep
{
public PatternStepType Type = PatternStepType.Skill;
public SkillData Skill;
[Min(0f)] public float Duration = 0.5f;
}
/// <summary>
/// 보스 패턴 데이터. 순서대로 실행할 스텝(스킬 또는 대기) 목록과 쿨타임을 정의합니다.
/// </summary>
[CreateAssetMenu(fileName = "NewBossPattern", menuName = "Colosseum/Boss Pattern")]
public class BossPatternData : ScriptableObject
{
[Header("패턴 정보")]
[SerializeField] private string patternName;
[Header("스텝 순서")]
[SerializeField] private List<PatternStep> steps = new List<PatternStep>();
[Header("쿨타임")]
[Min(0f)]
[Tooltip("패턴 완료 후 다시 사용 가능해지기까지의 시간")]
[SerializeField] private float cooldown = 5f;
public string PatternName => patternName;
public IReadOnlyList<PatternStep> Steps => steps;
public float Cooldown => cooldown;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 0ce956e0878565343974c31b8111c0c6

View File

@@ -8,7 +8,8 @@
"Unity.InputSystem", "Unity.InputSystem",
"Unity.TextMeshPro", "Unity.TextMeshPro",
"Unity.Behavior", "Unity.Behavior",
"Unity.Behavior.SerializableGUID" "Unity.Behavior.SerializableGUID",
"Unity.Collections"
], ],
"includePlatforms": [], "includePlatforms": [],
"excludePlatforms": [], "excludePlatforms": [],

View File

@@ -15,8 +15,8 @@ MonoBehaviour:
skillName: "\uBCA0\uAE30" skillName: "\uBCA0\uAE30"
description: description:
icon: {fileID: 0} icon: {fileID: 0}
skillClip: {fileID: -7717634560727564301, guid: 0f6fd9302e489b94d96774e2713b1317, type: 3} skillClip: {fileID: -7717634560727564301, guid: 4005a77aa7d531742b1de1bec27001b1, type: 3}
endClip: {fileID: -8265974341663887746, guid: fbcbf9c09792c924296ac6036e76f6dc, type: 3} endClip: {fileID: -8265974341663887746, guid: d3e4690f866332b43b86ee7005291cd0, type: 3}
useRootMotion: 1 useRootMotion: 1
ignoreRootMotionY: 1 ignoreRootMotionY: 1
cooldown: 1 cooldown: 1