Compare commits
16 Commits
d28ff21213
...
f3a995d297
| Author | SHA1 | Date | |
|---|---|---|---|
| f3a995d297 | |||
| 91a4d51c5e | |||
| 1955e1fab0 | |||
| 041a83a015 | |||
| 6954e8b80b | |||
| 5238b65dc2 | |||
| e31ecadc81 | |||
| e7e3708c44 | |||
| 067fca11c9 | |||
| 11235e6b2c | |||
| 27c2fdf881 | |||
| aeb4fc2847 | |||
| 00233ee977 | |||
| 0a1aeea825 | |||
| 62306a34a2 | |||
| 5e61dbf7e6 |
13
.gitignore
vendored
13
.gitignore
vendored
@@ -74,3 +74,16 @@ crashlytics-build.properties
|
|||||||
/[Aa]ssets/[Ss]treamingAssets/aa/*
|
/[Aa]ssets/[Ss]treamingAssets/aa/*
|
||||||
|
|
||||||
.vscode
|
.vscode
|
||||||
|
|
||||||
|
|
||||||
|
# External packages (not tracked)
|
||||||
|
Assets/External/SidekickCharacters/
|
||||||
|
Assets/External/SyntyPackageHelper 1/
|
||||||
|
Assets/DownloadCache/
|
||||||
|
|
||||||
|
# Sketchfab files
|
||||||
|
Assets/External_Used/Models/Human-Custom.sk
|
||||||
|
Assets/External_Used/Models/Human-Custom.sk.meta
|
||||||
|
|
||||||
|
# Wwise audio project
|
||||||
|
Colosseum.slnx
|
||||||
|
|||||||
@@ -27,6 +27,53 @@ AnimatorState:
|
|||||||
m_MirrorParameter:
|
m_MirrorParameter:
|
||||||
m_CycleOffsetParameter:
|
m_CycleOffsetParameter:
|
||||||
m_TimeParameter:
|
m_TimeParameter:
|
||||||
|
--- !u!1101 &-7355565198356877363
|
||||||
|
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: 8846385207969213533}
|
||||||
|
m_Solo: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_IsExit: 0
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransitionDuration: 0.25
|
||||||
|
m_TransitionOffset: 0
|
||||||
|
m_ExitTime: 0.8557693
|
||||||
|
m_HasExitTime: 1
|
||||||
|
m_HasFixedDuration: 1
|
||||||
|
m_InterruptionSource: 0
|
||||||
|
m_OrderedInterruption: 1
|
||||||
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1101 &-6146543620670552976
|
||||||
|
AnimatorStateTransition:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name:
|
||||||
|
m_Conditions:
|
||||||
|
- m_ConditionMode: 1
|
||||||
|
m_ConditionEvent: Die
|
||||||
|
m_EventTreshold: 0
|
||||||
|
m_DstStateMachine: {fileID: 0}
|
||||||
|
m_DstState: {fileID: 4717780193306342999}
|
||||||
|
m_Solo: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_IsExit: 0
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransitionDuration: 0.25
|
||||||
|
m_TransitionOffset: 0
|
||||||
|
m_ExitTime: 0.75
|
||||||
|
m_HasExitTime: 0
|
||||||
|
m_HasFixedDuration: 1
|
||||||
|
m_InterruptionSource: 0
|
||||||
|
m_OrderedInterruption: 1
|
||||||
|
m_CanTransitionToSelf: 1
|
||||||
--- !u!1107 &-5279407469294999195
|
--- !u!1107 &-5279407469294999195
|
||||||
AnimatorStateMachine:
|
AnimatorStateMachine:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@@ -44,13 +91,20 @@ AnimatorStateMachine:
|
|||||||
m_Position: {x: 290, y: 180, z: 0}
|
m_Position: {x: 290, y: 180, z: 0}
|
||||||
- serializedVersion: 1
|
- serializedVersion: 1
|
||||||
m_State: {fileID: -2487449162152911812}
|
m_State: {fileID: -2487449162152911812}
|
||||||
m_Position: {x: -210, y: 350, z: 0}
|
m_Position: {x: -220, y: 350, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 4717780193306342999}
|
||||||
|
m_Position: {x: -220, y: 180, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 8846385207969213533}
|
||||||
|
m_Position: {x: -220, y: 80, z: 0}
|
||||||
m_ChildStateMachines: []
|
m_ChildStateMachines: []
|
||||||
m_AnyStateTransitions: []
|
m_AnyStateTransitions:
|
||||||
|
- {fileID: -6146543620670552976}
|
||||||
m_EntryTransitions: []
|
m_EntryTransitions: []
|
||||||
m_StateMachineTransitions: {}
|
m_StateMachineTransitions: {}
|
||||||
m_StateMachineBehaviours: []
|
m_StateMachineBehaviours: []
|
||||||
m_AnyStatePosition: {x: -190, y: 270, z: 0}
|
m_AnyStatePosition: {x: -200, y: 270, z: 0}
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
@@ -192,6 +246,12 @@ AnimatorController:
|
|||||||
m_DefaultInt: 0
|
m_DefaultInt: 0
|
||||||
m_DefaultBool: 0
|
m_DefaultBool: 0
|
||||||
m_Controller: {fileID: 9100000}
|
m_Controller: {fileID: 9100000}
|
||||||
|
- m_Name: Die
|
||||||
|
m_Type: 9
|
||||||
|
m_DefaultFloat: 0
|
||||||
|
m_DefaultInt: 0
|
||||||
|
m_DefaultBool: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
m_AnimatorLayers:
|
m_AnimatorLayers:
|
||||||
- serializedVersion: 5
|
- serializedVersion: 5
|
||||||
m_Name: Base Layer
|
m_Name: Base Layer
|
||||||
@@ -230,6 +290,82 @@ AnimatorStateTransition:
|
|||||||
m_InterruptionSource: 0
|
m_InterruptionSource: 0
|
||||||
m_OrderedInterruption: 1
|
m_OrderedInterruption: 1
|
||||||
m_CanTransitionToSelf: 1
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1102 &4717780193306342999
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Die
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions:
|
||||||
|
- {fileID: -7355565198356877363}
|
||||||
|
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: 8003560683512829103, guid: dce2c044329372a439fffb8c2850a005, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1101 &7571880184799686224
|
||||||
|
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: 8846385207969213533}
|
||||||
|
m_Solo: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_IsExit: 0
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransitionDuration: 0.25
|
||||||
|
m_TransitionOffset: 0
|
||||||
|
m_ExitTime: 1
|
||||||
|
m_HasExitTime: 1
|
||||||
|
m_HasFixedDuration: 0
|
||||||
|
m_InterruptionSource: 0
|
||||||
|
m_OrderedInterruption: 1
|
||||||
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1102 &8846385207969213533
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Death Loop
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions:
|
||||||
|
- {fileID: 7571880184799686224}
|
||||||
|
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: 2473861289378347930, guid: c1982a19fac5e77439ec3efd79eeace2, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
--- !u!1101 &8997152603305261974
|
--- !u!1101 &8997152603305261974
|
||||||
AnimatorStateTransition:
|
AnimatorStateTransition:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
|
|||||||
@@ -76,10 +76,14 @@ AnimatorStateMachine:
|
|||||||
- serializedVersion: 1
|
- serializedVersion: 1
|
||||||
m_State: {fileID: -2487449162152911812}
|
m_State: {fileID: -2487449162152911812}
|
||||||
m_Position: {x: -210, y: 350, z: 0}
|
m_Position: {x: -210, y: 350, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -1032254959699123210}
|
||||||
|
m_Position: {x: -450, y: 270, z: 0}
|
||||||
m_ChildStateMachines: []
|
m_ChildStateMachines: []
|
||||||
m_AnyStateTransitions:
|
m_AnyStateTransitions:
|
||||||
- {fileID: -754003289131015157}
|
- {fileID: -754003289131015157}
|
||||||
- {fileID: 469741948129995159}
|
- {fileID: 469741948129995159}
|
||||||
|
- {fileID: 6228136561094308872}
|
||||||
m_EntryTransitions: []
|
m_EntryTransitions: []
|
||||||
m_StateMachineTransitions: {}
|
m_StateMachineTransitions: {}
|
||||||
m_StateMachineBehaviours: []
|
m_StateMachineBehaviours: []
|
||||||
@@ -180,6 +184,32 @@ BlendTree:
|
|||||||
m_UseAutomaticThresholds: 1
|
m_UseAutomaticThresholds: 1
|
||||||
m_NormalizedBlendValues: 0
|
m_NormalizedBlendValues: 0
|
||||||
m_BlendType: 0
|
m_BlendType: 0
|
||||||
|
--- !u!1102 &-1032254959699123210
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Die
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
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: 8003560683512829103, guid: dce2c044329372a439fffb8c2850a005, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
--- !u!1101 &-754003289131015157
|
--- !u!1101 &-754003289131015157
|
||||||
AnimatorStateTransition:
|
AnimatorStateTransition:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
@@ -287,6 +317,12 @@ AnimatorController:
|
|||||||
m_DefaultInt: 0
|
m_DefaultInt: 0
|
||||||
m_DefaultBool: 0
|
m_DefaultBool: 0
|
||||||
m_Controller: {fileID: 9100000}
|
m_Controller: {fileID: 9100000}
|
||||||
|
- m_Name: Die
|
||||||
|
m_Type: 9
|
||||||
|
m_DefaultFloat: 0
|
||||||
|
m_DefaultInt: 0
|
||||||
|
m_DefaultBool: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
m_AnimatorLayers:
|
m_AnimatorLayers:
|
||||||
- serializedVersion: 5
|
- serializedVersion: 5
|
||||||
m_Name: Base Layer
|
m_Name: Base Layer
|
||||||
@@ -376,6 +412,31 @@ AnimatorStateTransition:
|
|||||||
m_InterruptionSource: 0
|
m_InterruptionSource: 0
|
||||||
m_OrderedInterruption: 1
|
m_OrderedInterruption: 1
|
||||||
m_CanTransitionToSelf: 1
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1101 &6228136561094308872
|
||||||
|
AnimatorStateTransition:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name:
|
||||||
|
m_Conditions:
|
||||||
|
- m_ConditionMode: 1
|
||||||
|
m_ConditionEvent: Die
|
||||||
|
m_EventTreshold: 0
|
||||||
|
m_DstStateMachine: {fileID: 0}
|
||||||
|
m_DstState: {fileID: -1032254959699123210}
|
||||||
|
m_Solo: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_IsExit: 0
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransitionDuration: 0.25
|
||||||
|
m_TransitionOffset: 0
|
||||||
|
m_ExitTime: 0.75
|
||||||
|
m_HasExitTime: 0
|
||||||
|
m_HasFixedDuration: 1
|
||||||
|
m_InterruptionSource: 0
|
||||||
|
m_OrderedInterruption: 1
|
||||||
|
m_CanTransitionToSelf: 1
|
||||||
--- !u!1102 &7693173606830535998
|
--- !u!1102 &7693173606830535998
|
||||||
AnimatorState:
|
AnimatorState:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
|
|||||||
8
Assets/DownloadCache.meta
Normal file
8
Assets/DownloadCache.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b3524abfa3d4c9f498584b333e716880
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/SidekickCharacters.meta
vendored
Normal file
8
Assets/External/SidekickCharacters.meta
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 569053ce0f2871a4db2a276329664b9f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/SyntyPackageHelper 1.meta
vendored
Normal file
8
Assets/External/SyntyPackageHelper 1.meta
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e324deda8be0b2049b8617581b86b5a6
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External_Used/Animations/Death_Default.fbx
Normal file
BIN
Assets/External_Used/Animations/Death_Default.fbx
Normal file
Binary file not shown.
1564
Assets/External_Used/Animations/Death_Default.fbx.meta
Normal file
1564
Assets/External_Used/Animations/Death_Default.fbx.meta
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Assets/External_Used/Animations/Death_Default_Loop.fbx
Normal file
BIN
Assets/External_Used/Animations/Death_Default_Loop.fbx
Normal file
Binary file not shown.
1564
Assets/External_Used/Animations/Death_Default_Loop.fbx.meta
Normal file
1564
Assets/External_Used/Animations/Death_Default_Loop.fbx.meta
Normal file
File diff suppressed because it is too large
Load Diff
@@ -55,14 +55,7 @@ ModelImporter:
|
|||||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
curves: []
|
curves: []
|
||||||
events:
|
events:
|
||||||
- time: 0
|
- time: 0.4984817
|
||||||
functionName: OnEffect
|
|
||||||
data:
|
|
||||||
objectReferenceParameter: {instanceID: 0}
|
|
||||||
floatParameter: 0
|
|
||||||
intParameter: 0
|
|
||||||
messageOptions: 0
|
|
||||||
- time: 0.50297606
|
|
||||||
functionName: OnEffect
|
functionName: OnEffect
|
||||||
data:
|
data:
|
||||||
objectReferenceParameter: {instanceID: 0}
|
objectReferenceParameter: {instanceID: 0}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
BIN
Assets/External_Used/Models/SM_Wep_Sword_01.fbx
Normal file
BIN
Assets/External_Used/Models/SM_Wep_Sword_01.fbx
Normal file
Binary file not shown.
83
Assets/External_Used/Models/SM_Wep_Sword_01.fbx.meta
Normal file
83
Assets/External_Used/Models/SM_Wep_Sword_01.fbx.meta
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c6e2f484ffcec214da9c765711b562f4
|
||||||
|
timeCreated: 1554785616
|
||||||
|
licenseType: Store
|
||||||
|
ModelImporter:
|
||||||
|
serializedVersion: 19
|
||||||
|
fileIDToRecycleName:
|
||||||
|
100000: //RootNode
|
||||||
|
400000: //RootNode
|
||||||
|
2300000: //RootNode
|
||||||
|
3300000: //RootNode
|
||||||
|
4300000: SM_Wep_Sword_01
|
||||||
|
9500000: //RootNode
|
||||||
|
materials:
|
||||||
|
importMaterials: 0
|
||||||
|
materialName: 0
|
||||||
|
materialSearch: 1
|
||||||
|
animations:
|
||||||
|
legacyGenerateAnimations: 4
|
||||||
|
bakeSimulation: 0
|
||||||
|
resampleCurves: 1
|
||||||
|
optimizeGameObjects: 0
|
||||||
|
motionNodeName:
|
||||||
|
rigImportErrors:
|
||||||
|
rigImportWarnings:
|
||||||
|
animationImportErrors:
|
||||||
|
animationImportWarnings:
|
||||||
|
animationRetargetingWarnings:
|
||||||
|
animationDoRetargetingWarnings: 0
|
||||||
|
animationCompression: 1
|
||||||
|
animationRotationError: 0.5
|
||||||
|
animationPositionError: 0.5
|
||||||
|
animationScaleError: 0.5
|
||||||
|
animationWrapMode: 0
|
||||||
|
extraExposedTransformPaths: []
|
||||||
|
clipAnimations: []
|
||||||
|
isReadable: 0
|
||||||
|
meshes:
|
||||||
|
lODScreenPercentages: []
|
||||||
|
globalScale: 1
|
||||||
|
meshCompression: 0
|
||||||
|
addColliders: 0
|
||||||
|
importBlendShapes: 0
|
||||||
|
swapUVChannels: 0
|
||||||
|
generateSecondaryUV: 0
|
||||||
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 0
|
||||||
|
keepQuads: 0
|
||||||
|
weldVertices: 0
|
||||||
|
secondaryUVAngleDistortion: 8
|
||||||
|
secondaryUVAreaDistortion: 15.000001
|
||||||
|
secondaryUVHardAngle: 88
|
||||||
|
secondaryUVPackMargin: 4
|
||||||
|
useFileScale: 1
|
||||||
|
tangentSpace:
|
||||||
|
normalSmoothAngle: 0
|
||||||
|
normalImportMode: 1
|
||||||
|
tangentImportMode: 3
|
||||||
|
importAnimation: 0
|
||||||
|
copyAvatar: 0
|
||||||
|
humanDescription:
|
||||||
|
serializedVersion: 2
|
||||||
|
human: []
|
||||||
|
skeleton: []
|
||||||
|
armTwist: 0.5
|
||||||
|
foreArmTwist: 0.5
|
||||||
|
upperLegTwist: 0.5
|
||||||
|
legTwist: 0.5
|
||||||
|
armStretch: 0.05
|
||||||
|
legStretch: 0.05
|
||||||
|
feetSpacing: 0
|
||||||
|
rootMotionBoneName:
|
||||||
|
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
hasTranslationDoF: 0
|
||||||
|
hasExtraRoot: 0
|
||||||
|
skeletonHasParents: 1
|
||||||
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
|
animationType: 0
|
||||||
|
humanoidOversampling: 1
|
||||||
|
additionalBone: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -35,7 +35,8 @@ MonoBehaviour:
|
|||||||
- rid: 8805855836547056135
|
- rid: 8805855836547056135
|
||||||
- rid: 8805855836547056335
|
- rid: 8805855836547056335
|
||||||
- rid: 8805855841097090010
|
- rid: 8805855841097090010
|
||||||
m_VersionTimestamp: 639088753701246820
|
- rid: 8805855941168464100
|
||||||
|
m_VersionTimestamp: 639092245458294623
|
||||||
m_CommandBuffer:
|
m_CommandBuffer:
|
||||||
m_Commands: []
|
m_Commands: []
|
||||||
m_RuntimeBlackboardAsset: {fileID: 6694785542709420471}
|
m_RuntimeBlackboardAsset: {fileID: 6694785542709420471}
|
||||||
@@ -102,6 +103,16 @@ MonoBehaviour:
|
|||||||
IsExposed: 1
|
IsExposed: 1
|
||||||
m_IsShared: 0
|
m_IsShared: 0
|
||||||
m_Value: {fileID: 11400000, guid: 4f40629d4d334434285e8fdec3714536, type: 2}
|
m_Value: {fileID: 11400000, guid: 4f40629d4d334434285e8fdec3714536, type: 2}
|
||||||
|
- rid: 8805855941168464100
|
||||||
|
type: {class: 'TypedVariableModel`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
ID:
|
||||||
|
m_Value0: 2997173512430605425
|
||||||
|
m_Value1: 14990413519379198129
|
||||||
|
Name: Die
|
||||||
|
IsExposed: 1
|
||||||
|
m_IsShared: 0
|
||||||
|
m_Value: 0
|
||||||
--- !u!114 &-3933356984444701103
|
--- !u!114 &-3933356984444701103
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -134,8 +145,8 @@ MonoBehaviour:
|
|||||||
rid: 8805855836547055694
|
rid: 8805855836547055694
|
||||||
BlackboardGroupReferences: []
|
BlackboardGroupReferences: []
|
||||||
Root:
|
Root:
|
||||||
rid: 8805855846311395537
|
rid: 8805855941168464690
|
||||||
m_VersionTimestamp: 639088753702668748
|
m_VersionTimestamp: 639092257330260006
|
||||||
- rid: 8805855836547055694
|
- rid: 8805855836547055694
|
||||||
type: {class: BlackboardReference, ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: BlackboardReference, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
@@ -146,13 +157,70 @@ MonoBehaviour:
|
|||||||
type: {class: Blackboard, ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: Blackboard, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
m_Variables:
|
m_Variables:
|
||||||
- rid: 8805855846311395539
|
- rid: 8805855941168464571
|
||||||
- rid: 8805855846311395540
|
- rid: 8805855941168464572
|
||||||
- rid: 8805855846311395541
|
- rid: 8805855941168464573
|
||||||
- rid: 8805855846311395542
|
- rid: 8805855941168464574
|
||||||
- rid: 8805855846311395543
|
- rid: 8805855941168464575
|
||||||
- rid: 8805855846311395544
|
- rid: 8805855941168464576
|
||||||
- rid: 8805855846311395537
|
- rid: 8805855941168464577
|
||||||
|
- rid: 8805855941168464571
|
||||||
|
type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
GUID:
|
||||||
|
m_Value0: 1
|
||||||
|
m_Value1: 0
|
||||||
|
Name: Self
|
||||||
|
m_Value: {fileID: 0}
|
||||||
|
- rid: 8805855941168464572
|
||||||
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
GUID:
|
||||||
|
m_Value0: 6179663786753870576
|
||||||
|
m_Value1: 13045418693957266795
|
||||||
|
Name: AttackRange
|
||||||
|
m_Value: 3
|
||||||
|
- rid: 8805855941168464573
|
||||||
|
type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
GUID:
|
||||||
|
m_Value0: 7475528897857689991
|
||||||
|
m_Value1: 9373801459200419976
|
||||||
|
Name: Target
|
||||||
|
m_Value: {fileID: 0}
|
||||||
|
- rid: 8805855941168464574
|
||||||
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
GUID:
|
||||||
|
m_Value0: 16869927256715422330
|
||||||
|
m_Value1: 821422556084951432
|
||||||
|
Name: SightRange
|
||||||
|
m_Value: 20
|
||||||
|
- rid: 8805855941168464575
|
||||||
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
GUID:
|
||||||
|
m_Value0: 8799674741299202428
|
||||||
|
m_Value1: 6075552970323151189
|
||||||
|
Name: MoveSpeed
|
||||||
|
m_Value: 0
|
||||||
|
- rid: 8805855941168464576
|
||||||
|
type: {class: 'BlackboardVariable`1[[Colosseum.Skills.SkillData, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
GUID:
|
||||||
|
m_Value0: 15894527964846533412
|
||||||
|
m_Value1: 3771131609012049390
|
||||||
|
Name: Default Attack Skill
|
||||||
|
m_Value: {fileID: 11400000, guid: 4f40629d4d334434285e8fdec3714536, type: 2}
|
||||||
|
- rid: 8805855941168464577
|
||||||
|
type: {class: 'BlackboardVariable`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
GUID:
|
||||||
|
m_Value0: 2997173512430605425
|
||||||
|
m_Value1: 14990413519379198129
|
||||||
|
Name: Die
|
||||||
|
m_Value: 0
|
||||||
|
- rid: 8805855941168464690
|
||||||
type: {class: Start, ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: Start, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -163,10 +231,46 @@ MonoBehaviour:
|
|||||||
m_Parent:
|
m_Parent:
|
||||||
rid: -2
|
rid: -2
|
||||||
m_Child:
|
m_Child:
|
||||||
rid: 8805855846311395538
|
rid: 8805855941168464691
|
||||||
Repeat: 1
|
Repeat: 0
|
||||||
AllowMultipleRepeatsPerTick: 0
|
AllowMultipleRepeatsPerTick: 0
|
||||||
- rid: 8805855846311395538
|
- rid: 8805855941168464691
|
||||||
|
type: {class: RepeaterModifier, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
ID:
|
||||||
|
m_Value0: 16903089648015682040
|
||||||
|
m_Value1: 5621269674286214316
|
||||||
|
Graph:
|
||||||
|
rid: 8805855836547055693
|
||||||
|
m_Parent:
|
||||||
|
rid: 8805855941168464690
|
||||||
|
m_Child:
|
||||||
|
rid: 8805855941168464692
|
||||||
|
m_AllowMultipleRepeatsPerTick: 0
|
||||||
|
- rid: 8805855941168464692
|
||||||
|
type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
ID:
|
||||||
|
m_Value0: 3882872508468950798
|
||||||
|
m_Value1: 3938133446346283639
|
||||||
|
Graph:
|
||||||
|
rid: 8805855836547055693
|
||||||
|
m_Parent:
|
||||||
|
rid: 8805855941168464691
|
||||||
|
m_Children:
|
||||||
|
- rid: 8805855941168464693
|
||||||
|
m_RegisteredObservers: []
|
||||||
|
m_Conditions:
|
||||||
|
- rid: 8805855941168464694
|
||||||
|
m_RequiresAllConditions: 0
|
||||||
|
True:
|
||||||
|
rid: -2
|
||||||
|
False:
|
||||||
|
rid: 8805855941168464693
|
||||||
|
m_CurrentChild:
|
||||||
|
rid: -2
|
||||||
|
m_ObserverType: 0
|
||||||
|
- rid: 8805855941168464693
|
||||||
type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -175,60 +279,23 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395537
|
rid: 8805855941168464692
|
||||||
m_Children:
|
m_Children:
|
||||||
- rid: 8805855846311395545
|
- rid: 8805855941168464695
|
||||||
- rid: 8805855846311395546
|
- rid: 8805855941168464696
|
||||||
m_RegisteredObservers: []
|
m_RegisteredObservers: []
|
||||||
- rid: 8805855846311395539
|
- rid: 8805855941168464694
|
||||||
type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: VariableComparisonCondition, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
Graph:
|
||||||
m_Value0: 1
|
rid: 8805855836547055693
|
||||||
m_Value1: 0
|
Variable:
|
||||||
Name: Self
|
rid: 8805855941168464577
|
||||||
m_Value: {fileID: 0}
|
Operator:
|
||||||
- rid: 8805855846311395540
|
rid: 8805855941168464697
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
ComparisonValue:
|
||||||
data:
|
rid: 8805855941168464698
|
||||||
GUID:
|
- rid: 8805855941168464695
|
||||||
m_Value0: 6179663786753870576
|
|
||||||
m_Value1: 13045418693957266795
|
|
||||||
Name: AttackRange
|
|
||||||
m_Value: 3
|
|
||||||
- rid: 8805855846311395541
|
|
||||||
type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
|
||||||
data:
|
|
||||||
GUID:
|
|
||||||
m_Value0: 7475528897857689991
|
|
||||||
m_Value1: 9373801459200419976
|
|
||||||
Name: Target
|
|
||||||
m_Value: {fileID: 0}
|
|
||||||
- rid: 8805855846311395542
|
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
|
||||||
data:
|
|
||||||
GUID:
|
|
||||||
m_Value0: 16869927256715422330
|
|
||||||
m_Value1: 821422556084951432
|
|
||||||
Name: SightRange
|
|
||||||
m_Value: 20
|
|
||||||
- rid: 8805855846311395543
|
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
|
||||||
data:
|
|
||||||
GUID:
|
|
||||||
m_Value0: 8799674741299202428
|
|
||||||
m_Value1: 6075552970323151189
|
|
||||||
Name: MoveSpeed
|
|
||||||
m_Value: 0
|
|
||||||
- rid: 8805855846311395544
|
|
||||||
type: {class: 'BlackboardVariable`1[[Colosseum.Skills.SkillData, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
|
||||||
data:
|
|
||||||
GUID:
|
|
||||||
m_Value0: 15894527964846533412
|
|
||||||
m_Value1: 3771131609012049390
|
|
||||||
Name: Default Attack Skill
|
|
||||||
m_Value: {fileID: 11400000, guid: 4f40629d4d334434285e8fdec3714536, type: 2}
|
|
||||||
- rid: 8805855846311395545
|
|
||||||
type: {class: SetTargetInRangeAction, ns: , asm: Colosseum.Game}
|
type: {class: SetTargetInRangeAction, ns: , asm: Colosseum.Game}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -237,14 +304,14 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395538
|
rid: 8805855941168464693
|
||||||
Target:
|
Target:
|
||||||
rid: 8805855846311395541
|
rid: 8805855941168464573
|
||||||
Tag:
|
Tag:
|
||||||
rid: 8805855846311395547
|
rid: 8805855941168464699
|
||||||
Range:
|
Range:
|
||||||
rid: 8805855846311395548
|
rid: 8805855941168464700
|
||||||
- rid: 8805855846311395546
|
- rid: 8805855941168464696
|
||||||
type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -253,22 +320,38 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395538
|
rid: 8805855941168464693
|
||||||
m_Children:
|
m_Children:
|
||||||
- rid: 8805855846311395549
|
- rid: 8805855941168464701
|
||||||
- rid: 8805855846311395550
|
- rid: 8805855941168464702
|
||||||
m_RegisteredObservers: []
|
m_RegisteredObservers: []
|
||||||
m_Conditions:
|
m_Conditions:
|
||||||
- rid: 8805855846311395551
|
- rid: 8805855941168464703
|
||||||
m_RequiresAllConditions: 0
|
m_RequiresAllConditions: 0
|
||||||
True:
|
True:
|
||||||
rid: 8805855846311395549
|
rid: 8805855941168464701
|
||||||
False:
|
False:
|
||||||
rid: 8805855846311395550
|
rid: 8805855941168464702
|
||||||
m_CurrentChild:
|
m_CurrentChild:
|
||||||
rid: -2
|
rid: -2
|
||||||
m_ObserverType: 0
|
m_ObserverType: 0
|
||||||
- rid: 8805855846311395547
|
- rid: 8805855941168464697
|
||||||
|
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}
|
type: {class: 'BlackboardVariable`1[[System.String, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -276,7 +359,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: Player
|
m_Value: Player
|
||||||
- rid: 8805855846311395548
|
- rid: 8805855941168464700
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -284,7 +367,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: 10
|
m_Value: 10
|
||||||
- rid: 8805855846311395549
|
- rid: 8805855941168464701
|
||||||
type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -293,22 +376,22 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395546
|
rid: 8805855941168464696
|
||||||
m_Children:
|
m_Children:
|
||||||
- rid: 8805855846311395552
|
- rid: 8805855941168464704
|
||||||
- rid: 8805855846311395553
|
- rid: 8805855941168464705
|
||||||
m_RegisteredObservers: []
|
m_RegisteredObservers: []
|
||||||
m_Conditions:
|
m_Conditions:
|
||||||
- rid: 8805855846311395554
|
- rid: 8805855941168464706
|
||||||
m_RequiresAllConditions: 0
|
m_RequiresAllConditions: 0
|
||||||
True:
|
True:
|
||||||
rid: 8805855846311395552
|
rid: 8805855941168464704
|
||||||
False:
|
False:
|
||||||
rid: 8805855846311395553
|
rid: 8805855941168464705
|
||||||
m_CurrentChild:
|
m_CurrentChild:
|
||||||
rid: -2
|
rid: -2
|
||||||
m_ObserverType: 0
|
m_ObserverType: 0
|
||||||
- rid: 8805855846311395550
|
- rid: 8805855941168464702
|
||||||
type: {class: WaitAction, ns: , asm: Colosseum.Game}
|
type: {class: WaitAction, ns: , asm: Colosseum.Game}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -317,21 +400,21 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395546
|
rid: 8805855941168464696
|
||||||
Duration:
|
Duration:
|
||||||
rid: 8805855846311395555
|
rid: 8805855941168464707
|
||||||
- rid: 8805855846311395551
|
- rid: 8805855941168464703
|
||||||
type: {class: VariableComparisonCondition, ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: VariableComparisonCondition, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
Variable:
|
Variable:
|
||||||
rid: 8805855846311395541
|
rid: 8805855941168464573
|
||||||
Operator:
|
Operator:
|
||||||
rid: 8805855846311395556
|
rid: 8805855941168464708
|
||||||
ComparisonValue:
|
ComparisonValue:
|
||||||
rid: 8805855846311395557
|
rid: 8805855941168464709
|
||||||
- rid: 8805855846311395552
|
- rid: 8805855941168464704
|
||||||
type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -340,12 +423,12 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395549
|
rid: 8805855941168464701
|
||||||
m_Children:
|
m_Children:
|
||||||
- rid: 8805855846311395558
|
- rid: 8805855941168464710
|
||||||
- rid: 8805855846311395559
|
- rid: 8805855941168464711
|
||||||
m_RegisteredObservers: []
|
m_RegisteredObservers: []
|
||||||
- rid: 8805855846311395553
|
- rid: 8805855941168464705
|
||||||
type: {class: ParallelAllComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: ParallelAllComposite, ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -354,25 +437,25 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395549
|
rid: 8805855941168464701
|
||||||
m_Children:
|
m_Children:
|
||||||
- rid: 8805855846311395560
|
- rid: 8805855941168464712
|
||||||
- rid: 8805855846311395561
|
- rid: 8805855941168464713
|
||||||
m_RegisteredObservers: []
|
m_RegisteredObservers: []
|
||||||
- rid: 8805855846311395554
|
- rid: 8805855941168464706
|
||||||
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: 8805855846311395562
|
rid: 8805855941168464714
|
||||||
Target:
|
Target:
|
||||||
rid: 8805855846311395563
|
rid: 8805855941168464715
|
||||||
Operator:
|
Operator:
|
||||||
rid: 8805855846311395564
|
rid: 8805855941168464716
|
||||||
Threshold:
|
Threshold:
|
||||||
rid: 8805855846311395540
|
rid: 8805855941168464572
|
||||||
- rid: 8805855846311395555
|
- rid: 8805855941168464707
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -380,7 +463,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: 1
|
m_Value: 1
|
||||||
- rid: 8805855846311395556
|
- rid: 8805855941168464708
|
||||||
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -388,7 +471,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: 1
|
m_Value: 1
|
||||||
- rid: 8805855846311395557
|
- rid: 8805855941168464709
|
||||||
type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -396,7 +479,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: {fileID: 0}
|
m_Value: {fileID: 0}
|
||||||
- rid: 8805855846311395558
|
- rid: 8805855941168464710
|
||||||
type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game}
|
type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -405,14 +488,14 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395552
|
rid: 8805855941168464704
|
||||||
Target:
|
Target:
|
||||||
rid: 8805855846311395541
|
rid: 8805855941168464573
|
||||||
RotationSpeed:
|
RotationSpeed:
|
||||||
rid: 8805855846311395565
|
rid: 8805855941168464717
|
||||||
AngleThreshold:
|
AngleThreshold:
|
||||||
rid: 8805855846311395566
|
rid: 8805855941168464718
|
||||||
- rid: 8805855846311395559
|
- rid: 8805855941168464711
|
||||||
type: {class: UseSkillAction, ns: , asm: Colosseum.Game}
|
type: {class: UseSkillAction, ns: , asm: Colosseum.Game}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -421,10 +504,10 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395552
|
rid: 8805855941168464704
|
||||||
"\uC2A4\uD0AC":
|
"\uC2A4\uD0AC":
|
||||||
rid: 8805855846311395544
|
rid: 8805855941168464576
|
||||||
- rid: 8805855846311395560
|
- rid: 8805855941168464712
|
||||||
type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game}
|
type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -433,14 +516,14 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395553
|
rid: 8805855941168464705
|
||||||
Target:
|
Target:
|
||||||
rid: 8805855846311395541
|
rid: 8805855941168464573
|
||||||
RotationSpeed:
|
RotationSpeed:
|
||||||
rid: 8805855846311395567
|
rid: 8805855941168464719
|
||||||
AngleThreshold:
|
AngleThreshold:
|
||||||
rid: 8805855846311395568
|
rid: 8805855941168464720
|
||||||
- rid: 8805855846311395561
|
- rid: 8805855941168464713
|
||||||
type: {class: ChaseTargetAction, ns: , asm: Colosseum.Game}
|
type: {class: ChaseTargetAction, ns: , asm: Colosseum.Game}
|
||||||
data:
|
data:
|
||||||
ID:
|
ID:
|
||||||
@@ -449,14 +532,14 @@ MonoBehaviour:
|
|||||||
Graph:
|
Graph:
|
||||||
rid: 8805855836547055693
|
rid: 8805855836547055693
|
||||||
m_Parent:
|
m_Parent:
|
||||||
rid: 8805855846311395553
|
rid: 8805855941168464705
|
||||||
Target:
|
Target:
|
||||||
rid: 8805855846311395541
|
rid: 8805855941168464573
|
||||||
Speed:
|
Speed:
|
||||||
rid: 8805855846311395569
|
rid: 8805855941168464721
|
||||||
StopDistance:
|
StopDistance:
|
||||||
rid: 8805855846311395570
|
rid: 8805855941168464722
|
||||||
- rid: 8805855846311395562
|
- rid: 8805855941168464714
|
||||||
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:
|
||||||
@@ -465,8 +548,8 @@ MonoBehaviour:
|
|||||||
Name:
|
Name:
|
||||||
m_Value: {fileID: 0}
|
m_Value: {fileID: 0}
|
||||||
m_LinkedVariable:
|
m_LinkedVariable:
|
||||||
rid: 8805855846311395539
|
rid: 8805855941168464571
|
||||||
- rid: 8805855846311395563
|
- rid: 8805855941168464715
|
||||||
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:
|
||||||
@@ -475,8 +558,8 @@ MonoBehaviour:
|
|||||||
Name:
|
Name:
|
||||||
m_Value: {fileID: 0}
|
m_Value: {fileID: 0}
|
||||||
m_LinkedVariable:
|
m_LinkedVariable:
|
||||||
rid: 8805855846311395541
|
rid: 8805855941168464573
|
||||||
- rid: 8805855846311395564
|
- rid: 8805855941168464716
|
||||||
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -484,7 +567,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: 5
|
m_Value: 5
|
||||||
- rid: 8805855846311395565
|
- rid: 8805855941168464717
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -492,7 +575,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: 10
|
m_Value: 10
|
||||||
- rid: 8805855846311395566
|
- rid: 8805855941168464718
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -500,7 +583,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: 5
|
m_Value: 5
|
||||||
- rid: 8805855846311395567
|
- rid: 8805855941168464719
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -508,7 +591,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: 10
|
m_Value: 10
|
||||||
- rid: 8805855846311395568
|
- rid: 8805855941168464720
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -516,7 +599,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: 5
|
m_Value: 5
|
||||||
- rid: 8805855846311395569
|
- rid: 8805855941168464721
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -524,7 +607,7 @@ MonoBehaviour:
|
|||||||
m_Value1: 0
|
m_Value1: 0
|
||||||
Name:
|
Name:
|
||||||
m_Value: 0
|
m_Value: 0
|
||||||
- rid: 8805855846311395570
|
- rid: 8805855941168464722
|
||||||
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
data:
|
data:
|
||||||
GUID:
|
GUID:
|
||||||
@@ -561,7 +644,11 @@ MonoBehaviour:
|
|||||||
- rid: 8805855841097089766
|
- rid: 8805855841097089766
|
||||||
- rid: 8805855846311395415
|
- rid: 8805855846311395415
|
||||||
- rid: 8805855846311395454
|
- rid: 8805855846311395454
|
||||||
m_VersionTimestamp: 639088753702668748
|
- rid: 8805855941168464148
|
||||||
|
- rid: 8805855941168464149
|
||||||
|
- rid: 8805855941168464150
|
||||||
|
- rid: 8805855941168464612
|
||||||
|
m_VersionTimestamp: 639092257330260006
|
||||||
m_SerializedVersion: 2
|
m_SerializedVersion: 2
|
||||||
m_DebugInfo: {fileID: -6758363554468061369}
|
m_DebugInfo: {fileID: -6758363554468061369}
|
||||||
m_RuntimeGraph: {fileID: -3933356984444701103}
|
m_RuntimeGraph: {fileID: -3933356984444701103}
|
||||||
@@ -710,6 +797,16 @@ MonoBehaviour:
|
|||||||
Tooltip:
|
Tooltip:
|
||||||
NamedChildren: []
|
NamedChildren: []
|
||||||
IsPlaceholder: 0
|
IsPlaceholder: 0
|
||||||
|
- Name: Repeat
|
||||||
|
Story:
|
||||||
|
RuntimeTypeString: Unity.Behavior.RepeaterModifier, Unity.Behavior, Version=0.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=null
|
||||||
|
RuntimeTypeID:
|
||||||
|
m_Value0: 3696095273264312494
|
||||||
|
m_Value1: 14191201703811421854
|
||||||
|
Variables: []
|
||||||
|
NamedChildren: []
|
||||||
|
IsPlaceholder: 0
|
||||||
m_Blackboards: []
|
m_Blackboards: []
|
||||||
m_MainBlackboardAuthoringAsset: {fileID: -6591390698989283165}
|
m_MainBlackboardAuthoringAsset: {fileID: -6591390698989283165}
|
||||||
m_CommandBuffer:
|
m_CommandBuffer:
|
||||||
@@ -726,7 +823,7 @@ MonoBehaviour:
|
|||||||
- rid: 8805855836547055698
|
- rid: 8805855836547055698
|
||||||
type: {class: StartNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
|
type: {class: StartNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
|
||||||
data:
|
data:
|
||||||
Position: {x: 300.00003, y: -65.20001}
|
Position: {x: 211.99992, y: -365.45004}
|
||||||
ID:
|
ID:
|
||||||
m_Value0: 8361680655506702021
|
m_Value0: 8361680655506702021
|
||||||
m_Value1: 11075116708293476273
|
m_Value1: 11075116708293476273
|
||||||
@@ -740,7 +837,7 @@ MonoBehaviour:
|
|||||||
m_Value0: 3335272451348827663
|
m_Value0: 3335272451348827663
|
||||||
m_Value1: 11549843281177505721
|
m_Value1: 11549843281177505721
|
||||||
m_FieldValues: []
|
m_FieldValues: []
|
||||||
Repeat: 1
|
Repeat: 0
|
||||||
AllowMultipleRepeatsPerTick: 0
|
AllowMultipleRepeatsPerTick: 0
|
||||||
- rid: 8805855836547055699
|
- rid: 8805855836547055699
|
||||||
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
@@ -751,7 +848,7 @@ MonoBehaviour:
|
|||||||
m_NodeModel:
|
m_NodeModel:
|
||||||
rid: 8805855836547055698
|
rid: 8805855836547055698
|
||||||
m_Connections:
|
m_Connections:
|
||||||
- rid: 8805855841097089468
|
- rid: 8805855941168464613
|
||||||
- rid: 8805855841097089283
|
- rid: 8805855841097089283
|
||||||
type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
data:
|
data:
|
||||||
@@ -1083,7 +1180,7 @@ MonoBehaviour:
|
|||||||
m_NodeModel:
|
m_NodeModel:
|
||||||
rid: 8805855841097089467
|
rid: 8805855841097089467
|
||||||
m_Connections:
|
m_Connections:
|
||||||
- rid: 8805855836547055699
|
- rid: 8805855941168464154
|
||||||
- rid: 8805855841097089469
|
- rid: 8805855841097089469
|
||||||
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
data:
|
data:
|
||||||
@@ -1794,6 +1891,254 @@ MonoBehaviour:
|
|||||||
IsExposed: 1
|
IsExposed: 1
|
||||||
m_IsShared: 0
|
m_IsShared: 0
|
||||||
m_Value: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
m_Value: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||||
|
- rid: 8805855941168464148
|
||||||
|
type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
Position: {x: 15.813689, y: -35.53409}
|
||||||
|
ID:
|
||||||
|
m_Value0: 7940545116008444959
|
||||||
|
m_Value1: 7530289849580528934
|
||||||
|
Parents: []
|
||||||
|
PortModels:
|
||||||
|
- rid: 8805855941168464151
|
||||||
|
- rid: 8805855941168464152
|
||||||
|
ParentNodeID:
|
||||||
|
m_Value0: 3882872508468950798
|
||||||
|
m_Value1: 3938133446346283639
|
||||||
|
PortName: True
|
||||||
|
- rid: 8805855941168464149
|
||||||
|
type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
Position: {x: 431.27527, y: -39.538033}
|
||||||
|
ID:
|
||||||
|
m_Value0: 17027785473523230719
|
||||||
|
m_Value1: 11573909034072681315
|
||||||
|
Parents: []
|
||||||
|
PortModels:
|
||||||
|
- rid: 8805855941168464153
|
||||||
|
- rid: 8805855941168464154
|
||||||
|
ParentNodeID:
|
||||||
|
m_Value0: 3882872508468950798
|
||||||
|
m_Value1: 3938133446346283639
|
||||||
|
PortName: False
|
||||||
|
- rid: 8805855941168464150
|
||||||
|
type: {class: BranchingConditionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
|
||||||
|
data:
|
||||||
|
Position: {x: 211.1149, y: -155.69766}
|
||||||
|
ID:
|
||||||
|
m_Value0: 3882872508468950798
|
||||||
|
m_Value1: 3938133446346283639
|
||||||
|
Parents: []
|
||||||
|
PortModels:
|
||||||
|
- rid: 8805855941168464155
|
||||||
|
- rid: 8805855941168464156
|
||||||
|
- rid: 8805855941168464157
|
||||||
|
NodeType:
|
||||||
|
m_SerializableType: Unity.Behavior.BranchingConditionComposite, Unity.Behavior,
|
||||||
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||||
|
NodeTypeID:
|
||||||
|
m_Value0: 12334964803190848789
|
||||||
|
m_Value1: 14608808926743427008
|
||||||
|
m_FieldValues: []
|
||||||
|
<ConditionModels>k__BackingField:
|
||||||
|
- ConditionType:
|
||||||
|
m_SerializableType: Unity.Behavior.VariableComparisonCondition, Unity.Behavior,
|
||||||
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||||
|
ConditionTypeID:
|
||||||
|
m_Value0: 4706153636540939941
|
||||||
|
m_Value1: 1154942553909992356
|
||||||
|
NodeModel:
|
||||||
|
rid: 8805855941168464150
|
||||||
|
m_FieldValues:
|
||||||
|
- rid: 8805855941168464174
|
||||||
|
- rid: 8805855941168464175
|
||||||
|
- rid: 8805855941168464203
|
||||||
|
OperatorFieldModel:
|
||||||
|
rid: 8805855941168464175
|
||||||
|
<RequiresAllConditionsTrue>k__BackingField: 0
|
||||||
|
<ShouldTruncateNodeUI>k__BackingField: 0
|
||||||
|
<ObserverType>k__BackingField: 0
|
||||||
|
- rid: 8805855941168464151
|
||||||
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
m_Name: InputPort
|
||||||
|
m_PortDataFlowType: 0
|
||||||
|
m_IsFloating: 1
|
||||||
|
m_NodeModel:
|
||||||
|
rid: 8805855941168464148
|
||||||
|
m_Connections:
|
||||||
|
- rid: 8805855941168464156
|
||||||
|
- rid: 8805855941168464152
|
||||||
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
m_Name: OutputPort
|
||||||
|
m_PortDataFlowType: 1
|
||||||
|
m_IsFloating: 0
|
||||||
|
m_NodeModel:
|
||||||
|
rid: 8805855941168464148
|
||||||
|
m_Connections: []
|
||||||
|
- rid: 8805855941168464153
|
||||||
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
m_Name: InputPort
|
||||||
|
m_PortDataFlowType: 0
|
||||||
|
m_IsFloating: 1
|
||||||
|
m_NodeModel:
|
||||||
|
rid: 8805855941168464149
|
||||||
|
m_Connections:
|
||||||
|
- rid: 8805855941168464157
|
||||||
|
- rid: 8805855941168464154
|
||||||
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
m_Name: OutputPort
|
||||||
|
m_PortDataFlowType: 1
|
||||||
|
m_IsFloating: 0
|
||||||
|
m_NodeModel:
|
||||||
|
rid: 8805855941168464149
|
||||||
|
m_Connections:
|
||||||
|
- rid: 8805855841097089468
|
||||||
|
- rid: 8805855941168464155
|
||||||
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
m_Name: InputPort
|
||||||
|
m_PortDataFlowType: 0
|
||||||
|
m_IsFloating: 0
|
||||||
|
m_NodeModel:
|
||||||
|
rid: 8805855941168464150
|
||||||
|
m_Connections:
|
||||||
|
- rid: 8805855941168464614
|
||||||
|
- rid: 8805855941168464156
|
||||||
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
m_Name: True
|
||||||
|
m_PortDataFlowType: 1
|
||||||
|
m_IsFloating: 1
|
||||||
|
m_NodeModel:
|
||||||
|
rid: 8805855941168464150
|
||||||
|
m_Connections:
|
||||||
|
- rid: 8805855941168464151
|
||||||
|
- rid: 8805855941168464157
|
||||||
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
m_Name: False
|
||||||
|
m_PortDataFlowType: 1
|
||||||
|
m_IsFloating: 1
|
||||||
|
m_NodeModel:
|
||||||
|
rid: 8805855941168464150
|
||||||
|
m_Connections:
|
||||||
|
- rid: 8805855941168464153
|
||||||
|
- rid: 8805855941168464174
|
||||||
|
type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
|
||||||
|
data:
|
||||||
|
FieldName: Variable
|
||||||
|
Type:
|
||||||
|
m_SerializableType: System.Object, mscorlib, Version=4.0.0.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
LocalValue:
|
||||||
|
rid: 8805855941168464204
|
||||||
|
LinkedVariable:
|
||||||
|
rid: 8805855941168464202
|
||||||
|
- rid: 8805855941168464175
|
||||||
|
type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
|
||||||
|
data:
|
||||||
|
FieldName: Operator
|
||||||
|
Type:
|
||||||
|
m_SerializableType: Unity.Behavior.ConditionOperator, Unity.Behavior, Version=0.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=null
|
||||||
|
LocalValue:
|
||||||
|
rid: 8805855941168464178
|
||||||
|
LinkedVariable:
|
||||||
|
rid: -2
|
||||||
|
- rid: 8805855941168464178
|
||||||
|
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: 8805855941168464202
|
||||||
|
type: {class: 'TypedVariableModel`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
ID:
|
||||||
|
m_Value0: 2997173512430605425
|
||||||
|
m_Value1: 14990413519379198129
|
||||||
|
Name: Die
|
||||||
|
IsExposed: 1
|
||||||
|
m_IsShared: 0
|
||||||
|
m_Value: 0
|
||||||
|
- rid: 8805855941168464203
|
||||||
|
type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
|
||||||
|
data:
|
||||||
|
FieldName: ComparisonValue
|
||||||
|
Type:
|
||||||
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
LocalValue:
|
||||||
|
rid: 8805855941168464205
|
||||||
|
LinkedVariable:
|
||||||
|
rid: -2
|
||||||
|
- rid: 8805855941168464204
|
||||||
|
type: {class: 'BlackboardVariable`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
GUID:
|
||||||
|
m_Value0: 0
|
||||||
|
m_Value1: 0
|
||||||
|
Name:
|
||||||
|
m_Value: 0
|
||||||
|
- rid: 8805855941168464205
|
||||||
|
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: 8805855941168464612
|
||||||
|
type: {class: RepeatNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring}
|
||||||
|
data:
|
||||||
|
Position: {x: 211.47302, y: -249.38625}
|
||||||
|
ID:
|
||||||
|
m_Value0: 16903089648015682040
|
||||||
|
m_Value1: 5621269674286214316
|
||||||
|
Parents: []
|
||||||
|
PortModels:
|
||||||
|
- rid: 8805855941168464613
|
||||||
|
- rid: 8805855941168464614
|
||||||
|
NodeType:
|
||||||
|
m_SerializableType: Unity.Behavior.RepeaterModifier, Unity.Behavior, Version=0.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=null
|
||||||
|
NodeTypeID:
|
||||||
|
m_Value0: 3696095273264312494
|
||||||
|
m_Value1: 14191201703811421854
|
||||||
|
m_FieldValues: []
|
||||||
|
AllowMultipleRepeatsPerTick: 0
|
||||||
|
<ConditionModels>k__BackingField: []
|
||||||
|
<RequiresAllConditionsTrue>k__BackingField: 0
|
||||||
|
<ShouldTruncateNodeUI>k__BackingField: 0
|
||||||
|
m_RepeatMode: 0
|
||||||
|
<ObserverType>k__BackingField: 0
|
||||||
|
<ReturnFailureOnConditionFail>k__BackingField: 1
|
||||||
|
- rid: 8805855941168464613
|
||||||
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
m_Name: InputPort
|
||||||
|
m_PortDataFlowType: 0
|
||||||
|
m_IsFloating: 0
|
||||||
|
m_NodeModel:
|
||||||
|
rid: 8805855941168464612
|
||||||
|
m_Connections:
|
||||||
|
- rid: 8805855836547055699
|
||||||
|
- rid: 8805855941168464614
|
||||||
|
type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework}
|
||||||
|
data:
|
||||||
|
m_Name: OutputPort
|
||||||
|
m_PortDataFlowType: 1
|
||||||
|
m_IsFloating: 0
|
||||||
|
m_NodeModel:
|
||||||
|
rid: 8805855941168464612
|
||||||
|
m_Connections:
|
||||||
|
- rid: 8805855941168464155
|
||||||
--- !u!114 &6694785542709420471
|
--- !u!114 &6694785542709420471
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1806,7 +2151,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 5c02bb70996b49eba31d0c206e28da24, type: 3}
|
m_Script: {fileID: 11500000, guid: 5c02bb70996b49eba31d0c206e28da24, type: 3}
|
||||||
m_Name: Behavior Graph Blackboard
|
m_Name: Behavior Graph Blackboard
|
||||||
m_EditorClassIdentifier: Unity.Behavior::Unity.Behavior.RuntimeBlackboardAsset
|
m_EditorClassIdentifier: Unity.Behavior::Unity.Behavior.RuntimeBlackboardAsset
|
||||||
VersionTimestamp: 639088753701246820
|
VersionTimestamp: 639092245458294623
|
||||||
AssetID:
|
AssetID:
|
||||||
m_Value0: 11861793134961942170
|
m_Value0: 11861793134961942170
|
||||||
m_Value1: 6108181331610501546
|
m_Value1: 6108181331610501546
|
||||||
@@ -1818,6 +2163,7 @@ MonoBehaviour:
|
|||||||
- rid: 8805855836547056143
|
- rid: 8805855836547056143
|
||||||
- rid: 8805855836547056345
|
- rid: 8805855836547056345
|
||||||
- rid: 8805855841097090030
|
- rid: 8805855841097090030
|
||||||
|
- rid: 8805855941168464124
|
||||||
m_SharedBlackboardVariableGuids: []
|
m_SharedBlackboardVariableGuids: []
|
||||||
references:
|
references:
|
||||||
version: 2
|
version: 2
|
||||||
@@ -1870,3 +2216,11 @@ MonoBehaviour:
|
|||||||
m_Value1: 3771131609012049390
|
m_Value1: 3771131609012049390
|
||||||
Name: Default Attack Skill
|
Name: Default Attack Skill
|
||||||
m_Value: {fileID: 11400000, guid: 4f40629d4d334434285e8fdec3714536, type: 2}
|
m_Value: {fileID: 11400000, guid: 4f40629d4d334434285e8fdec3714536, type: 2}
|
||||||
|
- rid: 8805855941168464124
|
||||||
|
type: {class: 'BlackboardVariable`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior}
|
||||||
|
data:
|
||||||
|
GUID:
|
||||||
|
m_Value0: 2997173512430605425
|
||||||
|
m_Value1: 14990413519379198129
|
||||||
|
Name: Die
|
||||||
|
m_Value: 0
|
||||||
|
|||||||
245
Assets/Prefabs/Bosses/BossTemplate.prefab
Normal file
245
Assets/Prefabs/Bosses/BossTemplate.prefab
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &100000
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 400000}
|
||||||
|
- component: {fileID: 9500000}
|
||||||
|
- component: {fileID: 11400000}
|
||||||
|
- component: {fileID: 11400001}
|
||||||
|
- component: {fileID: 19500000}
|
||||||
|
- component: {fileID: 11400002}
|
||||||
|
- component: {fileID: 13600000}
|
||||||
|
- component: {fileID: 11400003}
|
||||||
|
- component: {fileID: 11400004}
|
||||||
|
- component: {fileID: 11400005}
|
||||||
|
- component: {fileID: 11400006}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: BossTemplate
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &400000
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
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: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!95 &9500000
|
||||||
|
Animator:
|
||||||
|
serializedVersion: 7
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Avatar: {fileID: 0}
|
||||||
|
m_Controller: {fileID: 0}
|
||||||
|
m_CullingMode: 0
|
||||||
|
m_UpdateMode: 0
|
||||||
|
m_ApplyRootMotion: 0
|
||||||
|
m_LinearVelocityBlending: 0
|
||||||
|
m_StabilizeFeet: 0
|
||||||
|
m_AnimatePhysics: 0
|
||||||
|
m_WarningMessage:
|
||||||
|
m_HasTransformHierarchy: 1
|
||||||
|
m_AllowConstantClipSamplingOptimization: 1
|
||||||
|
m_KeepAnimatorStateOnDisable: 0
|
||||||
|
m_WriteDefaultValuesOnDisable: 0
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
|
||||||
|
GlobalObjectIdHash: 0
|
||||||
|
InScenePlacedSourceGlobalObjectIdHash: 0
|
||||||
|
DeferredDespawnTick: 0
|
||||||
|
Ownership: 1
|
||||||
|
AlwaysReplicateAsRoot: 0
|
||||||
|
SynchronizeTransform: 1
|
||||||
|
ActiveSceneSynchronization: 0
|
||||||
|
SceneMigrationSynchronization: 0
|
||||||
|
SpawnWithObservers: 1
|
||||||
|
DontDestroyWithOwner: 0
|
||||||
|
AutoObjectParentSync: 1
|
||||||
|
SyncOwnerTransformWhenParented: 1
|
||||||
|
AllowOwnerToParent: 0
|
||||||
|
--- !u!114 &11400001
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4a49d1cf004a0c944be905fe6fabf936, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Enemy.BossEnemy
|
||||||
|
ShowTopMostFoldoutHeaderGroup: 1
|
||||||
|
characterStats: {fileID: 11400002}
|
||||||
|
animator: {fileID: 9500000}
|
||||||
|
navMeshAgent: {fileID: 19500000}
|
||||||
|
enemyData: {fileID: 0}
|
||||||
|
phases: []
|
||||||
|
initialBehaviorGraph: {fileID: 0}
|
||||||
|
phaseTransitionInvincibilityTime: 2
|
||||||
|
phaseTransitionDuration: 3
|
||||||
|
debugMode: 0
|
||||||
|
--- !u!195 &19500000
|
||||||
|
NavMeshAgent:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_AgentTypeID: 0
|
||||||
|
m_Radius: 0.5
|
||||||
|
m_Speed: 3.5
|
||||||
|
m_Acceleration: 8
|
||||||
|
avoidancePriority: 50
|
||||||
|
m_AngularSpeed: 120
|
||||||
|
m_StoppingDistance: 0
|
||||||
|
m_AutoTraverseOffMeshLink: 1
|
||||||
|
m_AutoBraking: 1
|
||||||
|
m_AutoRepath: 1
|
||||||
|
m_Height: 2
|
||||||
|
m_BaseOffset: 0
|
||||||
|
m_WalkableMask: 4294967295
|
||||||
|
m_ObstacleAvoidanceType: 4
|
||||||
|
--- !u!114 &11400002
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fae0149926eea244dad932b67ee76f7b, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Stats.CharacterStats
|
||||||
|
strength:
|
||||||
|
baseValue: 10
|
||||||
|
dexterity:
|
||||||
|
baseValue: 10
|
||||||
|
intelligence:
|
||||||
|
baseValue: 10
|
||||||
|
vitality:
|
||||||
|
baseValue: 10
|
||||||
|
wisdom:
|
||||||
|
baseValue: 10
|
||||||
|
spirit:
|
||||||
|
baseValue: 10
|
||||||
|
--- !u!136 &13600000
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.5
|
||||||
|
m_Height: 2
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: 1, z: 0}
|
||||||
|
--- !u!114 &11400003
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5443105bfa8e570438bb5dc62c58aca9, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Enemy.EnemyAnimationController
|
||||||
|
ShowTopMostFoldoutHeaderGroup: 1
|
||||||
|
speedParam: Speed
|
||||||
|
attackTriggerParam: Attack
|
||||||
|
skillTriggerParam: Skill
|
||||||
|
speedSmoothTime: 0.1
|
||||||
|
stopThreshold: 0.05
|
||||||
|
--- !u!114 &11400004
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 59b4feaa06ce4c74f97ed5b57ddd74d1, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillController
|
||||||
|
animator: {fileID: 9500000}
|
||||||
|
baseController: {fileID: 0}
|
||||||
|
baseSkillClip: {fileID: 0}
|
||||||
|
debugMode: 0
|
||||||
|
showAreaDebug: 1
|
||||||
|
debugDrawDuration: 1
|
||||||
|
--- !u!114 &11400005
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d1f7d13276f272b428bddd4d9aa5b3d8, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Team
|
||||||
|
teamType: 2
|
||||||
|
--- !u!114 &11400006
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7a766b6ab825c1445a3385079bb32cc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Abnormalities.AbnormalityManager
|
||||||
|
ShowTopMostFoldoutHeaderGroup: 1
|
||||||
|
characterStats: {fileID: 0}
|
||||||
|
networkController: {fileID: 0}
|
||||||
7
Assets/Prefabs/Bosses/BossTemplate.prefab.meta
Normal file
7
Assets/Prefabs/Bosses/BossTemplate.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0cd47707143f91346868bfc349e4c4e0
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Prefabs/Player/Human-Custom.meta
Normal file
8
Assets/Prefabs/Player/Human-Custom.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2e20c24bae72cea4b9edcd8c46bf7c71
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
5753
Assets/Prefabs/Player/Human-Custom/Human-Custom.prefab
Normal file
5753
Assets/Prefabs/Player/Human-Custom/Human-Custom.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ddb893375f0dbd64ea2274bcde4672af
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
1502
Assets/Prefabs/Player/Human-Custom/Human-Custom.sk
Normal file
1502
Assets/Prefabs/Player/Human-Custom/Human-Custom.sk
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Prefabs/Player/Human-Custom/Human-Custom.sk.meta
Normal file
7
Assets/Prefabs/Player/Human-Custom/Human-Custom.sk.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e9db0d12e90aa8d4ca158b53178ff9e8
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Prefabs/Player/Human-Custom/Materials.meta
Normal file
8
Assets/Prefabs/Player/Human-Custom/Materials.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 298973b23428b454cb8450973728d637
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
196
Assets/Prefabs/Player/Human-Custom/Materials/Human-Custom.mat
Normal file
196
Assets/Prefabs/Player/Human-Custom/Materials/Human-Custom.mat
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-6988589790562594410
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||||
|
version: 10
|
||||||
|
--- !u!114 &-1092918317606464121
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: 639247ca83abc874e893eb93af2b5e44, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.ShaderGraph.Editor::UnityEditor.Rendering.BuiltIn.AssetVersion
|
||||||
|
version: 0
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Human-Custom
|
||||||
|
m_Shader: {fileID: -6465566751694194690, guid: db628544640279b41a4a7aa5d75c0322, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 2
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses:
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BloodMaskTexture:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ColorMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 927aba41a86039f47acd0f6e5fdc8923, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _CutsMaskTexture:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 75ccb45ed310e81409b3f9d13dce709d, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DarkMaskTexture:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 08475d8495d3e8c45b04efee61a5f57e, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DecalMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 9b81938a0fb0eed49998fe071f3542ce, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DirtMaskTexture:
|
||||||
|
m_Texture: {fileID: 2800000, guid: e7c56d4419b4d144ca3f5af3ee0c81cb, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 9b81938a0fb0eed49998fe071f3542ce, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EyeEdgeMaskTexture:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 9f2a0abb1a72f0c449829a589d13d7f0, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 8476071d75ce7644e92ce96aff0e7e45, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 9355e2c6fbbf433459fd984f6ab2710d, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OpacityMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 9bd3c57211d1dc349b85770ba5143ba2, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ReflectionMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: b1b7b6d2944530e4289fb60e3e8bb392, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SkinMaskTexture:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 7fa654420cbe02f4090af7728ca0115b, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SmoothnessMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: a9afe302bb810e741a33702651691a01, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _texcoord:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AlphaCutoff: 0.5
|
||||||
|
- _BUILTIN_QueueControl: 0
|
||||||
|
- _BUILTIN_QueueOffset: 0
|
||||||
|
- _BloodAmount: 0.5
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _CutsAmount: 0
|
||||||
|
- _DarkAmount: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DirtAmount: 0.081
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _EyelinerAmount: 0
|
||||||
|
- _FeminieAmount: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _QueueControl: 0
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _SkinColorAmount: 0
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
- __dirty: 0
|
||||||
|
m_Colors:
|
||||||
|
- _BloodColor: {r: 0.43396226, g: 0.14737415, b: 0.14192465, a: 0}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _CutsColor: {r: 0.33333328, g: 0.33333328, b: 0.33333328, a: 0}
|
||||||
|
- _DarkColor: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _DirtColor: {r: 0.4716981, g: 0.35202244, b: 0.23881568, a: 0}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _Grey: {r: 0.59748423, g: 0.59748423, b: 0.59748423, a: 0}
|
||||||
|
- _SkinColor: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 69b7cf69836c34649bf0c881c5c5c3a7
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Prefabs/Player/Human-Custom/Meshes.meta
Normal file
8
Assets/Prefabs/Player/Human-Custom/Meshes.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1b707fb8990dc63449f068ec58b1d742
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
2858
Assets/Prefabs/Player/Human-Custom/Meshes/Human-Custom-avatar.asset
Normal file
2858
Assets/Prefabs/Player/Human-Custom/Meshes/Human-Custom-avatar.asset
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d929f787137059c459b9b4d2bd40da61
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 9000000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
212520
Assets/Prefabs/Player/Human-Custom/Meshes/Human-Custom.asset
Normal file
212520
Assets/Prefabs/Player/Human-Custom/Meshes/Human-Custom.asset
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 62bf78b2835e795498a237fcab75d47f
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 4300000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Prefabs/Player/Human-Custom/Textures.meta
Normal file
8
Assets/Prefabs/Player/Human-Custom/Textures.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6257ed430a7dc644dadd40b81f646bd1
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 758 B |
@@ -0,0 +1,117 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 927aba41a86039f47acd0f6e5fdc8923
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 0
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 32
|
||||||
|
resizeAlgorithm: 1
|
||||||
|
textureFormat: 3
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -1,96 +1,5 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!1 &211504524078169162
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 425108118890909732}
|
|
||||||
- component: {fileID: 641669166220653710}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Prop_R
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &425108118890909732
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 211504524078169162}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 5, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 876336192716036432}
|
|
||||||
m_Father: {fileID: 7709863043280880487}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &641669166220653710
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 211504524078169162}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 04570063543744548b5cc95cea8bbff6, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Synty.Tools.SyntyPropBoneTool.PropBone
|
|
||||||
_wasSpawnedBySyntyTool: 1
|
|
||||||
--- !u!1 &5510832058398597268
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 876336192716036432}
|
|
||||||
- component: {fileID: 5875348249504489215}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Prop_R_Socket
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &876336192716036432
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 5510832058398597268}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0.000000048428777, y: -0.000000026077034, z: 0.70619637, w: -0.70801604}
|
|
||||||
m_LocalPosition: {x: -4.9871373, y: -4.999995, z: 0.000009025123}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 425108118890909732}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &5875348249504489215
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 5510832058398597268}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 04570063543744548b5cc95cea8bbff6, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Synty.Tools.SyntyPropBoneTool.PropBone
|
|
||||||
_wasSpawnedBySyntyTool: 1
|
|
||||||
--- !u!1 &6473031571298860035
|
--- !u!1 &6473031571298860035
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -135,7 +44,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 7701595578038390519}
|
- {fileID: 786837278690046811}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!143 &8278636880930099738
|
--- !u!143 &8278636880930099738
|
||||||
@@ -198,7 +107,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
|
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
|
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
|
||||||
GlobalObjectIdHash: 291279334
|
GlobalObjectIdHash: 652883547
|
||||||
InScenePlacedSourceGlobalObjectIdHash: 0
|
InScenePlacedSourceGlobalObjectIdHash: 0
|
||||||
DeferredDespawnTick: 0
|
DeferredDespawnTick: 0
|
||||||
Ownership: 1
|
Ownership: 1
|
||||||
@@ -325,6 +234,10 @@ MonoBehaviour:
|
|||||||
NameHash: 137525990
|
NameHash: 137525990
|
||||||
Synchronize: 1
|
Synchronize: 1
|
||||||
ParameterType: 9
|
ParameterType: 9
|
||||||
|
- name: Die
|
||||||
|
NameHash: 20298039
|
||||||
|
Synchronize: 1
|
||||||
|
ParameterType: 9
|
||||||
AnimatorParametersExpanded: 0
|
AnimatorParametersExpanded: 0
|
||||||
--- !u!95 &3426985706796420257
|
--- !u!95 &3426985706796420257
|
||||||
Animator:
|
Animator:
|
||||||
@@ -335,7 +248,7 @@ Animator:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 6473031571298860035}
|
m_GameObject: {fileID: 6473031571298860035}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_Avatar: {fileID: 9000000, guid: 038320a534bd8b444b43734860d1a211, type: 3}
|
m_Avatar: {fileID: 9000000, guid: d929f787137059c459b9b4d2bd40da61, type: 2}
|
||||||
m_Controller: {fileID: 9100000, guid: db718381bb2992e469c76c64015e065b, type: 2}
|
m_Controller: {fileID: 9100000, guid: db718381bb2992e469c76c64015e065b, type: 2}
|
||||||
m_CullingMode: 0
|
m_CullingMode: 0
|
||||||
m_UpdateMode: 0
|
m_UpdateMode: 0
|
||||||
@@ -343,10 +256,7 @@ Animator:
|
|||||||
m_LinearVelocityBlending: 0
|
m_LinearVelocityBlending: 0
|
||||||
m_StabilizeFeet: 0
|
m_StabilizeFeet: 0
|
||||||
m_AnimatePhysics: 0
|
m_AnimatePhysics: 0
|
||||||
m_WarningMessage: "\nBinding warning: Some generic clip(s) animate transforms that
|
m_WarningMessage:
|
||||||
are already bound by a Humanoid avatar. These transforms can only be changed
|
|
||||||
by Humanoid clips.\n\tTransform 'Toes_R'\n\tTransform 'Toes_R'\n\tFrom animation
|
|
||||||
clip 'A_Idle_Base_Sword'\n\tFrom animation clip 'A_Attack_LightCombo01A_Sword'"
|
|
||||||
m_HasTransformHierarchy: 1
|
m_HasTransformHierarchy: 1
|
||||||
m_AllowConstantClipSamplingOptimization: 1
|
m_AllowConstantClipSamplingOptimization: 1
|
||||||
m_KeepAnimatorStateOnDisable: 0
|
m_KeepAnimatorStateOnDisable: 0
|
||||||
@@ -457,7 +367,7 @@ MonoBehaviour:
|
|||||||
intelligence:
|
intelligence:
|
||||||
baseValue: 10
|
baseValue: 10
|
||||||
vitality:
|
vitality:
|
||||||
baseValue: 5
|
baseValue: 500
|
||||||
wisdom:
|
wisdom:
|
||||||
baseValue: 100
|
baseValue: 100
|
||||||
spirit:
|
spirit:
|
||||||
@@ -476,13 +386,13 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Weapons.WeaponEquipment
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Weapons.WeaponEquipment
|
||||||
ShowTopMostFoldoutHeaderGroup: 1
|
ShowTopMostFoldoutHeaderGroup: 1
|
||||||
characterStats: {fileID: -5132198055668300151}
|
characterStats: {fileID: -5132198055668300151}
|
||||||
rightHandName: Prop_R_Socket
|
rightHandName: prop_r
|
||||||
leftHandName: Hand_L
|
leftHandName: Hand_L
|
||||||
backName: Spine
|
backName: Spine
|
||||||
hipName: Hip
|
hipName: Hip
|
||||||
twoHandedName:
|
twoHandedName:
|
||||||
startingWeapon: {fileID: 11400000, guid: 646964ccbda84e947b97537d7f7813aa, type: 2}
|
startingWeapon: {fileID: 11400000, guid: 646964ccbda84e947b97537d7f7813aa, type: 2}
|
||||||
--- !u!1001 &7705728874586931617
|
--- !u!1001 &361239394574523229
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@@ -490,107 +400,86 @@ PrefabInstance:
|
|||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 4340744812167131579}
|
m_TransformParent: {fileID: 4340744812167131579}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 1121787054825102, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_IsActive
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1265346787747520, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
|
||||||
propertyPath: m_Name
|
|
||||||
value: Chr_FantasyHero_Preset_14
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalPosition.y
|
propertyPath: m_LocalPosition.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalPosition.z
|
propertyPath: m_LocalPosition.z
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalRotation.w
|
propertyPath: m_LocalRotation.w
|
||||||
value: 1
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalRotation.x
|
propertyPath: m_LocalRotation.x
|
||||||
value: -0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalRotation.y
|
propertyPath: m_LocalRotation.y
|
||||||
value: -0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalRotation.z
|
propertyPath: m_LocalRotation.z
|
||||||
value: -0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 933129746491078306, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 2686076106378794738, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_Name
|
||||||
value: -6.583011
|
value: Human-Custom
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 933129746491078306, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 6512590306137610667, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalPosition.y
|
propertyPath: m_LocalRotation.w
|
||||||
value: -6.5999885
|
value: 0.5015509
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 933129746491078306, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 6512590306137610667, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalPosition.z
|
propertyPath: m_LocalRotation.x
|
||||||
value: 0.00000084909516
|
value: -0.51583874
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4083275338838575672, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 6512590306137610667, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalRotation.y
|
||||||
value: 6.6
|
value: -0.49844423
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4083275338838575672, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 6512590306137610667, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalPosition.y
|
propertyPath: m_LocalRotation.z
|
||||||
value: -0
|
value: 0.48364282
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4083275338838575672, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- target: {fileID: 6512590306137610667, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
propertyPath: m_LocalPosition.z
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
value: 0
|
value: -177.977
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6512590306137610667, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
|
value: 88.333
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6512590306137610667, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
value: -90
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6854449968133871964, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
|
||||||
propertyPath: propBoneConfig
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 11400000, guid: 711015ea15f411b4292b25e68fe06e2d, type: 2}
|
|
||||||
- target: {fileID: 6854449968133871964, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
|
||||||
propertyPath: _propBoneBindings.Array.data[0].bone
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 425108118890909732}
|
|
||||||
- target: {fileID: 6854449968133871964, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
|
||||||
propertyPath: _propBoneBindings.Array.data[0].socket
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 876336192716036432}
|
|
||||||
m_RemovedComponents:
|
m_RemovedComponents:
|
||||||
- {fileID: -5600325556184611898, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
- {fileID: 6894328532986472068, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
m_RemovedGameObjects:
|
m_RemovedGameObjects: []
|
||||||
- {fileID: 5663282852335883768, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
m_AddedGameObjects: []
|
||||||
m_AddedGameObjects:
|
|
||||||
- targetCorrespondingSourceObject: {fileID: 4169362731877062, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
|
||||||
insertIndex: -1
|
|
||||||
addedObject: {fileID: 425108118890909732}
|
|
||||||
m_AddedComponents: []
|
m_AddedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
--- !u!4 &7701595578038390519 stripped
|
--- !u!4 &786837278690046811 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 4978357419315030, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
m_CorrespondingSourceObject: {fileID: 1146176029965363206, guid: ddb893375f0dbd64ea2274bcde4672af, type: 3}
|
||||||
m_PrefabInstance: {fileID: 7705728874586931617}
|
m_PrefabInstance: {fileID: 361239394574523229}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!4 &7709863043280880487 stripped
|
|
||||||
Transform:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 4169362731877062, guid: 0b61a3665c5cd5142bf27be7c52500cf, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 7705728874586931617}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
|||||||
@@ -1851,6 +1851,83 @@ Transform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &1433547822
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1433547825}
|
||||||
|
- component: {fileID: 1433547823}
|
||||||
|
- component: {fileID: 1433547824}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: GameManager
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1433547823
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1433547822}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
|
||||||
|
GlobalObjectIdHash: 2791975254
|
||||||
|
InScenePlacedSourceGlobalObjectIdHash: 0
|
||||||
|
DeferredDespawnTick: 0
|
||||||
|
Ownership: 1
|
||||||
|
AlwaysReplicateAsRoot: 0
|
||||||
|
SynchronizeTransform: 1
|
||||||
|
ActiveSceneSynchronization: 0
|
||||||
|
SceneMigrationSynchronization: 0
|
||||||
|
SpawnWithObservers: 1
|
||||||
|
DontDestroyWithOwner: 0
|
||||||
|
AutoObjectParentSync: 1
|
||||||
|
SyncOwnerTransformWhenParented: 1
|
||||||
|
AllowOwnerToParent: 0
|
||||||
|
--- !u!114 &1433547824
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1433547822}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7bde02fc6ca2ab0468bb3ce777206089, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.GameManager
|
||||||
|
ShowTopMostFoldoutHeaderGroup: 1
|
||||||
|
gameOverUIPrefab: {fileID: 1938792592198155266, guid: e065144df1b7fcc479fd319fb571e171, type: 3}
|
||||||
|
victoryUIPrefab: {fileID: 1938792592198155266, guid: e065144df1b7fcc479fd319fb571e171, type: 3}
|
||||||
|
victoryEffectPrefab: {fileID: 0}
|
||||||
|
gameOverRestartDelay: 5
|
||||||
|
victoryToLobbyDelay: 5
|
||||||
|
debugMode: 1
|
||||||
|
--- !u!4 &1433547825
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1433547822}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -0.70615, y: 0.005, z: 11.36636}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &1716412285 stripped
|
--- !u!114 &1716412285 stripped
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_CorrespondingSourceObject: {fileID: 8269532055776948113, guid: d8795051068c4f84e84c227a6618e587, type: 3}
|
m_CorrespondingSourceObject: {fileID: 8269532055776948113, guid: d8795051068c4f84e84c227a6618e587, type: 3}
|
||||||
@@ -2141,7 +2218,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
||||||
propertyPath: m_LocalRotation.w
|
propertyPath: m_LocalRotation.w
|
||||||
value: 1
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
||||||
propertyPath: m_LocalRotation.x
|
propertyPath: m_LocalRotation.x
|
||||||
@@ -2149,7 +2226,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
||||||
propertyPath: m_LocalRotation.y
|
propertyPath: m_LocalRotation.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
||||||
propertyPath: m_LocalRotation.z
|
propertyPath: m_LocalRotation.z
|
||||||
@@ -2161,7 +2238,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
value: 0
|
value: 180
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
- target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
@@ -2331,3 +2408,4 @@ SceneRoots:
|
|||||||
- {fileID: 260528176}
|
- {fileID: 260528176}
|
||||||
- {fileID: 1990079618}
|
- {fileID: 1990079618}
|
||||||
- {fileID: 1324642684}
|
- {fileID: 1324642684}
|
||||||
|
- {fileID: 1433547825}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using Unity.Behavior;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Action = Unity.Behavior.Action;
|
using Action = Unity.Behavior.Action;
|
||||||
using Unity.Properties;
|
using Unity.Properties;
|
||||||
|
using Colosseum.Combat;
|
||||||
|
|
||||||
[Serializable, GeneratePropertyBag]
|
[Serializable, GeneratePropertyBag]
|
||||||
[NodeDescription(name: "FindTarget", story: "[타겟] 탐색", category: "Action", id: "bb947540549026f3c5625c6d19213311")]
|
[NodeDescription(name: "FindTarget", story: "[타겟] 탐색", category: "Action", id: "bb947540549026f3c5625c6d19213311")]
|
||||||
@@ -21,15 +22,29 @@ public partial class FindTargetAction : Action
|
|||||||
return Status.Failure;
|
return Status.Failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameObject foundTarget = GameObject.FindGameObjectWithTag(Tag.Value);
|
// 모든 타겟 후보 검색
|
||||||
|
GameObject[] candidates = GameObject.FindGameObjectsWithTag(Tag.Value);
|
||||||
|
|
||||||
if (foundTarget == null)
|
if (candidates == null || candidates.Length == 0)
|
||||||
{
|
{
|
||||||
return Status.Failure;
|
return Status.Failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
Target.Value = foundTarget;
|
// 사망하지 않은 타겟 찾기
|
||||||
return Status.Success;
|
foreach (GameObject candidate in candidates)
|
||||||
|
{
|
||||||
|
IDamageable damageable = candidate.GetComponent<IDamageable>();
|
||||||
|
|
||||||
|
// IDamageable이 없거나 살아있는 경우 타겟으로 선택
|
||||||
|
if (damageable == null || !damageable.IsDead)
|
||||||
|
{
|
||||||
|
Target.Value = candidate;
|
||||||
|
return Status.Success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 살아있는 타겟이 없음
|
||||||
|
return Status.Failure;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
22
Assets/Scripts/AI/BehaviorActions/Actions/IsDieCondition.cs
Normal file
22
Assets/Scripts/AI/BehaviorActions/Actions/IsDieCondition.cs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
using System;
|
||||||
|
using Unity.Behavior;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[Serializable, Unity.Properties.GeneratePropertyBag]
|
||||||
|
[Condition(name: "isDie", story: "죽었는지 확인", category: "Conditions", id: "8067176f9f490e7d974824f8087de448")]
|
||||||
|
public partial class IsDieCondition : Condition
|
||||||
|
{
|
||||||
|
|
||||||
|
public override bool IsTrue()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnStart()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnEnd()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3d2c81704b2be4c4289bcf5555059b87
|
||||||
@@ -3,6 +3,7 @@ using Unity.Behavior;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Action = Unity.Behavior.Action;
|
using Action = Unity.Behavior.Action;
|
||||||
using Unity.Properties;
|
using Unity.Properties;
|
||||||
|
using Colosseum.Combat;
|
||||||
|
|
||||||
[Serializable, GeneratePropertyBag]
|
[Serializable, GeneratePropertyBag]
|
||||||
[NodeDescription(name: "SetTargetInRange", story: "[거리] 내에 [대상이] 있는지 확인", category: "Action", id: "93b7a5d823a58618d5371c01ef894948")]
|
[NodeDescription(name: "SetTargetInRange", story: "[거리] 내에 [대상이] 있는지 확인", category: "Action", id: "93b7a5d823a58618d5371c01ef894948")]
|
||||||
@@ -32,12 +33,19 @@ public partial class SetTargetInRangeAction : Action
|
|||||||
return Status.Failure;
|
return Status.Failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 가장 가까운 타겟 찾기
|
// 가장 가까운 살아있는 타겟 찾기
|
||||||
GameObject nearestTarget = null;
|
GameObject nearestTarget = null;
|
||||||
float nearestDistance = Range.Value; // Range 내에서만 검색
|
float nearestDistance = Range.Value; // Range 내에서만 검색
|
||||||
|
|
||||||
foreach (GameObject potentialTarget in targets)
|
foreach (GameObject potentialTarget in targets)
|
||||||
{
|
{
|
||||||
|
// 사망한 타겟은 제외
|
||||||
|
IDamageable damageable = potentialTarget.GetComponent<IDamageable>();
|
||||||
|
if (damageable != null && damageable.IsDead)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
float distance = Vector3.Distance(
|
float distance = Vector3.Distance(
|
||||||
GameObject.transform.position,
|
GameObject.transform.position,
|
||||||
potentialTarget.transform.position
|
potentialTarget.transform.position
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ using UnityEngine;
|
|||||||
using Unity.Behavior;
|
using Unity.Behavior;
|
||||||
using Unity.Properties;
|
using Unity.Properties;
|
||||||
using Condition = Unity.Behavior.Condition;
|
using Condition = Unity.Behavior.Condition;
|
||||||
|
using Colosseum.Combat;
|
||||||
|
|
||||||
namespace Colosseum.AI.BehaviorActions.Conditions
|
namespace Colosseum.AI.BehaviorActions.Conditions
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 타겟이 존재하는지 확인합니다.
|
/// 타겟이 존재하고 살아있는지 확인합니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Serializable, GeneratePropertyBag]
|
[Serializable, GeneratePropertyBag]
|
||||||
[NodeDescription(name: "Has Target", story: "Has [Target]", category: "Combat")]
|
[NodeDescription(name: "Has Target", story: "Has [Target]", category: "Combat")]
|
||||||
@@ -18,7 +19,19 @@ namespace Colosseum.AI.BehaviorActions.Conditions
|
|||||||
|
|
||||||
public override bool IsTrue()
|
public override bool IsTrue()
|
||||||
{
|
{
|
||||||
return Target.Value != null && Target.Value.activeInHierarchy;
|
if (Target.Value == null || !Target.Value.activeInHierarchy)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 타겟이 사망했는지 확인
|
||||||
|
IDamageable damageable = Target.Value.GetComponent<IDamageable>();
|
||||||
|
if (damageable != null && damageable.IsDead)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
"Unity.Transport",
|
"Unity.Transport",
|
||||||
"Unity.InputSystem",
|
"Unity.InputSystem",
|
||||||
"Unity.TextMeshPro",
|
"Unity.TextMeshPro",
|
||||||
"Unity.Behavior"
|
"Unity.Behavior",
|
||||||
|
"Unity.Behavior.SerializableGUID"
|
||||||
],
|
],
|
||||||
"includePlatforms": [],
|
"includePlatforms": [],
|
||||||
"excludePlatforms": [],
|
"excludePlatforms": [],
|
||||||
|
|||||||
8
Assets/Scripts/Effects.meta
Normal file
8
Assets/Scripts/Effects.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9598f5b3fb42a1945ab57c2dc55b2815
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
187
Assets/Scripts/Effects/VictoryEffect.cs
Normal file
187
Assets/Scripts/Effects/VictoryEffect.cs
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using UnityEngine;
|
||||||
|
using Colosseum.Enemy;
|
||||||
|
|
||||||
|
namespace Colosseum.Effects
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 보스 승리 연출 이펙트.
|
||||||
|
/// 보스 사망 시 카메라 연출, 이펙트, 슬로우 모션 등을 처리합니다.
|
||||||
|
/// GameManager에 의해 활성화됩니다.
|
||||||
|
/// </summary>
|
||||||
|
public class VictoryEffect : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Header("Victory Settings")]
|
||||||
|
[Tooltip("승리 시 슬로우 모션 배율")]
|
||||||
|
[SerializeField] private float slowMotionScale = 0.3f;
|
||||||
|
|
||||||
|
[Tooltip("슬로우 모션 지속 시간")]
|
||||||
|
[SerializeField] private float slowMotionDuration = 2f;
|
||||||
|
|
||||||
|
[Header("Effects")]
|
||||||
|
[Tooltip("승리 시 생성할 이펙트 프리팹")]
|
||||||
|
[SerializeField] private GameObject victoryEffectPrefab;
|
||||||
|
|
||||||
|
[Tooltip("이펙트 생성 위치 오프셋")]
|
||||||
|
[SerializeField] private Vector3 effectOffset = Vector3.up * 2f;
|
||||||
|
|
||||||
|
[Header("Audio")]
|
||||||
|
[Tooltip("승리 사운드")]
|
||||||
|
[SerializeField] private AudioClip victorySound;
|
||||||
|
|
||||||
|
[Tooltip("사운드 볼륨")]
|
||||||
|
[SerializeField] private float soundVolume = 1f;
|
||||||
|
|
||||||
|
[Header("Debug")]
|
||||||
|
[SerializeField] private bool debugMode = true;
|
||||||
|
|
||||||
|
// 상태
|
||||||
|
private bool isPlaying = false;
|
||||||
|
private float originalTimeScale;
|
||||||
|
private Camera mainCamera;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
mainCamera = Camera.main;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
PlayVictoryEffect();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDisable()
|
||||||
|
{
|
||||||
|
// 시간 스케일 복구
|
||||||
|
if (isPlaying)
|
||||||
|
{
|
||||||
|
Time.timeScale = 1f;
|
||||||
|
isPlaying = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 승리 연출 재생
|
||||||
|
/// </summary>
|
||||||
|
public void PlayVictoryEffect()
|
||||||
|
{
|
||||||
|
if (isPlaying) return;
|
||||||
|
|
||||||
|
StartCoroutine(VictorySequence());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator VictorySequence()
|
||||||
|
{
|
||||||
|
isPlaying = true;
|
||||||
|
originalTimeScale = Time.timeScale;
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[VictoryEffect] Starting victory sequence");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1. 슬로우 모션
|
||||||
|
yield return StartCoroutine(PlaySlowMotion());
|
||||||
|
|
||||||
|
// 2. 카메라 연출
|
||||||
|
yield return StartCoroutine(PlayCameraEffect());
|
||||||
|
|
||||||
|
// 3. 이펙트 생성
|
||||||
|
SpawnVictoryEffect();
|
||||||
|
|
||||||
|
// 4. 사운드 재생
|
||||||
|
PlayVictorySound();
|
||||||
|
|
||||||
|
// 5. 시간 복구
|
||||||
|
Time.timeScale = originalTimeScale;
|
||||||
|
isPlaying = false;
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[VictoryEffect] Victory sequence complete");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator PlaySlowMotion()
|
||||||
|
{
|
||||||
|
float elapsed = 0f;
|
||||||
|
|
||||||
|
while (elapsed < slowMotionDuration)
|
||||||
|
{
|
||||||
|
elapsed += Time.unscaledDeltaTime;
|
||||||
|
float t = elapsed / slowMotionDuration;
|
||||||
|
|
||||||
|
// 처음에는 슬로우, 나중에는 복구
|
||||||
|
if (t < 0.5f)
|
||||||
|
{
|
||||||
|
Time.timeScale = Mathf.Lerp(originalTimeScale, slowMotionScale, t * 2f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Time.timeScale = Mathf.Lerp(slowMotionScale, originalTimeScale, (t - 0.5f) * 2f);
|
||||||
|
}
|
||||||
|
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Time.timeScale = slowMotionScale;
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator PlayCameraEffect()
|
||||||
|
{
|
||||||
|
if (mainCamera == null || BossEnemy.ActiveBoss == null)
|
||||||
|
yield break;
|
||||||
|
|
||||||
|
// 보스 위치로 카메라 이동
|
||||||
|
Transform bossTransform = BossEnemy.ActiveBoss.transform;
|
||||||
|
Vector3 targetPosition = bossTransform.position + effectOffset;
|
||||||
|
|
||||||
|
float elapsed = 0f;
|
||||||
|
float duration = slowMotionDuration * 0.5f;
|
||||||
|
|
||||||
|
while (elapsed < duration)
|
||||||
|
{
|
||||||
|
elapsed += Time.unscaledDeltaTime;
|
||||||
|
|
||||||
|
// 카메라가 보스를 바라보도록
|
||||||
|
mainCamera.transform.LookAt(targetPosition);
|
||||||
|
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SpawnVictoryEffect()
|
||||||
|
{
|
||||||
|
if (victoryEffectPrefab == null) return;
|
||||||
|
|
||||||
|
Vector3 spawnPosition = transform.position + effectOffset;
|
||||||
|
|
||||||
|
if (BossEnemy.ActiveBoss != null)
|
||||||
|
{
|
||||||
|
spawnPosition = BossEnemy.ActiveBoss.transform.position + effectOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
var effect = Instantiate(victoryEffectPrefab, spawnPosition, Quaternion.identity);
|
||||||
|
|
||||||
|
// 일정 시간 후 제거
|
||||||
|
Destroy(effect, 5f);
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[VictoryEffect] Spawned victory effect");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PlayVictorySound()
|
||||||
|
{
|
||||||
|
if (victorySound == null) return;
|
||||||
|
|
||||||
|
AudioSource.PlayClipAtPoint(victorySound, transform.position, soundVolume);
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[VictoryEffect] Played victory sound");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/Effects/VictoryEffect.cs.meta
Normal file
2
Assets/Scripts/Effects/VictoryEffect.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b7cbb78d0cea7014ba69a25271583954
|
||||||
@@ -73,7 +73,7 @@ namespace Colosseum.Enemy
|
|||||||
// BossHealthBarUI 자동 검색
|
// BossHealthBarUI 자동 검색
|
||||||
if (bossHealthBarUI == null)
|
if (bossHealthBarUI == null)
|
||||||
{
|
{
|
||||||
bossHealthBarUI = FindObjectOfType<BossHealthBarUI>();
|
bossHealthBarUI = FindFirstObjectByType<BossHealthBarUI>();
|
||||||
if (bossHealthBarUI == null)
|
if (bossHealthBarUI == null)
|
||||||
{
|
{
|
||||||
Debug.LogWarning($"[BossArea] {name}: BossHealthBarUI를 찾을 수 없습니다.");
|
Debug.LogWarning($"[BossArea] {name}: BossHealthBarUI를 찾을 수 없습니다.");
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ namespace Colosseum.Enemy
|
|||||||
/// 보스 캐릭터. 페이즈 시스템과 동적 AI 전환을 지원합니다.
|
/// 보스 캐릭터. 페이즈 시스템과 동적 AI 전환을 지원합니다.
|
||||||
/// Unity Behavior 패키지를 사용하여 Behavior Tree 기반 AI를 구현합니다.
|
/// Unity Behavior 패키지를 사용하여 Behavior Tree 기반 AI를 구현합니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public class BossEnemy : EnemyBase
|
public class BossEnemy : EnemyBase
|
||||||
{
|
{
|
||||||
[Header("Boss Settings")]
|
[Header("Boss Settings")]
|
||||||
@@ -274,13 +275,16 @@ namespace Colosseum.Enemy
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
base.HandleDeath();
|
// AI 완전 중단 (순서 중요: enabled=false를 먼저 호출하여 Update() 차단)
|
||||||
|
|
||||||
// AI 정지
|
|
||||||
if (behaviorAgent != null)
|
if (behaviorAgent != null)
|
||||||
{
|
{
|
||||||
|
behaviorAgent.enabled = false; // 가장 먼저: Update() 호출 방지
|
||||||
behaviorAgent.End();
|
behaviorAgent.End();
|
||||||
|
behaviorAgent.Graph = null;
|
||||||
}
|
}
|
||||||
|
behaviorAgent = null;
|
||||||
|
|
||||||
|
base.HandleDeath();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Debug
|
#region Debug
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ namespace Colosseum.Enemy
|
|||||||
|
|
||||||
private Animator animator;
|
private Animator animator;
|
||||||
private UnityEngine.AI.NavMeshAgent navMeshAgent;
|
private UnityEngine.AI.NavMeshAgent navMeshAgent;
|
||||||
|
private EnemyBase enemyBase;
|
||||||
private float currentSpeed;
|
private float currentSpeed;
|
||||||
private float speedVelocity;
|
private float speedVelocity;
|
||||||
|
|
||||||
@@ -27,6 +28,7 @@ namespace Colosseum.Enemy
|
|||||||
{
|
{
|
||||||
animator = GetComponent<Animator>();
|
animator = GetComponent<Animator>();
|
||||||
navMeshAgent = GetComponent<UnityEngine.AI.NavMeshAgent>();
|
navMeshAgent = GetComponent<UnityEngine.AI.NavMeshAgent>();
|
||||||
|
enemyBase = GetComponent<EnemyBase>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnNetworkSpawn()
|
public override void OnNetworkSpawn()
|
||||||
@@ -49,6 +51,10 @@ namespace Colosseum.Enemy
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void UpdateAnimationParameters()
|
private void UpdateAnimationParameters()
|
||||||
{
|
{
|
||||||
|
// 사망 상태에서는 애니메이션 파라미터 업데이트 중단
|
||||||
|
if (enemyBase != null && enemyBase.IsDead)
|
||||||
|
return;
|
||||||
|
|
||||||
if (animator == null || navMeshAgent == null)
|
if (animator == null || navMeshAgent == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -71,20 +77,29 @@ namespace Colosseum.Enemy
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void PlayAttack()
|
public void PlayAttack()
|
||||||
{
|
{
|
||||||
if (IsServer && animator != null)
|
if (!IsServer || animator == null)
|
||||||
{
|
return;
|
||||||
animator.SetTrigger(attackTriggerParam);
|
|
||||||
}
|
// 사망 상태에서는 공격 애니메이션 재생하지 않음
|
||||||
|
if (enemyBase != null && enemyBase.IsDead)
|
||||||
|
return;
|
||||||
|
|
||||||
|
animator.SetTrigger(attackTriggerParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 스킬 애니메이션 트리거 (외부에서 호출)
|
/// 스킬 애니메이션 트리거 (외부에서 호출)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void PlaySkill()
|
public void PlaySkill()
|
||||||
{
|
{
|
||||||
if (IsServer && animator != null)
|
if (!IsServer || animator == null)
|
||||||
{
|
return;
|
||||||
animator.SetTrigger(skillTriggerParam);
|
|
||||||
}
|
// 사망 상태에서는 스킬 애니메이션 재생하지 않음
|
||||||
|
if (enemyBase != null && enemyBase.IsDead)
|
||||||
|
return;
|
||||||
|
|
||||||
|
animator.SetTrigger(skillTriggerParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -93,10 +108,14 @@ namespace Colosseum.Enemy
|
|||||||
/// <param name="triggerName">트리거 파라미터 이름</param>
|
/// <param name="triggerName">트리거 파라미터 이름</param>
|
||||||
public void PlayTrigger(string triggerName)
|
public void PlayTrigger(string triggerName)
|
||||||
{
|
{
|
||||||
if (IsServer && animator != null)
|
if (!IsServer || animator == null)
|
||||||
{
|
return;
|
||||||
animator.SetTrigger(triggerName);
|
|
||||||
}
|
// 사망 상태에서는 일반 애니메이션 재생하지 않음
|
||||||
|
if (enemyBase != null && enemyBase.IsDead)
|
||||||
|
return;
|
||||||
|
|
||||||
|
animator.SetTrigger(triggerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ namespace Colosseum.Enemy
|
|||||||
[Header("Data")]
|
[Header("Data")]
|
||||||
[SerializeField] protected EnemyData enemyData;
|
[SerializeField] protected EnemyData enemyData;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 네트워크 동기화 변수
|
// 네트워크 동기화 변수
|
||||||
protected NetworkVariable<float> currentHealth = new NetworkVariable<float>(100f);
|
protected NetworkVariable<float> currentHealth = new NetworkVariable<float>(100f);
|
||||||
protected NetworkVariable<float> currentMana = new NetworkVariable<float>(50f);
|
protected NetworkVariable<float> currentMana = new NetworkVariable<float>(50f);
|
||||||
@@ -90,16 +92,6 @@ namespace Colosseum.Enemy
|
|||||||
isDead.Value = false;
|
isDead.Value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 대미지 적용 (서버에서 실행)
|
/// 대미지 적용 (서버에서 실행)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -150,6 +142,34 @@ namespace Colosseum.Enemy
|
|||||||
return actualHeal;
|
return actualHeal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 사망 애니메이션 재생 (모든 클라이언트에서 실행)
|
||||||
|
/// </summary>
|
||||||
|
[Rpc(SendTo.Everyone)]
|
||||||
|
private void PlayDeathAnimationRpc()
|
||||||
|
{
|
||||||
|
if (animator != null)
|
||||||
|
{
|
||||||
|
// EnemyAnimationController 비활성화 (더 이상 애니메이션 제어하지 않음)
|
||||||
|
var animController = GetComponent<EnemyAnimationController>();
|
||||||
|
if (animController != null)
|
||||||
|
{
|
||||||
|
animController.enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 모든 트리거 리셋
|
||||||
|
animator.ResetTrigger("Attack");
|
||||||
|
animator.ResetTrigger("Skill");
|
||||||
|
animator.ResetTrigger("Hit");
|
||||||
|
animator.ResetTrigger("Jump");
|
||||||
|
animator.ResetTrigger("Land");
|
||||||
|
animator.ResetTrigger("Die");
|
||||||
|
|
||||||
|
// 즉시 Die 상태로 전환 (다른 애니메이션 중단)
|
||||||
|
animator.Play("Die", 0, 0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 사망 처리 (서버에서 실행)
|
/// 사망 처리 (서버에서 실행)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -157,11 +177,16 @@ namespace Colosseum.Enemy
|
|||||||
{
|
{
|
||||||
isDead.Value = true;
|
isDead.Value = true;
|
||||||
|
|
||||||
if (animator != null)
|
// 실행 중인 스킬 즉시 취소
|
||||||
|
var skillController = GetComponent<Colosseum.Skills.SkillController>();
|
||||||
|
if (skillController != null)
|
||||||
{
|
{
|
||||||
animator.SetTrigger("Die");
|
skillController.CancelSkill();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 모든 클라이언트에서 사망 애니메이션 재생
|
||||||
|
PlayDeathAnimationRpc();
|
||||||
|
|
||||||
if (navMeshAgent != null)
|
if (navMeshAgent != null)
|
||||||
{
|
{
|
||||||
navMeshAgent.isStopped = true;
|
navMeshAgent.isStopped = true;
|
||||||
|
|||||||
515
Assets/Scripts/GameManager.cs
Normal file
515
Assets/Scripts/GameManager.cs
Normal file
@@ -0,0 +1,515 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
|
using Unity.Netcode;
|
||||||
|
using Colosseum.Player;
|
||||||
|
using Colosseum.Enemy;
|
||||||
|
|
||||||
|
namespace Colosseum
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 게임 상태 열거형
|
||||||
|
/// </summary>
|
||||||
|
public enum GameState
|
||||||
|
{
|
||||||
|
Waiting, // 대기 중
|
||||||
|
Playing, // 게임 진행 중
|
||||||
|
GameOver, // 게임 오버
|
||||||
|
Victory // 승리
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 게임 전체를 관리하는 매니저.
|
||||||
|
/// 게임 상태, 플레이어 사망 체크, 승리/패배 조건을 처리합니다.
|
||||||
|
/// </summary>
|
||||||
|
public class GameManager : NetworkBehaviour
|
||||||
|
{
|
||||||
|
[Header("UI Prefabs")]
|
||||||
|
[Tooltip("게임 오버 UI 프리팹")]
|
||||||
|
[SerializeField] private GameObject gameOverUIPrefab;
|
||||||
|
|
||||||
|
[Tooltip("승리 UI 프리팹")]
|
||||||
|
[SerializeField] private GameObject victoryUIPrefab;
|
||||||
|
|
||||||
|
[Tooltip("승리 연출 이펙트 프리팹")]
|
||||||
|
[SerializeField] private GameObject victoryEffectPrefab;
|
||||||
|
|
||||||
|
[Header("Settings")]
|
||||||
|
[Tooltip("게임 오버 후 재시작까지 대기 시간")]
|
||||||
|
[SerializeField] private float gameOverRestartDelay = 5f;
|
||||||
|
|
||||||
|
[Tooltip("승리 후 로비로 이동까지 대기 시간")]
|
||||||
|
[SerializeField] private float victoryToLobbyDelay = 5f;
|
||||||
|
|
||||||
|
[Header("Debug")]
|
||||||
|
[SerializeField] private bool debugMode = true;
|
||||||
|
|
||||||
|
// 싱글톤
|
||||||
|
public static GameManager Instance { get; private set; }
|
||||||
|
|
||||||
|
// 게임 상태
|
||||||
|
private NetworkVariable<GameState> currentState = new NetworkVariable<GameState>(GameState.Waiting);
|
||||||
|
|
||||||
|
// 인스턴스화된 UI
|
||||||
|
private GameObject gameOverUIInstance;
|
||||||
|
private GameObject victoryUIInstance;
|
||||||
|
private GameObject victoryEffectInstance;
|
||||||
|
|
||||||
|
// 이벤트
|
||||||
|
public event Action<GameState> OnGameStateChanged;
|
||||||
|
public event Action OnGameOver;
|
||||||
|
public event Action OnVictory;
|
||||||
|
|
||||||
|
// Properties
|
||||||
|
public GameState CurrentState => currentState.Value;
|
||||||
|
public bool IsGameOver => currentState.Value == GameState.GameOver;
|
||||||
|
public bool IsVictory => currentState.Value == GameState.Victory;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
// 싱글톤 설정
|
||||||
|
if (Instance != null && Instance != this)
|
||||||
|
{
|
||||||
|
Destroy(gameObject);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Instance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnNetworkSpawn()
|
||||||
|
{
|
||||||
|
currentState.OnValueChanged += HandleGameStateChanged;
|
||||||
|
|
||||||
|
// 네트워크 씬 로드 이벤트 구독
|
||||||
|
if (NetworkManager.Singleton.SceneManager != null)
|
||||||
|
{
|
||||||
|
NetworkManager.Singleton.SceneManager.OnLoadEventCompleted += OnSceneLoadCompleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
// UI 인스턴스화 (모든 클라이언트에서)
|
||||||
|
SpawnUI();
|
||||||
|
|
||||||
|
if (IsServer)
|
||||||
|
{
|
||||||
|
// 플레이어 사망 이벤트 구독
|
||||||
|
StartCoroutine(WaitForPlayersAndSubscribe());
|
||||||
|
|
||||||
|
// 보스 사망 이벤트 구독
|
||||||
|
SubscribeToBossEvents();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSceneLoadCompleted(string sceneName, LoadSceneMode loadSceneMode, List<ulong> clientsCompleted, List<ulong> clientsTimedOut)
|
||||||
|
{
|
||||||
|
if (loadSceneMode == LoadSceneMode.Single)
|
||||||
|
{
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log($"[GameManager] Scene loaded: {sceneName}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 씬 로드 완료 시 플레이어 리스폰
|
||||||
|
if (IsServer)
|
||||||
|
{
|
||||||
|
RespawnAllPlayersClientRpc();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rpc(SendTo.ClientsAndHost)]
|
||||||
|
private void RespawnAllPlayersClientRpc()
|
||||||
|
{
|
||||||
|
// 모든 플레이어 리스폰
|
||||||
|
var players = FindObjectsByType<PlayerNetworkController>(FindObjectsSortMode.None);
|
||||||
|
foreach (var player in players)
|
||||||
|
{
|
||||||
|
player.Respawn();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 카메라 재설정
|
||||||
|
var playerMovement = FindObjectsByType<PlayerMovement>(FindObjectsSortMode.None);
|
||||||
|
foreach (var movement in playerMovement)
|
||||||
|
{
|
||||||
|
movement.RefreshCamera();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnNetworkDespawn()
|
||||||
|
{
|
||||||
|
currentState.OnValueChanged -= HandleGameStateChanged;
|
||||||
|
|
||||||
|
// 네트워크 씬 로드 이벤트 구독 해제
|
||||||
|
if (NetworkManager.Singleton.SceneManager != null)
|
||||||
|
{
|
||||||
|
NetworkManager.Singleton.SceneManager.OnLoadEventCompleted -= OnSceneLoadCompleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
// UI 정리
|
||||||
|
CleanupUI();
|
||||||
|
|
||||||
|
if (IsServer)
|
||||||
|
{
|
||||||
|
UnsubscribeFromPlayerEvents();
|
||||||
|
UnsubscribeFromBossEvents();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region UI Management
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UI 프리팹 인스턴스화
|
||||||
|
/// </summary>
|
||||||
|
private void SpawnUI()
|
||||||
|
{
|
||||||
|
// Canvas 찾기 또는 생성
|
||||||
|
Canvas canvas = FindOrCreateCanvas();
|
||||||
|
|
||||||
|
// 게임 오버 UI
|
||||||
|
if (gameOverUIPrefab != null)
|
||||||
|
{
|
||||||
|
gameOverUIInstance = Instantiate(gameOverUIPrefab, canvas.transform);
|
||||||
|
gameOverUIInstance.name = "GameOverUI";
|
||||||
|
gameOverUIInstance.SetActive(false);
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[GameManager] GameOverUI instantiated");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 승리 UI
|
||||||
|
if (victoryUIPrefab != null)
|
||||||
|
{
|
||||||
|
victoryUIInstance = Instantiate(victoryUIPrefab, canvas.transform);
|
||||||
|
victoryUIInstance.name = "VictoryUI";
|
||||||
|
victoryUIInstance.SetActive(false);
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[GameManager] VictoryUI instantiated");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 승리 연출 이펙트
|
||||||
|
if (victoryEffectPrefab != null)
|
||||||
|
{
|
||||||
|
victoryEffectInstance = Instantiate(victoryEffectPrefab);
|
||||||
|
victoryEffectInstance.name = "VictoryEffect";
|
||||||
|
victoryEffectInstance.SetActive(false);
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[GameManager] VictoryEffect instantiated");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Canvas 찾기 또는 생성
|
||||||
|
/// </summary>
|
||||||
|
private Canvas FindOrCreateCanvas()
|
||||||
|
{
|
||||||
|
// 기존 Canvas 찾기
|
||||||
|
Canvas canvas = FindFirstObjectByType<Canvas>();
|
||||||
|
|
||||||
|
if (canvas == null)
|
||||||
|
{
|
||||||
|
// 새 Canvas 생성
|
||||||
|
var canvasObject = new GameObject("GameUI Canvas");
|
||||||
|
canvas = canvasObject.AddComponent<Canvas>();
|
||||||
|
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
||||||
|
canvasObject.AddComponent<UnityEngine.UI.CanvasScaler>();
|
||||||
|
canvasObject.AddComponent<UnityEngine.UI.GraphicRaycaster>();
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[GameManager] Created new Canvas");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return canvas;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UI 정리
|
||||||
|
/// </summary>
|
||||||
|
private void CleanupUI()
|
||||||
|
{
|
||||||
|
if (gameOverUIInstance != null)
|
||||||
|
{
|
||||||
|
Destroy(gameOverUIInstance);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (victoryUIInstance != null)
|
||||||
|
{
|
||||||
|
Destroy(victoryUIInstance);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (victoryEffectInstance != null)
|
||||||
|
{
|
||||||
|
Destroy(victoryEffectInstance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private void HandleGameStateChanged(GameState oldValue, GameState newValue)
|
||||||
|
{
|
||||||
|
OnGameStateChanged?.Invoke(newValue);
|
||||||
|
|
||||||
|
// UI 활성화/비활성화
|
||||||
|
UpdateUIVisibility(newValue);
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log($"[GameManager] State changed: {oldValue} -> {newValue}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateUIVisibility(GameState state)
|
||||||
|
{
|
||||||
|
// 게임 오버 UI
|
||||||
|
if (gameOverUIInstance != null)
|
||||||
|
{
|
||||||
|
gameOverUIInstance.SetActive(state == GameState.GameOver);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 승리 UI
|
||||||
|
if (victoryUIInstance != null)
|
||||||
|
{
|
||||||
|
victoryUIInstance.SetActive(state == GameState.Victory);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 승리 연출
|
||||||
|
if (victoryEffectInstance != null && state == GameState.Victory)
|
||||||
|
{
|
||||||
|
victoryEffectInstance.SetActive(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Player Death Tracking
|
||||||
|
|
||||||
|
private List<PlayerNetworkController> alivePlayers = new List<PlayerNetworkController>();
|
||||||
|
|
||||||
|
private IEnumerator WaitForPlayersAndSubscribe()
|
||||||
|
{
|
||||||
|
// 플레이어들이 스폰될 때까지 대기
|
||||||
|
yield return new WaitForSeconds(1f);
|
||||||
|
|
||||||
|
SubscribeToPlayerEvents();
|
||||||
|
|
||||||
|
// 게임 시작
|
||||||
|
SetGameState(GameState.Playing);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SubscribeToPlayerEvents()
|
||||||
|
{
|
||||||
|
var players = FindObjectsByType<PlayerNetworkController>(FindObjectsSortMode.None);
|
||||||
|
foreach (var player in players)
|
||||||
|
{
|
||||||
|
player.OnDeath += HandlePlayerDeath;
|
||||||
|
if (!player.IsDead)
|
||||||
|
{
|
||||||
|
alivePlayers.Add(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log($"[GameManager] Subscribed to {players.Length} players, {alivePlayers.Count} alive");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UnsubscribeFromPlayerEvents()
|
||||||
|
{
|
||||||
|
var players = FindObjectsByType<PlayerNetworkController>(FindObjectsSortMode.None);
|
||||||
|
foreach (var player in players)
|
||||||
|
{
|
||||||
|
player.OnDeath -= HandlePlayerDeath;
|
||||||
|
}
|
||||||
|
alivePlayers.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandlePlayerDeath(PlayerNetworkController player)
|
||||||
|
{
|
||||||
|
alivePlayers.Remove(player);
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log($"[GameManager] Player died. Alive: {alivePlayers.Count}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 모든 플레이어 사망 체크
|
||||||
|
if (alivePlayers.Count == 0)
|
||||||
|
{
|
||||||
|
TriggerGameOver();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Boss Death Tracking
|
||||||
|
|
||||||
|
private void SubscribeToBossEvents()
|
||||||
|
{
|
||||||
|
BossEnemy.OnBossSpawned += HandleBossSpawned;
|
||||||
|
|
||||||
|
// 이미 스폰된 보스가 있는지 확인
|
||||||
|
if (BossEnemy.ActiveBoss != null)
|
||||||
|
{
|
||||||
|
SubscribeToBossDeath(BossEnemy.ActiveBoss);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UnsubscribeFromBossEvents()
|
||||||
|
{
|
||||||
|
BossEnemy.OnBossSpawned -= HandleBossSpawned;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleBossSpawned(BossEnemy boss)
|
||||||
|
{
|
||||||
|
SubscribeToBossDeath(boss);
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log($"[GameManager] Boss spawned: {boss.name}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SubscribeToBossDeath(BossEnemy boss)
|
||||||
|
{
|
||||||
|
boss.OnDeath += HandleBossDeath;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleBossDeath()
|
||||||
|
{
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[GameManager] Boss died!");
|
||||||
|
}
|
||||||
|
|
||||||
|
TriggerVictory();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Game State Management
|
||||||
|
|
||||||
|
private void SetGameState(GameState newState)
|
||||||
|
{
|
||||||
|
if (!IsServer) return;
|
||||||
|
|
||||||
|
currentState.Value = newState;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 게임 오버 처리 (서버에서만 실행)
|
||||||
|
/// </summary>
|
||||||
|
public void TriggerGameOver()
|
||||||
|
{
|
||||||
|
if (!IsServer || currentState.Value != GameState.Playing) return;
|
||||||
|
|
||||||
|
SetGameState(GameState.GameOver);
|
||||||
|
OnGameOver?.Invoke();
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[GameManager] Game Over!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// N초 후 씬 재시작
|
||||||
|
StartCoroutine(RestartSceneAfterDelay(gameOverRestartDelay));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 승리 처리 (서버에서만 실행)
|
||||||
|
/// </summary>
|
||||||
|
public void TriggerVictory()
|
||||||
|
{
|
||||||
|
if (!IsServer || currentState.Value != GameState.Playing) return;
|
||||||
|
|
||||||
|
SetGameState(GameState.Victory);
|
||||||
|
OnVictory?.Invoke();
|
||||||
|
|
||||||
|
if (debugMode)
|
||||||
|
{
|
||||||
|
Debug.Log("[GameManager] Victory!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// N초 후 씬 재시작 (또는 로비로 이동)
|
||||||
|
StartCoroutine(RestartSceneAfterDelay(victoryToLobbyDelay));
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator RestartSceneAfterDelay(float delay)
|
||||||
|
{
|
||||||
|
yield return new WaitForSeconds(delay);
|
||||||
|
|
||||||
|
// 현재 씬 다시 로드
|
||||||
|
string currentScene = SceneManager.GetActiveScene().name;
|
||||||
|
|
||||||
|
if (IsServer)
|
||||||
|
{
|
||||||
|
// 네트워크 씬 관리 사용
|
||||||
|
NetworkManager.Singleton.SceneManager.LoadScene(currentScene, LoadSceneMode.Single);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Utility
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 살아있는 플레이어 목록 반환
|
||||||
|
/// </summary>
|
||||||
|
public List<PlayerNetworkController> GetAlivePlayers()
|
||||||
|
{
|
||||||
|
return alivePlayers.Where(p => p != null && !p.IsDead).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 랜덤한 살아있는 플레이어 반환 (관전용)
|
||||||
|
/// </summary>
|
||||||
|
public PlayerNetworkController GetRandomAlivePlayer()
|
||||||
|
{
|
||||||
|
var alive = GetAlivePlayers();
|
||||||
|
if (alive.Count == 0) return null;
|
||||||
|
|
||||||
|
return alive[UnityEngine.Random.Range(0, alive.Count)];
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/GameManager.cs.meta
Normal file
2
Assets/Scripts/GameManager.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7bde02fc6ca2ab0468bb3ce777206089
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
|
|
||||||
namespace Colosseum.Player
|
namespace Colosseum.Player
|
||||||
{
|
{
|
||||||
@@ -20,11 +21,35 @@ namespace Colosseum.Player
|
|||||||
private float pitch;
|
private float pitch;
|
||||||
private Camera cameraInstance;
|
private Camera cameraInstance;
|
||||||
private InputSystem_Actions inputActions;
|
private InputSystem_Actions inputActions;
|
||||||
|
private bool isSpectating = false;
|
||||||
|
|
||||||
|
public Transform Target => target;
|
||||||
|
public bool IsSpectating => isSpectating;
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDisable()
|
||||||
|
{
|
||||||
|
SceneManager.sceneLoaded -= OnSceneLoaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
||||||
|
{
|
||||||
|
// 씬 로드 시 카메라 참조 갱신
|
||||||
|
RefreshCamera();
|
||||||
|
SnapToTarget();
|
||||||
|
|
||||||
|
Debug.Log($"[PlayerCamera] Scene loaded, camera refreshed");
|
||||||
|
}
|
||||||
|
|
||||||
public void Initialize(Transform playerTransform, InputSystem_Actions actions)
|
public void Initialize(Transform playerTransform, InputSystem_Actions actions)
|
||||||
{
|
{
|
||||||
target = playerTransform;
|
target = playerTransform;
|
||||||
inputActions = actions;
|
inputActions = actions;
|
||||||
|
isSpectating = false;
|
||||||
|
|
||||||
// 기존 메인 카메라 사용 또는 새로 생성
|
// 기존 메인 카메라 사용 또는 새로 생성
|
||||||
cameraInstance = Camera.main;
|
cameraInstance = Camera.main;
|
||||||
@@ -36,12 +61,73 @@ namespace Colosseum.Player
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 초기 각도
|
// 초기 각도
|
||||||
yaw = target.eulerAngles.y;
|
if (target != null)
|
||||||
|
{
|
||||||
|
yaw = target.eulerAngles.y;
|
||||||
|
}
|
||||||
pitch = 20f;
|
pitch = 20f;
|
||||||
|
|
||||||
|
// 카메라 위치를 즉시 타겟 위치로 초기화
|
||||||
|
SnapToTarget();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 관전 대상 변경
|
||||||
|
/// </summary>
|
||||||
|
public void SetTarget(Transform newTarget)
|
||||||
|
{
|
||||||
|
if (newTarget == null) return;
|
||||||
|
|
||||||
|
target = newTarget;
|
||||||
|
isSpectating = true;
|
||||||
|
|
||||||
|
// 부드러운 전환을 위해 현재 카메라 위치에서 새 타겟으로
|
||||||
|
yaw = target.eulerAngles.y;
|
||||||
|
|
||||||
|
Debug.Log($"[PlayerCamera] Now spectating: {target.name}");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 원래 플레이어로 복귀
|
||||||
|
/// </summary>
|
||||||
|
public void ResetToPlayer(Transform playerTransform)
|
||||||
|
{
|
||||||
|
target = playerTransform;
|
||||||
|
isSpectating = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 카메라 위치를 타겟 위치로 즉시 이동 (부드러운 전환 없이)
|
||||||
|
/// </summary>
|
||||||
|
public void SnapToTarget()
|
||||||
|
{
|
||||||
|
if (target == null || cameraInstance == null) return;
|
||||||
|
|
||||||
|
Quaternion rotation = Quaternion.Euler(pitch, yaw, 0f);
|
||||||
|
Vector3 offset = rotation * new Vector3(0f, 0f, -distance);
|
||||||
|
offset.y += height;
|
||||||
|
|
||||||
|
cameraInstance.transform.position = target.position + offset;
|
||||||
|
cameraInstance.transform.LookAt(target.position + Vector3.up * height * 0.5f);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 카메라 참조 갱신 (씬 전환 후 호출)
|
||||||
|
/// </summary>
|
||||||
|
public void RefreshCamera()
|
||||||
|
{
|
||||||
|
// 씬 전환 시 항상 새 카메라 참조 획득
|
||||||
|
cameraInstance = Camera.main;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LateUpdate()
|
private void LateUpdate()
|
||||||
{
|
{
|
||||||
|
// 카메라 참조가 없으면 갱신 시도
|
||||||
|
if (cameraInstance == null)
|
||||||
|
{
|
||||||
|
RefreshCamera();
|
||||||
|
}
|
||||||
|
|
||||||
if (target == null || cameraInstance == null) return;
|
if (target == null || cameraInstance == null) return;
|
||||||
|
|
||||||
HandleRotation();
|
HandleRotation();
|
||||||
|
|||||||
@@ -75,6 +75,17 @@ namespace Colosseum.Player
|
|||||||
SetSpawnPosition();
|
SetSpawnPosition();
|
||||||
|
|
||||||
// Input Actions 초기화
|
// Input Actions 초기화
|
||||||
|
InitializeInputActions();
|
||||||
|
|
||||||
|
// 카메라 설정
|
||||||
|
SetupCamera();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 입력 액션 초기화
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeInputActions()
|
||||||
|
{
|
||||||
inputActions = new InputSystem_Actions();
|
inputActions = new InputSystem_Actions();
|
||||||
inputActions.Player.Enable();
|
inputActions.Player.Enable();
|
||||||
|
|
||||||
@@ -84,11 +95,42 @@ namespace Colosseum.Player
|
|||||||
|
|
||||||
// Jump 액션 콜백 등록
|
// Jump 액션 콜백 등록
|
||||||
inputActions.Player.Jump.performed += OnJumpPerformed;
|
inputActions.Player.Jump.performed += OnJumpPerformed;
|
||||||
|
|
||||||
// 카메라 설정
|
|
||||||
SetupCamera();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 입력 액션 해제
|
||||||
|
/// </summary>
|
||||||
|
private void CleanupInputActions()
|
||||||
|
{
|
||||||
|
if (inputActions != null)
|
||||||
|
{
|
||||||
|
inputActions.Player.Move.performed -= OnMovePerformed;
|
||||||
|
inputActions.Player.Move.canceled -= OnMoveCanceled;
|
||||||
|
inputActions.Player.Jump.performed -= OnJumpPerformed;
|
||||||
|
inputActions.Player.Disable();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDisable()
|
||||||
|
{
|
||||||
|
// 컴포넌트 비활성화 시 입력 해제
|
||||||
|
CleanupInputActions();
|
||||||
|
|
||||||
|
// 입력 초기화
|
||||||
|
moveInput = Vector2.zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
// 컴포넌트 재활성화 시 입력 다시 등록
|
||||||
|
if (IsOwner && inputActions != null)
|
||||||
|
{
|
||||||
|
inputActions.Player.Enable();
|
||||||
|
inputActions.Player.Move.performed += OnMovePerformed;
|
||||||
|
inputActions.Player.Move.canceled += OnMoveCanceled;
|
||||||
|
inputActions.Player.Jump.performed += OnJumpPerformed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 스폰 위치 설정
|
/// 스폰 위치 설정
|
||||||
@@ -107,34 +149,24 @@ namespace Colosseum.Player
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 네트워크 정리리
|
/// 네트워크 정리
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void OnNetworkDespawn()
|
public override void OnNetworkDespawn()
|
||||||
{
|
{
|
||||||
if (inputActions != null)
|
CleanupInputActions();
|
||||||
{
|
|
||||||
inputActions.Player.Move.performed -= OnMovePerformed;
|
|
||||||
inputActions.Player.Move.canceled -= OnMoveCanceled;
|
|
||||||
inputActions.Player.Jump.performed -= OnJumpPerformed;
|
|
||||||
inputActions.Disable();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void OnMovePerformed(InputAction.CallbackContext context)
|
private void OnMovePerformed(InputAction.CallbackContext context)
|
||||||
{
|
{
|
||||||
moveInput = context.ReadValue<Vector2>();
|
moveInput = context.ReadValue<Vector2>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void OnMoveCanceled(InputAction.CallbackContext context)
|
private void OnMoveCanceled(InputAction.CallbackContext context)
|
||||||
{
|
{
|
||||||
moveInput = Vector2.zero;
|
moveInput = Vector2.zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void OnJumpPerformed(InputAction.CallbackContext context)
|
private void OnJumpPerformed(InputAction.CallbackContext context)
|
||||||
{
|
{
|
||||||
if (!isJumping && characterController.isGrounded)
|
if (!isJumping && characterController.isGrounded)
|
||||||
@@ -143,7 +175,6 @@ namespace Colosseum.Player
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void SetupCamera()
|
private void SetupCamera()
|
||||||
{
|
{
|
||||||
var cameraController = GetComponent<PlayerCamera>();
|
var cameraController = GetComponent<PlayerCamera>();
|
||||||
@@ -154,6 +185,13 @@ namespace Colosseum.Player
|
|||||||
cameraController.Initialize(transform, inputActions);
|
cameraController.Initialize(transform, inputActions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 카메라 재설정 (씬 로드 후 호출)
|
||||||
|
/// </summary>
|
||||||
|
public void RefreshCamera()
|
||||||
|
{
|
||||||
|
SetupCamera();
|
||||||
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
@@ -163,7 +201,6 @@ namespace Colosseum.Player
|
|||||||
Move();
|
Move();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ApplyGravity()
|
private void ApplyGravity()
|
||||||
{
|
{
|
||||||
if (wasGrounded && velocity.y < 0)
|
if (wasGrounded && velocity.y < 0)
|
||||||
@@ -176,7 +213,6 @@ namespace Colosseum.Player
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void Move()
|
private void Move()
|
||||||
{
|
{
|
||||||
if (characterController == null) return;
|
if (characterController == null) return;
|
||||||
@@ -218,7 +254,6 @@ namespace Colosseum.Player
|
|||||||
wasGrounded = characterController.isGrounded;
|
wasGrounded = characterController.isGrounded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void Jump()
|
private void Jump()
|
||||||
{
|
{
|
||||||
isJumping = true;
|
isJumping = true;
|
||||||
@@ -232,7 +267,6 @@ namespace Colosseum.Player
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 점프 중 상태가 끝나면 IsJumping = false;
|
/// 점프 중 상태가 끝나면 IsJumping = false;
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -241,7 +275,6 @@ namespace Colosseum.Player
|
|||||||
isJumping = false;
|
isJumping = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private Vector3 TransformDirectionByCamera(Vector3 direction)
|
private Vector3 TransformDirectionByCamera(Vector3 direction)
|
||||||
{
|
{
|
||||||
if (Camera.main == null) return direction;
|
if (Camera.main == null) return direction;
|
||||||
@@ -259,7 +292,6 @@ namespace Colosseum.Player
|
|||||||
return cameraRight * direction.x + cameraForward * direction.z;
|
return cameraRight * direction.x + cameraForward * direction.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 루트 모션 처리. 스킬 애니메이션 중에 애니메이션의 이동/회전 데이터를 적용합니다.
|
/// 루트 모션 처리. 스킬 애니메이션 중에 애니메이션의 이동/회전 데이터를 적용합니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ namespace Colosseum.Player
|
|||||||
// 네트워크 동기화 변수
|
// 네트워크 동기화 변수
|
||||||
private NetworkVariable<float> currentHealth = new NetworkVariable<float>(100f);
|
private NetworkVariable<float> currentHealth = new NetworkVariable<float>(100f);
|
||||||
private NetworkVariable<float> currentMana = new NetworkVariable<float>(50f);
|
private NetworkVariable<float> currentMana = new NetworkVariable<float>(50f);
|
||||||
|
private NetworkVariable<bool> isDead = new NetworkVariable<bool>(false);
|
||||||
|
|
||||||
public float Health => currentHealth.Value;
|
public float Health => currentHealth.Value;
|
||||||
public float Mana => currentMana.Value;
|
public float Mana => currentMana.Value;
|
||||||
@@ -29,9 +30,13 @@ namespace Colosseum.Player
|
|||||||
public event Action<float, float> OnHealthChanged; // (oldValue, newValue)
|
public event Action<float, float> OnHealthChanged; // (oldValue, newValue)
|
||||||
public event Action<float, float> OnManaChanged; // (oldValue, newValue)
|
public event Action<float, float> OnManaChanged; // (oldValue, newValue)
|
||||||
|
|
||||||
|
// 사망 이벤트
|
||||||
|
public event Action<PlayerNetworkController> OnDeath;
|
||||||
|
public event Action<bool> OnDeathStateChanged; // (isDead)
|
||||||
|
|
||||||
// IDamageable 구현
|
// IDamageable 구현
|
||||||
public float CurrentHealth => currentHealth.Value;
|
public float CurrentHealth => currentHealth.Value;
|
||||||
public bool IsDead => currentHealth.Value <= 0f;
|
public bool IsDead => isDead.Value;
|
||||||
|
|
||||||
public override void OnNetworkSpawn()
|
public override void OnNetworkSpawn()
|
||||||
{
|
{
|
||||||
@@ -44,12 +49,14 @@ namespace Colosseum.Player
|
|||||||
// 네트워크 변수 변경 콜백 등록
|
// 네트워크 변수 변경 콜백 등록
|
||||||
currentHealth.OnValueChanged += HandleHealthChanged;
|
currentHealth.OnValueChanged += HandleHealthChanged;
|
||||||
currentMana.OnValueChanged += HandleManaChanged;
|
currentMana.OnValueChanged += HandleManaChanged;
|
||||||
|
isDead.OnValueChanged += HandleDeathStateChanged;
|
||||||
|
|
||||||
// 초기화
|
// 초기화
|
||||||
if (IsServer)
|
if (IsServer)
|
||||||
{
|
{
|
||||||
currentHealth.Value = MaxHealth;
|
currentHealth.Value = MaxHealth;
|
||||||
currentMana.Value = MaxMana;
|
currentMana.Value = MaxMana;
|
||||||
|
isDead.Value = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,6 +65,7 @@ namespace Colosseum.Player
|
|||||||
// 콜백 해제
|
// 콜백 해제
|
||||||
currentHealth.OnValueChanged -= HandleHealthChanged;
|
currentHealth.OnValueChanged -= HandleHealthChanged;
|
||||||
currentMana.OnValueChanged -= HandleManaChanged;
|
currentMana.OnValueChanged -= HandleManaChanged;
|
||||||
|
isDead.OnValueChanged -= HandleDeathStateChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleHealthChanged(float oldValue, float newValue)
|
private void HandleHealthChanged(float oldValue, float newValue)
|
||||||
@@ -70,12 +78,19 @@ namespace Colosseum.Player
|
|||||||
OnManaChanged?.Invoke(oldValue, newValue);
|
OnManaChanged?.Invoke(oldValue, newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void HandleDeathStateChanged(bool oldValue, bool newValue)
|
||||||
|
{
|
||||||
|
OnDeathStateChanged?.Invoke(newValue);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 대미지 적용 (서버에서만 실행)
|
/// 대미지 적용 (서버에서만 실행)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Rpc(SendTo.Server)]
|
[Rpc(SendTo.Server)]
|
||||||
public void TakeDamageRpc(float damage)
|
public void TakeDamageRpc(float damage)
|
||||||
{
|
{
|
||||||
|
if (isDead.Value) return;
|
||||||
|
|
||||||
currentHealth.Value = Mathf.Max(0f, currentHealth.Value - damage);
|
currentHealth.Value = Mathf.Max(0f, currentHealth.Value - damage);
|
||||||
|
|
||||||
if (currentHealth.Value <= 0f)
|
if (currentHealth.Value <= 0f)
|
||||||
@@ -111,10 +126,84 @@ namespace Colosseum.Player
|
|||||||
currentMana.Value = Mathf.Min(MaxMana, currentMana.Value + amount);
|
currentMana.Value = Mathf.Min(MaxMana, currentMana.Value + amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 사망 애니메이션 재생 (모든 클라이언트에서 실행)
|
||||||
|
/// </summary>
|
||||||
|
[Rpc(SendTo.Everyone)]
|
||||||
|
private void PlayDeathAnimationRpc()
|
||||||
|
{
|
||||||
|
var animator = GetComponentInChildren<Animator>();
|
||||||
|
if (animator != null)
|
||||||
|
{
|
||||||
|
animator.SetTrigger("Die");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 사망 처리 (서버에서만 실행)
|
||||||
|
/// </summary>
|
||||||
private void HandleDeath()
|
private void HandleDeath()
|
||||||
{
|
{
|
||||||
// TODO: 사망 처리 로직
|
if (isDead.Value) return;
|
||||||
Debug.Log($"Player {OwnerClientId} died!");
|
|
||||||
|
isDead.Value = true;
|
||||||
|
|
||||||
|
// 이동 비활성화
|
||||||
|
var movement = GetComponent<PlayerMovement>();
|
||||||
|
if (movement != null)
|
||||||
|
{
|
||||||
|
movement.enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 스킬 입력 비활성화
|
||||||
|
var skillInput = GetComponent<PlayerSkillInput>();
|
||||||
|
if (skillInput != null)
|
||||||
|
{
|
||||||
|
skillInput.enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 모든 클라이언트에서 사망 애니메이션 재생
|
||||||
|
PlayDeathAnimationRpc();
|
||||||
|
|
||||||
|
// 사망 이벤트 발생
|
||||||
|
OnDeath?.Invoke(this);
|
||||||
|
|
||||||
|
Debug.Log($"[Player] Player {OwnerClientId} died!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 리스폰 (서버에서만 실행)
|
||||||
|
/// </summary>
|
||||||
|
public void Respawn()
|
||||||
|
{
|
||||||
|
if (!IsServer) return;
|
||||||
|
|
||||||
|
isDead.Value = false;
|
||||||
|
currentHealth.Value = MaxHealth;
|
||||||
|
currentMana.Value = MaxMana;
|
||||||
|
|
||||||
|
// 이동 재활성화
|
||||||
|
var movement = GetComponent<PlayerMovement>();
|
||||||
|
if (movement != null)
|
||||||
|
{
|
||||||
|
movement.enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 스킬 입력 재활성화
|
||||||
|
var skillInput = GetComponent<PlayerSkillInput>();
|
||||||
|
if (skillInput != null)
|
||||||
|
{
|
||||||
|
skillInput.enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 애니메이션 리셋
|
||||||
|
var animator = GetComponentInChildren<Animator>();
|
||||||
|
if (animator != null)
|
||||||
|
{
|
||||||
|
animator.Rebind();
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.Log($"[Player] Player {OwnerClientId} respawned!");
|
||||||
}
|
}
|
||||||
|
|
||||||
#region IDamageable
|
#region IDamageable
|
||||||
@@ -123,7 +212,7 @@ namespace Colosseum.Player
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public float TakeDamage(float damage, object source = null)
|
public float TakeDamage(float damage, object source = null)
|
||||||
{
|
{
|
||||||
if (!IsServer) return 0f;
|
if (!IsServer || isDead.Value) return 0f;
|
||||||
|
|
||||||
float actualDamage = Mathf.Min(damage, currentHealth.Value);
|
float actualDamage = Mathf.Min(damage, currentHealth.Value);
|
||||||
currentHealth.Value = Mathf.Max(0f, currentHealth.Value - damage);
|
currentHealth.Value = Mathf.Max(0f, currentHealth.Value - damage);
|
||||||
@@ -141,7 +230,7 @@ namespace Colosseum.Player
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public float Heal(float amount)
|
public float Heal(float amount)
|
||||||
{
|
{
|
||||||
if (!IsServer) return 0f;
|
if (!IsServer || isDead.Value) return 0f;
|
||||||
|
|
||||||
float actualHeal = Mathf.Min(amount, MaxHealth - currentHealth.Value);
|
float actualHeal = Mathf.Min(amount, MaxHealth - currentHealth.Value);
|
||||||
currentHealth.Value = Mathf.Min(MaxHealth, currentHealth.Value + amount);
|
currentHealth.Value = Mathf.Min(MaxHealth, currentHealth.Value + amount);
|
||||||
|
|||||||
@@ -107,6 +107,10 @@ namespace Colosseum.Player
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 사망 상태 체크
|
||||||
|
if (networkController != null && networkController.IsDead)
|
||||||
|
return;
|
||||||
|
|
||||||
// 로컬 체크 (빠른 피드백용)
|
// 로컬 체크 (빠른 피드백용)
|
||||||
if (skillController.IsExecutingSkill)
|
if (skillController.IsExecutingSkill)
|
||||||
{
|
{
|
||||||
@@ -145,6 +149,10 @@ namespace Colosseum.Player
|
|||||||
if (skill == null) return;
|
if (skill == null) return;
|
||||||
|
|
||||||
// 서버에서 다시 검증
|
// 서버에서 다시 검증
|
||||||
|
// 사망 상태 체크
|
||||||
|
if (networkController != null && networkController.IsDead)
|
||||||
|
return;
|
||||||
|
|
||||||
if (skillController.IsExecutingSkill || skillController.IsOnCooldown(skill))
|
if (skillController.IsExecutingSkill || skillController.IsOnCooldown(skill))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
195
Assets/Scripts/Player/PlayerSpectator.cs
Normal file
195
Assets/Scripts/Player/PlayerSpectator.cs
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Colosseum.Player;
|
||||||
|
|
||||||
|
namespace Colosseum.Player
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 플레이어 관전 시스템.
|
||||||
|
/// 사망한 플레이어가 살아있는 플레이어를 관찰할 수 있게 합니다.
|
||||||
|
/// </summary>
|
||||||
|
public class PlayerSpectator : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Header("References")]
|
||||||
|
[Tooltip("PlayerCamera 컴포넌트")]
|
||||||
|
[SerializeField] private PlayerCamera playerCamera;
|
||||||
|
|
||||||
|
[Tooltip("PlayerNetworkController 컴포넌트")]
|
||||||
|
[SerializeField] private PlayerNetworkController networkController;
|
||||||
|
|
||||||
|
[Header("Spectate Settings")]
|
||||||
|
[Tooltip("관전 대상 전환 키")]
|
||||||
|
[SerializeField] private KeyCode nextTargetKey = KeyCode.Tab;
|
||||||
|
|
||||||
|
[Tooltip("관전 UI 표시 여부")]
|
||||||
|
[SerializeField] private bool showSpectateUI = true;
|
||||||
|
|
||||||
|
// 관전 상태
|
||||||
|
private bool isSpectating = false;
|
||||||
|
private int currentSpectateIndex = 0;
|
||||||
|
private List<PlayerNetworkController> alivePlayers = new List<PlayerNetworkController>();
|
||||||
|
|
||||||
|
// 이벤트
|
||||||
|
public event System.Action<bool> OnSpectateModeChanged; // (isSpectating)
|
||||||
|
public event System.Action<PlayerNetworkController> OnSpectateTargetChanged;
|
||||||
|
|
||||||
|
// Properties
|
||||||
|
public bool IsSpectating => isSpectating;
|
||||||
|
public PlayerNetworkController CurrentTarget => alivePlayers.Count > currentSpectateIndex ? alivePlayers[currentSpectateIndex] : null;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
// 컴포넌트 자동 참조
|
||||||
|
if (playerCamera == null)
|
||||||
|
playerCamera = GetComponent<PlayerCamera>();
|
||||||
|
if (networkController == null)
|
||||||
|
networkController = GetComponentInParent<PlayerNetworkController>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
if (networkController != null)
|
||||||
|
{
|
||||||
|
networkController.OnDeathStateChanged += HandleDeathStateChanged;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
if (networkController != null)
|
||||||
|
{
|
||||||
|
networkController.OnDeathStateChanged -= HandleDeathStateChanged;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (!isSpectating) return;
|
||||||
|
|
||||||
|
// Tab 키로 다음 관전 대상 전환
|
||||||
|
if (Input.GetKeyDown(nextTargetKey))
|
||||||
|
{
|
||||||
|
CycleToNextTarget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleDeathStateChanged(bool dead)
|
||||||
|
{
|
||||||
|
if (dead)
|
||||||
|
{
|
||||||
|
StartSpectating();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StopSpectating();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 관전 모드 시작
|
||||||
|
/// </summary>
|
||||||
|
private void StartSpectating()
|
||||||
|
{
|
||||||
|
// 살아있는 플레이어 목록 갱신
|
||||||
|
RefreshAlivePlayers();
|
||||||
|
|
||||||
|
if (alivePlayers.Count == 0)
|
||||||
|
{
|
||||||
|
// 관전할 플레이어가 없음 (게임 오버)
|
||||||
|
Debug.Log("[PlayerSpectator] No alive players to spectate");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
isSpectating = true;
|
||||||
|
currentSpectateIndex = 0;
|
||||||
|
|
||||||
|
// 첫 번째 살아있는 플레이어 관전
|
||||||
|
SetSpectateTarget(alivePlayers[currentSpectateIndex]);
|
||||||
|
|
||||||
|
OnSpectateModeChanged?.Invoke(true);
|
||||||
|
|
||||||
|
Debug.Log($"[PlayerSpectator] Started spectating. {alivePlayers.Count} players alive.");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 관전 모드 종료
|
||||||
|
/// </summary>
|
||||||
|
private void StopSpectating()
|
||||||
|
{
|
||||||
|
isSpectating = false;
|
||||||
|
alivePlayers.Clear();
|
||||||
|
currentSpectateIndex = 0;
|
||||||
|
|
||||||
|
// 원래 플레이어로 카메라 복귀
|
||||||
|
if (playerCamera != null && networkController != null)
|
||||||
|
{
|
||||||
|
playerCamera.ResetToPlayer(networkController.transform);
|
||||||
|
}
|
||||||
|
|
||||||
|
OnSpectateModeChanged?.Invoke(false);
|
||||||
|
|
||||||
|
Debug.Log("[PlayerSpectator] Stopped spectating");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 살아있는 플레이어 목록 갱신
|
||||||
|
/// </summary>
|
||||||
|
private void RefreshAlivePlayers()
|
||||||
|
{
|
||||||
|
alivePlayers.Clear();
|
||||||
|
|
||||||
|
var allPlayers = FindObjectsByType<PlayerNetworkController>(FindObjectsSortMode.None);
|
||||||
|
foreach (var player in allPlayers)
|
||||||
|
{
|
||||||
|
// 자신이 아니고, 살아있는 플레이어만 추가
|
||||||
|
if (player != networkController && !player.IsDead)
|
||||||
|
{
|
||||||
|
alivePlayers.Add(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 다음 관전 대상으로 전환
|
||||||
|
/// </summary>
|
||||||
|
private void CycleToNextTarget()
|
||||||
|
{
|
||||||
|
if (alivePlayers.Count == 0) return;
|
||||||
|
|
||||||
|
// 목록 갱신 (중간에 사망했을 수 있음)
|
||||||
|
RefreshAlivePlayers();
|
||||||
|
|
||||||
|
if (alivePlayers.Count == 0)
|
||||||
|
{
|
||||||
|
Debug.Log("[PlayerSpectator] No more alive players");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentSpectateIndex = (currentSpectateIndex + 1) % alivePlayers.Count;
|
||||||
|
SetSpectateTarget(alivePlayers[currentSpectateIndex]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 관전 대상 설정
|
||||||
|
/// </summary>
|
||||||
|
private void SetSpectateTarget(PlayerNetworkController target)
|
||||||
|
{
|
||||||
|
if (target == null || playerCamera == null) return;
|
||||||
|
|
||||||
|
playerCamera.SetTarget(target.transform);
|
||||||
|
OnSpectateTargetChanged?.Invoke(target);
|
||||||
|
|
||||||
|
Debug.Log($"[PlayerSpectator] Now spectating: Player {target.OwnerClientId}");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 현재 관전 대상 이름 반환 (UI용)
|
||||||
|
/// </summary>
|
||||||
|
public string GetCurrentTargetName()
|
||||||
|
{
|
||||||
|
var target = CurrentTarget;
|
||||||
|
if (target == null) return "None";
|
||||||
|
return $"Player {target.OwnerClientId}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/Player/PlayerSpectator.cs.meta
Normal file
2
Assets/Scripts/Player/PlayerSpectator.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ace7240dc9e5c834892fc1a0e4ea657e
|
||||||
@@ -104,6 +104,14 @@ namespace Colosseum.Skills
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 사망 상태면 스킬 사용 불가
|
||||||
|
var damageable = GetComponent<Colosseum.Combat.IDamageable>();
|
||||||
|
if (damageable != null && damageable.IsDead)
|
||||||
|
{
|
||||||
|
if (debugMode) Debug.Log($"[Skill] Cannot execute skill - owner is dead");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (IsExecutingSkill)
|
if (IsExecutingSkill)
|
||||||
{
|
{
|
||||||
if (debugMode) Debug.Log($"Already executing skill: {currentSkill.SkillName}");
|
if (debugMode) Debug.Log($"Already executing skill: {currentSkill.SkillName}");
|
||||||
@@ -204,6 +212,14 @@ namespace Colosseum.Skills
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 사망 상태면 효과 발동 중단
|
||||||
|
var damageable = GetComponent<Colosseum.Combat.IDamageable>();
|
||||||
|
if (damageable != null && damageable.IsDead)
|
||||||
|
{
|
||||||
|
if (debugMode) Debug.Log($"[Effect] Cancelled - owner is dead");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var effects = currentSkill.Effects;
|
var effects = currentSkill.Effects;
|
||||||
if (index < 0 || index >= effects.Count)
|
if (index < 0 || index >= effects.Count)
|
||||||
{
|
{
|
||||||
|
|||||||
59
Assets/Scripts/UI/GameOverUI.cs
Normal file
59
Assets/Scripts/UI/GameOverUI.cs
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
namespace Colosseum.UI
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 게임 오버 UI 컨트롤러.
|
||||||
|
/// GameManager에 의해 활성화/비활성화됩니다.
|
||||||
|
/// </summary>
|
||||||
|
public class GameOverUI : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Header("UI References")]
|
||||||
|
[Tooltip("게임 오버 텍스트")]
|
||||||
|
[SerializeField] private TMP_Text gameOverText;
|
||||||
|
|
||||||
|
[Tooltip("재시작 카운트다운 텍스트")]
|
||||||
|
[SerializeField] private TMP_Text countdownText;
|
||||||
|
|
||||||
|
[Tooltip("게임 오버 애니메이터")]
|
||||||
|
[SerializeField] private Animator animator;
|
||||||
|
|
||||||
|
[Header("Settings")]
|
||||||
|
[Tooltip("게임 오버 텍스트")]
|
||||||
|
[SerializeField] private string gameOverMessage = "GAME OVER";
|
||||||
|
|
||||||
|
[Tooltip("텍스트 색상")]
|
||||||
|
[SerializeField] private Color textColor = Color.red;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
if (gameOverText != null)
|
||||||
|
{
|
||||||
|
gameOverText.text = gameOverMessage;
|
||||||
|
gameOverText.color = textColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
// 애니메이션 재생
|
||||||
|
if (animator != null)
|
||||||
|
{
|
||||||
|
animator.SetTrigger("Show");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 카운트다운 텍스트 업데이트
|
||||||
|
/// </summary>
|
||||||
|
public void UpdateCountdown(int seconds)
|
||||||
|
{
|
||||||
|
if (countdownText != null)
|
||||||
|
{
|
||||||
|
countdownText.text = $"Restarting in {seconds}...";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/UI/GameOverUI.cs.meta
Normal file
2
Assets/Scripts/UI/GameOverUI.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f87daf25f7fc5c4499b66d327b6c4cf2
|
||||||
55
Assets/Scripts/UI/VictoryUI.cs
Normal file
55
Assets/Scripts/UI/VictoryUI.cs
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using TMPro;
|
||||||
|
using Colosseum.Enemy;
|
||||||
|
|
||||||
|
namespace Colosseum.UI
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 승리 UI 컨트롤러.
|
||||||
|
/// GameManager에 의해 활성화/비활성화됩니다.
|
||||||
|
/// </summary>
|
||||||
|
public class VictoryUI : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Header("UI References")]
|
||||||
|
[Tooltip("승리 텍스트")]
|
||||||
|
[SerializeField] private TMP_Text victoryText;
|
||||||
|
|
||||||
|
[Tooltip("보스 이름 텍스트")]
|
||||||
|
[SerializeField] private TMP_Text bossNameText;
|
||||||
|
|
||||||
|
[Tooltip("승리 애니메이터")]
|
||||||
|
[SerializeField] private Animator animator;
|
||||||
|
|
||||||
|
[Header("Settings")]
|
||||||
|
[Tooltip("승리 텍스트")]
|
||||||
|
[SerializeField] private string victoryMessage = "VICTORY!";
|
||||||
|
|
||||||
|
[Tooltip("텍스트 색상")]
|
||||||
|
[SerializeField] private Color textColor = Color.yellow;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
if (victoryText != null)
|
||||||
|
{
|
||||||
|
victoryText.text = victoryMessage;
|
||||||
|
victoryText.color = textColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
// 보스 이름 표시
|
||||||
|
if (bossNameText != null && BossEnemy.ActiveBoss != null)
|
||||||
|
{
|
||||||
|
bossNameText.text = $"{BossEnemy.ActiveBoss.name} Defeated!";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 애니메이션 재생
|
||||||
|
if (animator != null)
|
||||||
|
{
|
||||||
|
animator.SetTrigger("Show");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/UI/VictoryUI.cs.meta
Normal file
2
Assets/Scripts/UI/VictoryUI.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 514ff17abf102744faf81dbad1251d86
|
||||||
8
Assets/UI.meta
Normal file
8
Assets/UI.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 234c17013f7c78c4eb212589df6b536b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
407
Assets/UI/GameOverUI.prefab
Normal file
407
Assets/UI/GameOverUI.prefab
Normal file
@@ -0,0 +1,407 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &162577879235020810
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6109749063779144982}
|
||||||
|
- component: {fileID: 1992416582183126197}
|
||||||
|
- component: {fileID: 4959534019430341632}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Panel
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6109749063779144982
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 162577879235020810}
|
||||||
|
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: []
|
||||||
|
m_Father: {fileID: 4163202138303394689}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &1992416582183126197
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 162577879235020810}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &4959534019430341632
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 162577879235020810}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &1728479283364781770
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4148806134096376600}
|
||||||
|
- component: {fileID: 7574421299062878701}
|
||||||
|
- component: {fileID: 8706607564708062978}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Countdown Text
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4148806134096376600
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1728479283364781770}
|
||||||
|
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: []
|
||||||
|
m_Father: {fileID: 4163202138303394689}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: -40}
|
||||||
|
m_SizeDelta: {x: 200, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &7574421299062878701
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1728479283364781770}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &8706607564708062978
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1728479283364781770}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text: 10
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 36
|
||||||
|
m_fontSizeBase: 36
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 2
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!1 &1938792592198155266
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4163202138303394689}
|
||||||
|
- component: {fileID: 2357082315040616664}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: GameOverUI
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4163202138303394689
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1938792592198155266}
|
||||||
|
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: 6109749063779144982}
|
||||||
|
- {fileID: 4076138169726692703}
|
||||||
|
- {fileID: 4148806134096376600}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 1000, y: 400}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &2357082315040616664
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1938792592198155266}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f87daf25f7fc5c4499b66d327b6c4cf2, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.UI.GameOverUI
|
||||||
|
gameOverText: {fileID: 2190484291226054109}
|
||||||
|
countdownText: {fileID: 8706607564708062978}
|
||||||
|
animator: {fileID: 0}
|
||||||
|
gameOverMessage: GAME OVER
|
||||||
|
textColor: {r: 1, g: 0, b: 0, a: 1}
|
||||||
|
--- !u!1 &6913274211359747875
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4076138169726692703}
|
||||||
|
- component: {fileID: 8449413046750003098}
|
||||||
|
- component: {fileID: 2190484291226054109}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: GameOver Text
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4076138169726692703
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6913274211359747875}
|
||||||
|
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: []
|
||||||
|
m_Father: {fileID: 4163202138303394689}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 200, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8449413046750003098
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6913274211359747875}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &2190484291226054109
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6913274211359747875}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text: Game Over
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 36
|
||||||
|
m_fontSizeBase: 36
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
7
Assets/UI/GameOverUI.prefab.meta
Normal file
7
Assets/UI/GameOverUI.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e065144df1b7fcc479fd319fb571e171
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Weapons.meta
Normal file
8
Assets/Weapons.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 04fddcb54eaa74d4399d38660dbed012
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
31
Assets/Weapons/NewWeapon.asset
Normal file
31
Assets/Weapons/NewWeapon.asset
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
%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: 52134ecd4c816f64888d34b2163e7af1, type: 3}
|
||||||
|
m_Name: NewWeapon
|
||||||
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Weapons.WeaponData
|
||||||
|
weaponName: "\uAC80"
|
||||||
|
description:
|
||||||
|
icon: {fileID: 21300000, guid: 70e07ab1b9f326b4bae30fe839d609ea, type: 3}
|
||||||
|
weaponSlot: 0
|
||||||
|
weaponPrefab: {fileID: 1631607032641582, guid: 92cfe4029ea2b754caa0b3f00d52d41a, type: 3}
|
||||||
|
positionOffset: {x: 0, y: 0, z: 0}
|
||||||
|
rotationOffset: {x: 0, y: 0, z: 0}
|
||||||
|
scale: {x: 1, y: 1, z: 1}
|
||||||
|
strengthBonus: 0
|
||||||
|
dexterityBonus: 0
|
||||||
|
intelligenceBonus: 0
|
||||||
|
vitalityBonus: 0
|
||||||
|
wisdomBonus: 0
|
||||||
|
spiritBonus: 0
|
||||||
|
damageMultiplier: 1
|
||||||
|
rangeMultiplier: 1
|
||||||
|
manaCostMultiplier: 1
|
||||||
8
Assets/Weapons/NewWeapon.asset.meta
Normal file
8
Assets/Weapons/NewWeapon.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 646964ccbda84e947b97537d7f7813aa
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
81
Assets/Weapons/SM_Wep_Sword_01.prefab
Normal file
81
Assets/Weapons/SM_Wep_Sword_01.prefab
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &1631607032641582
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4561571508225656}
|
||||||
|
- component: {fileID: 33122181552623900}
|
||||||
|
- component: {fileID: 23019494539852092}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: SM_Wep_Sword_01
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &4561571508225656
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1631607032641582}
|
||||||
|
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_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!33 &33122181552623900
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1631607032641582}
|
||||||
|
m_Mesh: {fileID: 4300000, guid: a29e10a78af23e243949a44795e2787f, type: 3}
|
||||||
|
--- !u!23 &23019494539852092
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1631607032641582}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: ea128b040f8b0af4c9d2de400aaff30a, 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
|
||||||
9
Assets/Weapons/SM_Wep_Sword_01.prefab.meta
Normal file
9
Assets/Weapons/SM_Wep_Sword_01.prefab.meta
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 92cfe4029ea2b754caa0b3f00d52d41a
|
||||||
|
timeCreated: 1554786157
|
||||||
|
licenseType: Store
|
||||||
|
NativeFormatImporter:
|
||||||
|
mainObjectFileID: 100100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
<Solution>
|
<Solution>
|
||||||
<Project Path="Assembly-CSharp.csproj" />
|
<Project Path="Assembly-CSharp.csproj" />
|
||||||
<Project Path="Colosseum.Game.csproj" />
|
<Project Path="Colosseum.Game.csproj" />
|
||||||
|
<Project Path="SidekickCharacters.csproj" />
|
||||||
|
<Project Path="Gilzoide.SqliteNet.csproj" />
|
||||||
<Project Path="Assembly-CSharp-Editor.csproj" />
|
<Project Path="Assembly-CSharp-Editor.csproj" />
|
||||||
|
<Project Path="SidekickCharacters.Editor.csproj" />
|
||||||
|
<Project Path="Gilzoide.SqliteNet.Tests.Editor.csproj" />
|
||||||
</Solution>
|
</Solution>
|
||||||
|
|||||||
Reference in New Issue
Block a user