Compare commits
2 Commits
3663692b9d
...
7ff9332333
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ff9332333 | |||
| ce883e4fa3 |
@@ -15,7 +15,7 @@ MonoBehaviour:
|
||||
assetVersion: 2
|
||||
m_TextWrappingMode: 1
|
||||
m_enableKerning: 1
|
||||
m_ActiveFontFeatures: 00000000
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
m_enableTintAllSprites: 0
|
||||
m_enableParseEscapeCharacters: 1
|
||||
@@ -33,20 +33,18 @@ MonoBehaviour:
|
||||
m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50}
|
||||
m_autoSizeTextContainer: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_fallbackFontAssets: []
|
||||
m_fallbackFontAssets:
|
||||
- {fileID: 11400000, guid: ef44cbe516f6f9f418375e5b2b73ad8d, type: 2}
|
||||
m_matchMaterialPreset: 1
|
||||
m_HideSubTextObjects: 0
|
||||
m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45,
|
||||
type: 2}
|
||||
m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45, type: 2}
|
||||
m_defaultSpriteAssetPath: Sprite Assets/
|
||||
m_enableEmojiSupport: 1
|
||||
m_MissingCharacterSpriteUnicode: 0
|
||||
m_EmojiFallbackTextAssets: []
|
||||
m_defaultColorGradientPresetsPath: Color Gradient Presets/
|
||||
m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e,
|
||||
type: 2}
|
||||
m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e, type: 2}
|
||||
m_StyleSheetsResourcePath:
|
||||
m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3}
|
||||
m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b,
|
||||
type: 3}
|
||||
m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b, type: 3}
|
||||
m_UseModernHangulLineBreakingRules: 0
|
||||
|
||||
@@ -5091,8 +5091,8 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.UI.DebugPanelUI
|
||||
stunAbnormalityData: {fileID: 0}
|
||||
silenceAbnormalityData: {fileID: 0}
|
||||
panelWidth: 280
|
||||
panelMaxHeight: 500
|
||||
panelWidth: 420
|
||||
panelMaxHeight: 800
|
||||
--- !u!1001 &989227100
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -7636,6 +7636,7 @@ GameObject:
|
||||
- component: {fileID: 1433547825}
|
||||
- component: {fileID: 1433547823}
|
||||
- component: {fileID: 1433547824}
|
||||
- component: {fileID: 1433547826}
|
||||
m_Layer: 0
|
||||
m_Name: GameManager
|
||||
m_TagString: Untagged
|
||||
@@ -7703,6 +7704,18 @@ Transform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1433547826
|
||||
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: 3faf1bf9fabb1c24bbe4c2c2f4b400da, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.UI.UIModeController
|
||||
--- !u!4 &1455748734 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 7132605379903659868, guid: 5b4ac53b97612ae4392b84786de0d50d, type: 3}
|
||||
@@ -11338,6 +11351,14 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Drog
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8818883032728065057, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
||||
propertyPath: registeredClips.Array.size
|
||||
value: 8
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8818883032728065057, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3}
|
||||
propertyPath: 'registeredClips.Array.data[7]'
|
||||
value:
|
||||
objectReference: {fileID: 7400000, guid: c8fdea7dee0c6f04bbd27fe565071682, type: 2}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
22691
Assets/_Game/Animations/Anim_Drog_펀치R.anim
Normal file
22691
Assets/_Game/Animations/Anim_Drog_펀치R.anim
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba7f94b04f2a39d40817c0d902438abb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
guid: c8fdea7dee0c6f04bbd27fe565071682
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/_Game/Animations/Anim_Drog_펀치R.fbx
Normal file
BIN
Assets/_Game/Animations/Anim_Drog_펀치R.fbx
Normal file
Binary file not shown.
751
Assets/_Game/Animations/Anim_Drog_펀치R.fbx.meta
Normal file
751
Assets/_Game/Animations/Anim_Drog_펀치R.fbx.meta
Normal file
@@ -0,0 +1,751 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f4a36d944d67ba1468efa4c0bfd794aa
|
||||
ModelImporter:
|
||||
serializedVersion: 24200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 3
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
generateMeshLods: 0
|
||||
meshLodGenerationFlags: 0
|
||||
maximumMeshLod: -1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human:
|
||||
- boneName: Hips
|
||||
humanName: Hips
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: UpperLeg_L
|
||||
humanName: LeftUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: UpperLeg_R
|
||||
humanName: RightUpperLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: LowerLeg_L
|
||||
humanName: LeftLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: LowerLeg_R
|
||||
humanName: RightLowerLeg
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Ankle_L
|
||||
humanName: LeftFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Ankle_R
|
||||
humanName: RightFoot
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Spine_01
|
||||
humanName: Spine
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Spine_02
|
||||
humanName: Chest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Neck
|
||||
humanName: Neck
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Head
|
||||
humanName: Head
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Clavicle_L
|
||||
humanName: LeftShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Clavicle_R
|
||||
humanName: RightShoulder
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Shoulder_L
|
||||
humanName: LeftUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Shoulder_R
|
||||
humanName: RightUpperArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Elbow_L
|
||||
humanName: LeftLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Elbow_R
|
||||
humanName: RightLowerArm
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Hand_L
|
||||
humanName: LeftHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Hand_R
|
||||
humanName: RightHand
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Ball_L
|
||||
humanName: LeftToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Ball_R
|
||||
humanName: RightToes
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Eyes
|
||||
humanName: RightEye
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Eyebrows
|
||||
humanName: Jaw
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Thumb_01
|
||||
humanName: Left Thumb Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Thumb_02
|
||||
humanName: Left Thumb Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Thumb_03
|
||||
humanName: Left Thumb Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: IndexFinger_01
|
||||
humanName: Left Index Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: IndexFinger_02
|
||||
humanName: Left Index Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: IndexFinger_03
|
||||
humanName: Left Index Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Finger_01
|
||||
humanName: Left Little Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Finger_02
|
||||
humanName: Left Little Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Finger_03
|
||||
humanName: Left Little Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Thumb_011
|
||||
humanName: Right Thumb Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Thumb_021
|
||||
humanName: Right Thumb Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Thumb_031
|
||||
humanName: Right Thumb Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: IndexFinger_011
|
||||
humanName: Right Index Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: IndexFinger_021
|
||||
humanName: Right Index Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: IndexFinger_031
|
||||
humanName: Right Index Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Finger_011
|
||||
humanName: Right Little Proximal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Finger_021
|
||||
humanName: Right Little Intermediate
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Finger_031
|
||||
humanName: Right Little Distal
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
- boneName: Spine_03
|
||||
humanName: UpperChest
|
||||
limit:
|
||||
min: {x: 0, y: 0, z: 0}
|
||||
max: {x: 0, y: 0, z: 0}
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
length: 0
|
||||
modified: 0
|
||||
skeleton:
|
||||
- name: Mutant Punch (2)(Clone)
|
||||
parentName:
|
||||
position: {x: 0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_BarbarianGiant_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_ElementalGolem_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_FortGolem_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_Troll_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_RedDemon_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_Big_Ork_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_Pig_Butcher_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_Slayer_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_MechanicalGolem_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_MutantGuy_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Character_Dwarf_01
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Root
|
||||
parentName: Mutant Punch (2)(Clone)
|
||||
position: {x: -0.000000173226, y: 0.0023214668, z: 0.009713413}
|
||||
rotation: {x: -0, y: -0, z: 2.8825275e-10, w: 1}
|
||||
scale: {x: 1, y: 1, z: 0.99999994}
|
||||
- name: Hips
|
||||
parentName: Root
|
||||
position: {x: -0, y: 0.8762761, z: 0}
|
||||
rotation: {x: 1.9457519e-10, y: -5.915681e-11, z: 0.16770099, w: 0.98583794}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: Spine_01
|
||||
parentName: Hips
|
||||
position: {x: 0.03397978, y: 0.0969857, z: -0.015528781}
|
||||
rotation: {x: -0.39460623, y: 0.58675885, z: -0.5664237, w: 0.42327797}
|
||||
scale: {x: 1.0000024, y: 1.0000023, z: 1.0000012}
|
||||
- name: Spine_02
|
||||
parentName: Spine_01
|
||||
position: {x: -0.18151169, y: 4.5519144e-17, z: -1.1814681e-17}
|
||||
rotation: {x: 0.99518615, y: -0.09800278, z: 0.000000014901159, w: 0.000000059604638}
|
||||
scale: {x: 1.0000026, y: 1.000003, z: 1.0000026}
|
||||
- name: Spine_03
|
||||
parentName: Spine_02
|
||||
position: {x: -0.17903724, y: 2.5588683e-17, z: -5.236993e-15}
|
||||
rotation: {x: -0.9781116, y: 0.20808107, z: -0.000000005258666, w: 0.000000031233306}
|
||||
scale: {x: 1.0000013, y: 1.0000018, z: 1.0000013}
|
||||
- name: Neck
|
||||
parentName: Spine_03
|
||||
position: {x: -0.18112935, y: 0.0169739, z: -0.0000000011960342}
|
||||
rotation: {x: 0.00000006825501, y: -0.000000046894097, z: 0.30901593, w: 0.95105696}
|
||||
scale: {x: 0.999999, y: 1.000002, z: 1.0000013}
|
||||
- name: Head
|
||||
parentName: Neck
|
||||
position: {x: -0.08285272, y: 0.036295444, z: -0.0000000011654561}
|
||||
rotation: {x: -0.000000010939373, y: 0.0000000755821, z: 0.10955097, w: 0.9939812}
|
||||
scale: {x: 0.9999983, y: 1.0000013, z: 0.99999887}
|
||||
- name: Eyebrows
|
||||
parentName: Head
|
||||
position: {x: -0.19999892, y: 0.02186953, z: 1.6423345e-10}
|
||||
rotation: {x: 0.8059356, y: -0.5920033, z: -0.000000013565712, w: 0.000000040741558}
|
||||
scale: {x: 1.0000042, y: 0.99999815, z: 1.0000012}
|
||||
- name: Eyes
|
||||
parentName: Head
|
||||
position: {x: -0.18457133, y: 0.010586951, z: 7.950428e-11}
|
||||
rotation: {x: 0.15786925, y: -0.6892586, z: 0.15786928, w: 0.6892586}
|
||||
scale: {x: 0.9999998, y: 1.0000042, z: 0.9999954}
|
||||
- name: Clavicle_L
|
||||
parentName: Spine_03
|
||||
position: {x: -0.07733449, y: -0.0015139526, z: -0.16716343}
|
||||
rotation: {x: 0.42177835, y: -0.6243929, z: 0.4255878, w: 0.5011103}
|
||||
scale: {x: 1.0000002, y: 1.0000015, z: 0.99999887}
|
||||
- name: Shoulder_L
|
||||
parentName: Clavicle_L
|
||||
position: {x: -0.16134125, y: -4.7947756e-17, z: -5.7731595e-17}
|
||||
rotation: {x: 0.0028544364, y: 0.05185222, z: -0.054891802, w: 0.997141}
|
||||
scale: {x: 1, y: 1, z: 0.99999994}
|
||||
- name: Elbow_L
|
||||
parentName: Shoulder_L
|
||||
position: {x: -0.4568335, y: -1.3457903e-16, z: 2.1094237e-16}
|
||||
rotation: {x: 0.00000006286427, y: 0.059024416, z: -0.000000013620591, w: 0.9982566}
|
||||
scale: {x: 0.9999998, y: 1, z: 0.9999998}
|
||||
- name: Hand_L
|
||||
parentName: Elbow_L
|
||||
position: {x: -0.3286817, y: -5.684342e-16, z: 1.4654943e-16}
|
||||
rotation: {x: 0.05427473, y: 0.395974, z: 0.124479085, w: 0.90816504}
|
||||
scale: {x: 1, y: 0.9999992, z: 1.0000013}
|
||||
- name: Thumb_01
|
||||
parentName: Hand_L
|
||||
position: {x: -0.08908812, y: -2.753353e-16, z: -4.4408918e-17}
|
||||
rotation: {x: -0.032716513, y: -0.110338114, z: -0.077353075, w: 0.9903391}
|
||||
scale: {x: 1.0000017, y: 0.9999998, z: 1.000001}
|
||||
- name: Thumb_02
|
||||
parentName: Thumb_01
|
||||
position: {x: -0.09701814, y: 4.396483e-16, z: 1.8651746e-16}
|
||||
rotation: {x: -0.052660808, y: -0.01776939, z: 0.027707724, w: 0.9980699}
|
||||
scale: {x: 0.9999984, y: 1.0000014, z: 1.0000001}
|
||||
- name: Thumb_03
|
||||
parentName: Thumb_02
|
||||
position: {x: -0.092271924, y: 4.2188474e-17, z: -2.220446e-16}
|
||||
rotation: {x: -0.046633855, y: -0.14921474, z: -0.29463214, w: 0.94273657}
|
||||
scale: {x: 0.9999985, y: 1.0000001, z: 1.0000032}
|
||||
- name: IndexFinger_01
|
||||
parentName: Hand_L
|
||||
position: {x: -0.120755404, y: 0.042213865, z: -0.0984221}
|
||||
rotation: {x: -0.0536025, y: -0.37485924, z: -0.12035175, w: 0.91767246}
|
||||
scale: {x: 1.0000017, y: 0.9999996, z: 1.0000007}
|
||||
- name: IndexFinger_02
|
||||
parentName: IndexFinger_01
|
||||
position: {x: -0.0614739, y: -3.1441861e-19, z: 0}
|
||||
rotation: {x: -0.0015661672, y: -0.0029745684, z: 0.036817785, w: 0.99931633}
|
||||
scale: {x: 1.0000006, y: 0.99999994, z: 1}
|
||||
- name: IndexFinger_03
|
||||
parentName: IndexFinger_02
|
||||
position: {x: -0.057940163, y: 1.8041123e-18, z: -2.5535128e-17}
|
||||
rotation: {x: -0.009162957, y: -0.012817944, z: 0.03761877, w: 0.999168}
|
||||
scale: {x: 1.0000001, y: 1.0000006, z: 0.9999997}
|
||||
- name: IndexFinger_04
|
||||
parentName: IndexFinger_03
|
||||
position: {x: -0.059118144, y: -1.8624858e-16, z: -5.551115e-19}
|
||||
rotation: {x: -0.0059754928, y: -0.027766112, z: -0.21030399, w: 0.97722346}
|
||||
scale: {x: 1, y: 1.0000007, z: 1.0000001}
|
||||
- name: Finger_01
|
||||
parentName: Hand_L
|
||||
position: {x: -0.051985342, y: 0.012058426, z: -0.14852415}
|
||||
rotation: {x: -0.098628424, y: -0.46502253, z: -0.056653097, w: 0.8779618}
|
||||
scale: {x: 1.0000013, y: 0.9999998, z: 1.000001}
|
||||
- name: Finger_02
|
||||
parentName: Finger_01
|
||||
position: {x: -0.0641512, y: 1.8214596e-19, z: 2.220446e-18}
|
||||
rotation: {x: 0.003567404, y: 0.019343372, z: 0.02855653, w: 0.9993987}
|
||||
scale: {x: 1.000001, y: 1.0000005, z: 0.99999946}
|
||||
- name: Finger_03
|
||||
parentName: Finger_02
|
||||
position: {x: -0.05330061, y: -1.7347668e-16, z: 4.2188474e-17}
|
||||
rotation: {x: -0.024194408, y: -0.018455962, z: 0.03164594, w: 0.9990358}
|
||||
scale: {x: 0.99999934, y: 1.0000013, z: 1.0000013}
|
||||
- name: Finger_04
|
||||
parentName: Finger_03
|
||||
position: {x: -0.047222238, y: -3.8635761e-16, z: -5.662137e-17}
|
||||
rotation: {x: 0.021918356, y: 0.095466316, z: -0.22269532, w: 0.9699549}
|
||||
scale: {x: 1.0000017, y: 1.0000008, z: 0.9999998}
|
||||
- name: Clavicle_R
|
||||
parentName: Spine_03
|
||||
position: {x: -0.07733742, y: -0.0015131371, z: 0.16716298}
|
||||
rotation: {x: 0.6243929, y: 0.4217783, z: 0.5011103, w: -0.42558786}
|
||||
scale: {x: 1, y: 1.0000025, z: 0.99999887}
|
||||
- name: Shoulder_R
|
||||
parentName: Clavicle_R
|
||||
position: {x: 0.16134152, y: 0.00000022487666, z: -0.00000006441897}
|
||||
rotation: {x: 0.0028544066, y: 0.051852174, z: -0.054891817, w: 0.997141}
|
||||
scale: {x: 1.0000001, y: 1.0000026, z: 1.0000032}
|
||||
- name: Elbow_R
|
||||
parentName: Shoulder_R
|
||||
position: {x: 0.45683342, y: 8.5265126e-16, z: 0.00000003960579}
|
||||
rotation: {x: 0.000000039348375, y: 0.059024356, z: -0.00000010314396, w: 0.9982566}
|
||||
scale: {x: 0.99999994, y: 1.0000092, z: 1.0000076}
|
||||
- name: Hand_R
|
||||
parentName: Elbow_R
|
||||
position: {x: 0.328678, y: -7.958079e-15, z: -0.00000031490552}
|
||||
rotation: {x: 0.05427484, y: 0.39597392, z: 0.12447924, w: 0.90816504}
|
||||
scale: {x: 1.0000006, y: 1.0000005, z: 1.0000012}
|
||||
- name: Thumb_011
|
||||
parentName: Hand_R
|
||||
position: {x: 0.08908848, y: -0.0000018401335, z: 0.0000010454004}
|
||||
rotation: {x: -0.032713458, y: -0.11032645, z: -0.07735393, w: 0.9903405}
|
||||
scale: {x: 1.000023, y: 1.0000073, z: 0.9999873}
|
||||
- name: Thumb_021
|
||||
parentName: Thumb_011
|
||||
position: {x: 0.09702438, y: -0.0000012559718, z: 0.000003968674}
|
||||
rotation: {x: -0.052663185, y: -0.017790383, z: 0.027662793, w: 0.9980706}
|
||||
scale: {x: 1.0000011, y: 1.0000217, z: 0.9999959}
|
||||
- name: Thumb_031
|
||||
parentName: Thumb_021
|
||||
position: {x: 0.09227324, y: 0.0000074613017, z: -0.000000493297}
|
||||
rotation: {x: -0.0466338, y: -0.14921468, z: -0.29463202, w: 0.94273657}
|
||||
scale: {x: 1.0000436, y: 0.99997944, z: 0.9999708}
|
||||
- name: IndexFinger_011
|
||||
parentName: Hand_R
|
||||
position: {x: 0.12075663, y: -0.04220975, z: 0.09842222}
|
||||
rotation: {x: -0.053602505, y: -0.3748591, z: -0.12035184, w: 0.9176725}
|
||||
scale: {x: 1.0000384, y: 0.999999, z: 0.99997413}
|
||||
- name: IndexFinger_021
|
||||
parentName: IndexFinger_011
|
||||
position: {x: 0.061476283, y: -0.0000047270864, z: 0.00000030396376}
|
||||
rotation: {x: -0.0015657125, y: -0.0029734955, z: 0.03672477, w: 0.99931985}
|
||||
scale: {x: 1.0000002, y: 1.0000063, z: 1.0000061}
|
||||
- name: IndexFinger_031
|
||||
parentName: IndexFinger_021
|
||||
position: {x: 0.05794711, y: 0.0000061344235, z: 0.00000056286797}
|
||||
rotation: {x: -0.009163045, y: -0.01283863, z: 0.037712414, w: 0.9991641}
|
||||
scale: {x: 1.0000068, y: 0.99999505, z: 1.0000001}
|
||||
- name: IndexFinger_041
|
||||
parentName: IndexFinger_031
|
||||
position: {x: 0.059107542, y: -0.0000048901334, z: -0.00000042587297}
|
||||
rotation: {x: -0.005975452, y: -0.027766252, z: -0.2103039, w: 0.9772234}
|
||||
scale: {x: 0.99998504, y: 1.0000246, z: 1.000006}
|
||||
- name: Finger_011
|
||||
parentName: Hand_R
|
||||
position: {x: 0.051991317, y: -0.012054317, z: 0.14853004}
|
||||
rotation: {x: -0.09862376, y: -0.4650189, z: -0.056662206, w: 0.87796366}
|
||||
scale: {x: 1.0000317, y: 1.0000064, z: 0.99998385}
|
||||
- name: Finger_021
|
||||
parentName: Finger_011
|
||||
position: {x: 0.064152494, y: 0.000001623162, z: -0.000000044617604}
|
||||
rotation: {x: 0.0035673294, y: 0.019343399, z: 0.028556446, w: 0.99939865}
|
||||
scale: {x: 0.99999934, y: 1.0000025, z: 0.99999994}
|
||||
- name: Finger_031
|
||||
parentName: Finger_021
|
||||
position: {x: 0.05329311, y: 0.0000014939407, z: 0.00000036493486}
|
||||
rotation: {x: -0.024190418, y: -0.01847854, z: 0.03174947, w: 0.99903226}
|
||||
scale: {x: 0.99999267, y: 1.0000077, z: 1.0000081}
|
||||
- name: Finger_041
|
||||
parentName: Finger_031
|
||||
position: {x: 0.047220778, y: -0.000008236042, z: -0.00000043038915}
|
||||
rotation: {x: 0.021918464, y: 0.09546615, z: -0.2226953, w: 0.9699549}
|
||||
scale: {x: 1.0000049, y: 0.9999959, z: 1.0000011}
|
||||
- name: UpperLeg_L
|
||||
parentName: Hips
|
||||
position: {x: -0.13062388, y: -8.881784e-18, z: -1.11022296e-17}
|
||||
rotation: {x: -0.2668567, y: -0.21296209, z: 0.4994735, w: 0.7962166}
|
||||
scale: {x: 1.0000015, y: 1.0000005, z: 1.0000014}
|
||||
- name: LowerLeg_L
|
||||
parentName: UpperLeg_L
|
||||
position: {x: -0.37842098, y: 1.02140514e-16, z: 2.2204459e-17}
|
||||
rotation: {x: -0.000000059604645, y: -0.000000059604645, z: 0.00000008940697, w: 1}
|
||||
scale: {x: 1.0000012, y: 1.000002, z: 1.0000001}
|
||||
- name: Ankle_L
|
||||
parentName: LowerLeg_L
|
||||
position: {x: -0.37842098, y: -0.00000000799083, z: -0.00000017884236}
|
||||
rotation: {x: 0.7458739, y: 0.51436746, z: -0.19933213, w: 0.37331626}
|
||||
scale: {x: 1.0000036, y: 1.0000004, z: 1.0000046}
|
||||
- name: Ball_L
|
||||
parentName: Ankle_L
|
||||
position: {x: -0.12877615, y: 3.5527136e-17, z: 3.3500888e-17}
|
||||
rotation: {x: 0.000000029802319, y: -0.00000004470348, z: -0.23606834, w: 0.97173643}
|
||||
scale: {x: 1.0000024, y: 0.9999996, z: 1.0000001}
|
||||
- name: Toes_L
|
||||
parentName: Ball_L
|
||||
position: {x: -0.0729575, y: 8.228515e-18, z: -1.3369588e-15}
|
||||
rotation: {x: -0.000000005576654, y: -0.70710677, z: 0.0000000651813, w: 0.7071069}
|
||||
scale: {x: 0.9999986, y: 0.9999992, z: 0.9999996}
|
||||
- name: UpperLeg_R
|
||||
parentName: Hips
|
||||
position: {x: 0.102061786, y: -0.08152349, z: -1.1102199e-17}
|
||||
rotation: {x: 0.58627963, y: -0.7346502, z: -0.2892203, w: 0.1814304}
|
||||
scale: {x: 1.0000013, y: 1.0000021, z: 1.0000037}
|
||||
- name: LowerLeg_R
|
||||
parentName: UpperLeg_R
|
||||
position: {x: 0.37842068, y: 0.00000027396194, z: 0.0000002682214}
|
||||
rotation: {x: -0, y: 0.000000029802319, z: -0.00000008940696, w: 1}
|
||||
scale: {x: 1.0000027, y: 1.0000032, z: 1.0000063}
|
||||
- name: Ankle_R
|
||||
parentName: LowerLeg_R
|
||||
position: {x: 0.37842116, y: 0.0000002667152, z: 0.00000034490833}
|
||||
rotation: {x: 0.74587387, y: 0.5143675, z: -0.19933215, w: 0.37331635}
|
||||
scale: {x: 1.0000045, y: 1.0000076, z: 1.0000027}
|
||||
- name: Ball_R
|
||||
parentName: Ankle_R
|
||||
position: {x: 0.12877613, y: -0.000000010258867, z: -1.0658141e-16}
|
||||
rotation: {x: 0.000000014901159, y: 0.000000059604638, z: -0.23606828, w: 0.97173655}
|
||||
scale: {x: 0.9999952, y: 1.0000138, z: 1.0000036}
|
||||
- name: Toes_R
|
||||
parentName: Ball_R
|
||||
position: {x: 0.0729575, y: -4.0909496e-14, z: 3.5527136e-17}
|
||||
rotation: {x: -0.000000010238907, y: -0.70710677, z: -0.000000064266885, w: 0.70710677}
|
||||
scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002}
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 1
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 3
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 1
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
37
Assets/_Game/Data/Skills/Data_Skill_Drog_펀치R.asset
Normal file
37
Assets/_Game/Data/Skills/Data_Skill_Drog_펀치R.asset
Normal file
@@ -0,0 +1,37 @@
|
||||
%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: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
|
||||
m_Name: "Data_Skill_Drog_\uD380\uCE58R"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: "\uD380\uCE58R"
|
||||
description:
|
||||
icon: {fileID: 0}
|
||||
skillRole: 1
|
||||
activationType: 1
|
||||
baseTypes: 0
|
||||
skillClip: {fileID: 7400000, guid: c8fdea7dee0c6f04bbd27fe565071682, type: 2}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
useRootMotion: 1
|
||||
ignoreRootMotionY: 1
|
||||
jumpToTarget: 0
|
||||
blockMovementWhileCasting: 1
|
||||
blockJumpWhileCasting: 1
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
allowedWeaponTraits: 0
|
||||
cooldown: 0
|
||||
manaCost: 0
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects: []
|
||||
effects:
|
||||
- {fileID: 11400000, guid: 86bf7e282c1639c4889910475aaccdef, type: 2}
|
||||
- {fileID: 0}
|
||||
8
Assets/_Game/Data/Skills/Data_Skill_Drog_펀치R.asset.meta
Normal file
8
Assets/_Game/Data/Skills/Data_Skill_Drog_펀치R.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 278e461cbc866e042bfa419e8b34bbe1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -2083,7 +2083,7 @@ MonoBehaviour:
|
||||
intelligence:
|
||||
baseValue: 10
|
||||
vitality:
|
||||
baseValue: 10
|
||||
baseValue: 100
|
||||
wisdom:
|
||||
baseValue: 10
|
||||
spirit:
|
||||
@@ -2153,6 +2153,7 @@ MonoBehaviour:
|
||||
- {fileID: 712281148059590495, guid: b590c58b50c3b554687b172862fa5d9d, type: 3}
|
||||
- {fileID: 6888780564265376159, guid: 827dfeae95fdf6b41b78698f2e846b5f, type: 3}
|
||||
- {fileID: -8752051743343580635, guid: 5eaeca917bbeb494eb14ad0e0552c42f, type: 3}
|
||||
- {fileID: 7400000, guid: c8fdea7dee0c6f04bbd27fe565071682, type: 2}
|
||||
debugMode: 1
|
||||
showAreaDebug: 1
|
||||
debugDrawDuration: 1
|
||||
@@ -2191,7 +2192,6 @@ MonoBehaviour:
|
||||
navMeshAgent: {fileID: 5153439431748782209}
|
||||
behaviorGraphAgent: {fileID: 0}
|
||||
primaryPattern: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2}
|
||||
secondaryPattern: {fileID: 11400000, guid: 4a52d59d590b4eaa9ef92b7984eb08c7, type: 2}
|
||||
mobilityPattern: {fileID: 11400000, guid: 88e6cc7cab28baf4c8f8a742247000ec, type: 2}
|
||||
utilityPattern: {fileID: 11400000, guid: 9f7ab8078af64fd9a6ff4c9ce6aa9d3a, type: 2}
|
||||
comboPattern: {fileID: 11400000, guid: d4e7f2a6b8c31095e1a3c5d7f9b2d4e8, type: 2}
|
||||
@@ -2203,9 +2203,6 @@ MonoBehaviour:
|
||||
mobilityTriggerDistance: 8
|
||||
punishSearchRadius: 6
|
||||
utilityTriggerDistance: 5
|
||||
phase1SecondaryInterval: 3
|
||||
phase2SecondaryInterval: 2
|
||||
phase3SecondaryInterval: 2
|
||||
basicLoopMinCountAfterBigPattern: 2
|
||||
signatureRequiredDamageRatio: 0.1
|
||||
signatureTelegraphAbnormality: {fileID: 11400000, guid: fb1a782e44ff4dc19fd8b3c633360752, type: 2}
|
||||
|
||||
@@ -475,6 +475,28 @@ namespace Colosseum.Enemy
|
||||
Debug.Log($"[{source}] {message}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 모든 패턴 슬롯에 포함된 고유 스킬 목록을 반환합니다. 디버그 용도로 사용됩니다.
|
||||
/// </summary>
|
||||
public List<SkillData> GetAllPatternSkills()
|
||||
{
|
||||
HashSet<SkillData> skillSet = new HashSet<SkillData>();
|
||||
BossPatternData[] allPatterns = { primaryPattern, mobilityPattern, utilityPattern, comboPattern, punishPattern, signaturePattern };
|
||||
for (int i = 0; i < allPatterns.Length; i++)
|
||||
{
|
||||
BossPatternData pattern = allPatterns[i];
|
||||
if (pattern?.Steps == null)
|
||||
continue;
|
||||
for (int j = 0; j < pattern.Steps.Count; j++)
|
||||
{
|
||||
PatternStep step = pattern.Steps[j];
|
||||
if (step.Skill != null)
|
||||
skillSet.Add(step.Skill);
|
||||
}
|
||||
}
|
||||
return new List<SkillData>(skillSet);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 지정 패턴이 grace period를 통과했는지 반환합니다.
|
||||
|
||||
@@ -226,6 +226,15 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
""processors"": """",
|
||||
""interactions"": """",
|
||||
""initialStateCheck"": false
|
||||
},
|
||||
{
|
||||
""name"": ""UIMode"",
|
||||
""type"": ""Button"",
|
||||
""id"": ""2bb668a6-fd21-4c59-b81a-9b8a4faf6e62"",
|
||||
""expectedControlType"": """",
|
||||
""processors"": """",
|
||||
""interactions"": """",
|
||||
""initialStateCheck"": false
|
||||
}
|
||||
],
|
||||
""bindings"": [
|
||||
@@ -613,6 +622,17 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
""action"": ""DebugHUD"",
|
||||
""isComposite"": false,
|
||||
""isPartOfComposite"": false
|
||||
},
|
||||
{
|
||||
""name"": """",
|
||||
""id"": ""600580e8-6722-42b9-b740-2b734603e4e1"",
|
||||
""path"": ""<Keyboard>/leftAlt"",
|
||||
""interactions"": """",
|
||||
""processors"": """",
|
||||
""groups"": "";Keyboard&Mouse"",
|
||||
""action"": ""UIMode"",
|
||||
""isComposite"": false,
|
||||
""isPartOfComposite"": false
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1213,6 +1233,7 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
m_Player_Skill6 = m_Player.FindAction("Skill 6", throwIfNotFound: true);
|
||||
m_Player_Evade = m_Player.FindAction("Evade", throwIfNotFound: true);
|
||||
m_Player_DebugHUD = m_Player.FindAction("DebugHUD", throwIfNotFound: true);
|
||||
m_Player_UIMode = m_Player.FindAction("UIMode", throwIfNotFound: true);
|
||||
// UI
|
||||
m_UI = asset.FindActionMap("UI", throwIfNotFound: true);
|
||||
m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true);
|
||||
@@ -1321,6 +1342,7 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
private readonly InputAction m_Player_Skill6;
|
||||
private readonly InputAction m_Player_Evade;
|
||||
private readonly InputAction m_Player_DebugHUD;
|
||||
private readonly InputAction m_Player_UIMode;
|
||||
/// <summary>
|
||||
/// Provides access to input actions defined in input action map "Player".
|
||||
/// </summary>
|
||||
@@ -1393,6 +1415,10 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
/// </summary>
|
||||
public InputAction @DebugHUD => m_Wrapper.m_Player_DebugHUD;
|
||||
/// <summary>
|
||||
/// Provides access to the underlying input action "Player/UIMode".
|
||||
/// </summary>
|
||||
public InputAction @UIMode => m_Wrapper.m_Player_UIMode;
|
||||
/// <summary>
|
||||
/// Provides access to the underlying input action map instance.
|
||||
/// </summary>
|
||||
public InputActionMap Get() { return m_Wrapper.m_Player; }
|
||||
@@ -1463,6 +1489,9 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
@DebugHUD.started += instance.OnDebugHUD;
|
||||
@DebugHUD.performed += instance.OnDebugHUD;
|
||||
@DebugHUD.canceled += instance.OnDebugHUD;
|
||||
@UIMode.started += instance.OnUIMode;
|
||||
@UIMode.performed += instance.OnUIMode;
|
||||
@UIMode.canceled += instance.OnUIMode;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1519,6 +1548,9 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
@DebugHUD.started -= instance.OnDebugHUD;
|
||||
@DebugHUD.performed -= instance.OnDebugHUD;
|
||||
@DebugHUD.canceled -= instance.OnDebugHUD;
|
||||
@UIMode.started -= instance.OnUIMode;
|
||||
@UIMode.performed -= instance.OnUIMode;
|
||||
@UIMode.canceled -= instance.OnUIMode;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1924,6 +1956,13 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
|
||||
void OnDebugHUD(InputAction.CallbackContext context);
|
||||
/// <summary>
|
||||
/// Method invoked when associated input action "UIMode" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
|
||||
/// </summary>
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
|
||||
void OnUIMode(InputAction.CallbackContext context);
|
||||
}
|
||||
/// <summary>
|
||||
/// Interface to implement callback methods for all input action callbacks associated with input actions defined by "UI" which allows adding and removing callbacks.
|
||||
|
||||
@@ -140,6 +140,15 @@
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "UIMode",
|
||||
"type": "Button",
|
||||
"id": "2bb668a6-fd21-4c59-b81a-9b8a4faf6e62",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
}
|
||||
],
|
||||
"bindings": [
|
||||
@@ -527,6 +536,17 @@
|
||||
"action": "DebugHUD",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "600580e8-6722-42b9-b740-2b734603e4e1",
|
||||
"path": "<Keyboard>/leftAlt",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
"action": "UIMode",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#if UNITY_EDITOR || DEVELOPMENT_BUILD
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
@@ -10,6 +12,12 @@ using Unity.Netcode;
|
||||
|
||||
using Colosseum.Enemy;
|
||||
using Colosseum.Abnormalities;
|
||||
using Colosseum.AI;
|
||||
using Colosseum.Skills;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
|
||||
namespace Colosseum.UI
|
||||
{
|
||||
@@ -35,6 +43,12 @@ namespace Colosseum.UI
|
||||
private BossEnemy cachedBoss;
|
||||
private bool suppressSliderCallback;
|
||||
|
||||
// 스킬 강제 발동
|
||||
private TMP_Dropdown skillDropdown;
|
||||
private List<SkillData> debugSkillList;
|
||||
private SkillController debugSkillController;
|
||||
private BossEnemy cachedBossForSkillDropdown;
|
||||
|
||||
// UI 참조
|
||||
private GameObject toggleButtonObject;
|
||||
private GameObject panelRoot;
|
||||
@@ -61,6 +75,15 @@ namespace Colosseum.UI
|
||||
{
|
||||
if (panelRoot != null)
|
||||
panelRoot.SetActive(false);
|
||||
|
||||
if (UIModeController.Instance != null)
|
||||
UIModeController.Instance.OnUIModeChanged += OnUIModeChanged;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (UIModeController.Instance != null)
|
||||
UIModeController.Instance.OnUIModeChanged -= OnUIModeChanged;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@@ -70,6 +93,7 @@ namespace Colosseum.UI
|
||||
return;
|
||||
|
||||
UpdateHPDisplay();
|
||||
RefreshSkillDropdownIfNeeded();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -198,6 +222,7 @@ namespace Colosseum.UI
|
||||
BuildBossControlSection(content.transform);
|
||||
BuildShieldSection(content.transform);
|
||||
BuildAbnormalitySection(content.transform);
|
||||
BuildSkillForceSection(content.transform);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -267,6 +292,20 @@ namespace Colosseum.UI
|
||||
MakeButton("위협 초기화", parent, OnClearThreat);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 스킬 강제 발동 섹션
|
||||
/// </summary>
|
||||
private void BuildSkillForceSection(Transform parent)
|
||||
{
|
||||
MakeSectionHeader("스킬 강제 발동", parent);
|
||||
|
||||
skillDropdown = MakeDropdown("SkillDropdown", parent);
|
||||
|
||||
GameObject row = MakeRow(parent);
|
||||
MakeButton("발동", row.transform, OnForceSkill, 80f);
|
||||
MakeButton("취소", row.transform, OnCancelSkill, 80f);
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────────
|
||||
// UI 업데이트
|
||||
// ──────────────────────────────────────────────────
|
||||
@@ -395,15 +434,154 @@ namespace Colosseum.UI
|
||||
cachedBoss.ClearAllThreat();
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────────
|
||||
// 스킬 강제 발동
|
||||
// ──────────────────────────────────────────────────
|
||||
|
||||
/// <summary>
|
||||
/// 보스가 변경되었으면 스킬 드롭다운을 갱신합니다.
|
||||
/// </summary>
|
||||
private void RefreshSkillDropdownIfNeeded()
|
||||
{
|
||||
if (skillDropdown == null)
|
||||
return;
|
||||
|
||||
if (cachedBoss != cachedBossForSkillDropdown)
|
||||
{
|
||||
cachedBossForSkillDropdown = cachedBoss;
|
||||
RebuildSkillDropdown();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 드롭다운을 갱신합니다.
|
||||
/// 에디터에서는 Data/Skills에서 보스 이름이 포함된 스킬을 모두 검색하고,
|
||||
/// 빌드에서는 패턴 슬롯의 스킬만 표시합니다.
|
||||
/// </summary>
|
||||
private void RebuildSkillDropdown()
|
||||
{
|
||||
debugSkillController = cachedBoss != null
|
||||
? cachedBoss.GetComponent<SkillController>()
|
||||
: null;
|
||||
|
||||
if (cachedBoss == null || debugSkillController == null)
|
||||
{
|
||||
skillDropdown.ClearOptions();
|
||||
skillDropdown.options.Add(new TMP_Dropdown.OptionData("보스 없음"));
|
||||
skillDropdown.value = 0;
|
||||
debugSkillList = null;
|
||||
return;
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
debugSkillList = LoadSkillsFromAssetFolder();
|
||||
#else
|
||||
debugSkillList = LoadSkillsFromPatternSlots();
|
||||
#endif
|
||||
|
||||
if (debugSkillList == null || debugSkillList.Count == 0)
|
||||
{
|
||||
skillDropdown.ClearOptions();
|
||||
skillDropdown.options.Add(new TMP_Dropdown.OptionData("스킬 없음"));
|
||||
skillDropdown.value = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
List<TMP_Dropdown.OptionData> options = new List<TMP_Dropdown.OptionData>();
|
||||
for (int i = 0; i < debugSkillList.Count; i++)
|
||||
{
|
||||
string name = debugSkillList[i].SkillName;
|
||||
options.Add(new TMP_Dropdown.OptionData(string.IsNullOrEmpty(name) ? $"Skill {i}" : name));
|
||||
}
|
||||
|
||||
skillDropdown.ClearOptions();
|
||||
skillDropdown.AddOptions(options);
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
/// <summary>
|
||||
/// 에디터 전용: Data/Skills에서 보스 이름이 포함된 SkillData를 모두 검색합니다.
|
||||
/// </summary>
|
||||
private List<SkillData> LoadSkillsFromAssetFolder()
|
||||
{
|
||||
string bossName = cachedBoss.gameObject.name;
|
||||
string[] guids = AssetDatabase.FindAssets($"t:SkillData", new[] { "Assets/_Game/Data/Skills" });
|
||||
|
||||
List<SkillData> result = new List<SkillData>();
|
||||
for (int i = 0; i < guids.Length; i++)
|
||||
{
|
||||
string path = AssetDatabase.GUIDToAssetPath(guids[i]);
|
||||
// 파일명에 보스 이름이 포함된 스킬만 필터링
|
||||
if (path.Contains(bossName))
|
||||
{
|
||||
SkillData skill = AssetDatabase.LoadAssetAtPath<SkillData>(path);
|
||||
if (skill != null)
|
||||
result.Add(skill);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// 패턴 슬롯에서 고유 스킬을 수집합니다 (빌드용 fallback).
|
||||
/// </summary>
|
||||
private List<SkillData> LoadSkillsFromPatternSlots()
|
||||
{
|
||||
BossCombatBehaviorContext context = cachedBoss.GetComponent<BossCombatBehaviorContext>();
|
||||
if (context == null)
|
||||
return null;
|
||||
|
||||
return context.GetAllPatternSkills();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 드롭다운에서 선택한 스킬을 강제 발동합니다.
|
||||
/// </summary>
|
||||
private void OnForceSkill()
|
||||
{
|
||||
if (!IsHost || NoBoss || debugSkillController == null || debugSkillList == null)
|
||||
return;
|
||||
|
||||
int index = skillDropdown.value;
|
||||
if (index < 0 || index >= debugSkillList.Count)
|
||||
return;
|
||||
|
||||
if (debugSkillController.IsExecutingSkill)
|
||||
debugSkillController.CancelSkill();
|
||||
|
||||
debugSkillController.ResetAllCooldowns();
|
||||
debugSkillController.ExecuteSkill(debugSkillList[index]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 실행 중인 스킬을 취소합니다.
|
||||
/// </summary>
|
||||
private void OnCancelSkill()
|
||||
{
|
||||
if (!IsHost || NoBoss || debugSkillController == null)
|
||||
return;
|
||||
|
||||
if (debugSkillController.IsExecutingSkill)
|
||||
debugSkillController.CancelSkill();
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────────
|
||||
// 토글
|
||||
// ──────────────────────────────────────────────────
|
||||
|
||||
private void TogglePanel()
|
||||
{
|
||||
isPanelOpen = !isPanelOpen;
|
||||
if (UIModeController.Instance != null)
|
||||
UIModeController.Instance.SetUIModeActive(!UIModeController.Instance.IsUIModeActive);
|
||||
}
|
||||
|
||||
private void OnUIModeChanged(bool uiModeActive)
|
||||
{
|
||||
if (panelRoot != null)
|
||||
panelRoot.SetActive(isPanelOpen);
|
||||
panelRoot.SetActive(uiModeActive);
|
||||
isPanelOpen = uiModeActive;
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────────
|
||||
@@ -611,6 +789,148 @@ namespace Colosseum.UI
|
||||
if (DefaultFont != null) t.font = DefaultFont;
|
||||
return t;
|
||||
}
|
||||
|
||||
private static TMP_Dropdown MakeDropdown(string name, Transform parent)
|
||||
{
|
||||
// 메인 드롭다운 오브젝트
|
||||
GameObject dropdownGo = new GameObject(name, typeof(RectTransform), typeof(Image), typeof(TMP_Dropdown));
|
||||
dropdownGo.transform.SetParent(parent, false);
|
||||
dropdownGo.AddComponent<LayoutElement>().preferredHeight = 30f;
|
||||
|
||||
// 캡션 라벨
|
||||
GameObject captionGo = new GameObject("Caption", typeof(RectTransform), typeof(TextMeshProUGUI));
|
||||
captionGo.transform.SetParent(dropdownGo.transform, false);
|
||||
RectTransform captionRt = captionGo.GetComponent<RectTransform>();
|
||||
captionRt.anchorMin = Vector2.zero;
|
||||
captionRt.anchorMax = Vector2.one;
|
||||
captionRt.offsetMin = new Vector2(10f, 1f);
|
||||
captionRt.offsetMax = new Vector2(-25f, -2f);
|
||||
TMP_Text captionText = captionGo.GetComponent<TextMeshProUGUI>();
|
||||
captionText.text = "스킬 선택";
|
||||
captionText.fontSize = 14f;
|
||||
captionText.alignment = TextAlignmentOptions.MidlineLeft;
|
||||
captionText.color = Color.white;
|
||||
captionText.textWrappingMode = TextWrappingModes.NoWrap;
|
||||
if (DefaultFont != null) captionText.font = DefaultFont;
|
||||
|
||||
// 화살표
|
||||
GameObject arrowGo = new GameObject("Arrow", typeof(RectTransform), typeof(Image));
|
||||
arrowGo.transform.SetParent(dropdownGo.transform, false);
|
||||
RectTransform arrowRt = arrowGo.GetComponent<RectTransform>();
|
||||
arrowRt.anchorMin = new Vector2(1f, 0.5f);
|
||||
arrowRt.anchorMax = new Vector2(1f, 0.5f);
|
||||
arrowRt.sizeDelta = new Vector2(20f, 20f);
|
||||
arrowRt.pivot = new Vector2(0.5f, 0.5f);
|
||||
arrowRt.anchoredPosition = new Vector2(-15f, 0f);
|
||||
arrowGo.GetComponent<Image>().color = new Color(0.6f, 0.6f, 0.6f);
|
||||
|
||||
// 템플릿 (팝업 목록)
|
||||
GameObject templateGo = new GameObject("Template", typeof(RectTransform), typeof(Image), typeof(ScrollRect));
|
||||
templateGo.transform.SetParent(dropdownGo.transform, false);
|
||||
templateGo.SetActive(false);
|
||||
RectTransform templateRt = templateGo.GetComponent<RectTransform>();
|
||||
templateRt.anchorMin = new Vector2(0f, -1f);
|
||||
templateRt.anchorMax = new Vector2(1f, 0f);
|
||||
templateRt.sizeDelta = new Vector2(0f, 150f);
|
||||
templateRt.pivot = new Vector2(0.5f, 1f);
|
||||
templateGo.GetComponent<Image>().color = new Color(0.15f, 0.15f, 0.15f, 0.95f);
|
||||
|
||||
ScrollRect scroll = templateGo.GetComponent<ScrollRect>();
|
||||
scroll.horizontal = false;
|
||||
scroll.movementType = ScrollRect.MovementType.Clamped;
|
||||
scroll.scrollSensitivity = 20f;
|
||||
|
||||
// 뷰포트
|
||||
GameObject viewportGo = new GameObject("Viewport", typeof(RectTransform), typeof(Image));
|
||||
viewportGo.transform.SetParent(templateGo.transform, false);
|
||||
RectTransform viewportRt = viewportGo.GetComponent<RectTransform>();
|
||||
viewportRt.anchorMin = Vector2.zero;
|
||||
viewportRt.anchorMax = Vector2.one;
|
||||
viewportRt.sizeDelta = Vector2.zero;
|
||||
viewportRt.pivot = new Vector2(0f, 1f);
|
||||
viewportGo.GetComponent<Image>().color = Color.clear;
|
||||
scroll.viewport = viewportRt;
|
||||
|
||||
// 콘텐츠
|
||||
GameObject contentGo = new GameObject("Content", typeof(RectTransform), typeof(VerticalLayoutGroup), typeof(ContentSizeFitter));
|
||||
contentGo.transform.SetParent(viewportGo.transform, false);
|
||||
RectTransform contentRt = contentGo.GetComponent<RectTransform>();
|
||||
contentRt.anchorMin = new Vector2(0f, 1f);
|
||||
contentRt.anchorMax = new Vector2(1f, 1f);
|
||||
contentRt.pivot = new Vector2(0.5f, 1f);
|
||||
contentRt.sizeDelta = Vector2.zero;
|
||||
contentRt.anchoredPosition = Vector2.zero;
|
||||
|
||||
VerticalLayoutGroup vlg = contentGo.GetComponent<VerticalLayoutGroup>();
|
||||
vlg.childAlignment = TextAnchor.MiddleLeft;
|
||||
vlg.childControlWidth = true;
|
||||
vlg.childControlHeight = true;
|
||||
vlg.childForceExpandWidth = true;
|
||||
vlg.childForceExpandHeight = false;
|
||||
contentGo.GetComponent<ContentSizeFitter>().verticalFit = ContentSizeFitter.FitMode.PreferredSize;
|
||||
scroll.content = contentRt;
|
||||
|
||||
// 아이템 템플릿
|
||||
GameObject itemGo = new GameObject("Item", typeof(RectTransform), typeof(Toggle));
|
||||
itemGo.transform.SetParent(contentGo.transform, false);
|
||||
RectTransform itemRt = itemGo.GetComponent<RectTransform>();
|
||||
itemRt.anchorMin = new Vector2(0f, 0.5f);
|
||||
itemRt.anchorMax = new Vector2(1f, 0.5f);
|
||||
itemRt.sizeDelta = new Vector2(0f, 20f);
|
||||
|
||||
LayoutElement itemLe = itemGo.AddComponent<LayoutElement>();
|
||||
itemLe.preferredHeight = 20f;
|
||||
itemLe.minHeight = 20f;
|
||||
|
||||
// 아이템 배경
|
||||
GameObject itemBgGo = new GameObject("Item Background", typeof(RectTransform), typeof(Image));
|
||||
itemBgGo.transform.SetParent(itemGo.transform, false);
|
||||
RectTransform itemBgRt = itemBgGo.GetComponent<RectTransform>();
|
||||
itemBgRt.anchorMin = Vector2.zero;
|
||||
itemBgRt.anchorMax = Vector2.one;
|
||||
itemBgRt.sizeDelta = Vector2.zero;
|
||||
itemBgGo.GetComponent<Image>().color = new Color(0.25f, 0.25f, 0.25f, 1f);
|
||||
|
||||
// 아이템 체크마크
|
||||
GameObject checkGo = new GameObject("Item Checkmark", typeof(RectTransform), typeof(Image));
|
||||
checkGo.transform.SetParent(itemGo.transform, false);
|
||||
RectTransform checkRt = checkGo.GetComponent<RectTransform>();
|
||||
checkRt.anchorMin = new Vector2(0f, 0.5f);
|
||||
checkRt.anchorMax = new Vector2(0f, 0.5f);
|
||||
checkRt.sizeDelta = new Vector2(20f, 20f);
|
||||
checkRt.pivot = new Vector2(0.5f, 0.5f);
|
||||
checkRt.anchoredPosition = new Vector2(10f, 0f);
|
||||
|
||||
// 아이템 라벨
|
||||
GameObject itemLabelGo = new GameObject("Item Label", typeof(RectTransform), typeof(TextMeshProUGUI));
|
||||
itemLabelGo.transform.SetParent(itemGo.transform, false);
|
||||
RectTransform itemLabelRt = itemLabelGo.GetComponent<RectTransform>();
|
||||
itemLabelRt.anchorMin = Vector2.zero;
|
||||
itemLabelRt.anchorMax = Vector2.one;
|
||||
itemLabelRt.offsetMin = new Vector2(20f, 1f);
|
||||
itemLabelRt.offsetMax = new Vector2(-5f, -2f);
|
||||
TMP_Text itemLabelText = itemLabelGo.GetComponent<TextMeshProUGUI>();
|
||||
itemLabelText.fontSize = 14f;
|
||||
itemLabelText.alignment = TextAlignmentOptions.MidlineLeft;
|
||||
itemLabelText.color = Color.white;
|
||||
itemLabelText.textWrappingMode = TextWrappingModes.NoWrap;
|
||||
if (DefaultFont != null) itemLabelText.font = DefaultFont;
|
||||
|
||||
// 토글 연결
|
||||
Toggle toggle = itemGo.GetComponent<Toggle>();
|
||||
toggle.targetGraphic = itemBgGo.GetComponent<Image>();
|
||||
toggle.graphic = checkGo.GetComponent<Image>();
|
||||
toggle.isOn = false;
|
||||
|
||||
// 드롭다운 연결
|
||||
TMP_Dropdown dropdown = dropdownGo.GetComponent<TMP_Dropdown>();
|
||||
dropdown.targetGraphic = dropdownGo.GetComponent<Image>();
|
||||
dropdown.captionText = captionText;
|
||||
dropdown.itemText = itemLabelText;
|
||||
dropdown.template = templateRt;
|
||||
|
||||
return dropdown;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace Colosseum.UI
|
||||
[Tooltip("토글 버튼에 표시할 텍스트")]
|
||||
[SerializeField] private string toggleButtonLabel = "패시브";
|
||||
[Tooltip("토글 버튼의 캔버스 기준 위치")]
|
||||
[SerializeField] private Vector2 toggleButtonAnchoredPosition = new Vector2(-132f, 48f);
|
||||
[SerializeField] private Vector2 toggleButtonAnchoredPosition = new Vector2(-10f, 46f);
|
||||
|
||||
[Header("Debug")]
|
||||
[Tooltip("플레이 모드 시작 시 패널을 자동으로 엽니다.")]
|
||||
@@ -380,7 +380,7 @@ namespace Colosseum.UI
|
||||
RectTransform toggleRect = viewInstance.ToggleButton.GetComponent<RectTransform>();
|
||||
if (toggleRect != null)
|
||||
{
|
||||
toggleRect.anchoredPosition = toggleButtonAnchoredPosition;
|
||||
toggleRect.anchoredPosition = new Vector2(-10f, 50f);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -412,7 +412,7 @@ namespace Colosseum.UI
|
||||
buttonRect.anchorMin = new Vector2(1f, 0f);
|
||||
buttonRect.anchorMax = new Vector2(1f, 0f);
|
||||
buttonRect.pivot = new Vector2(1f, 0f);
|
||||
buttonRect.anchoredPosition = toggleButtonAnchoredPosition;
|
||||
buttonRect.anchoredPosition = new Vector2(-10f, 50f);
|
||||
buttonRect.sizeDelta = new Vector2(110f, 40f);
|
||||
|
||||
Image buttonImage = buttonObject.AddComponent<Image>();
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace Colosseum.UI
|
||||
[Tooltip("토글 버튼에 표시할 텍스트")]
|
||||
[SerializeField] private string toggleButtonLabel = "젬";
|
||||
[Tooltip("토글 버튼의 캔버스 기준 위치")]
|
||||
[SerializeField] private Vector2 toggleButtonAnchoredPosition = new Vector2(-48f, 164f);
|
||||
[SerializeField] private Vector2 toggleButtonAnchoredPosition = new Vector2(-10f, 82f);
|
||||
|
||||
[Header("Storage")]
|
||||
[Tooltip("젬 보관 수량")]
|
||||
@@ -327,7 +327,7 @@ namespace Colosseum.UI
|
||||
buttonRect.anchorMin = new Vector2(1f, 0f);
|
||||
buttonRect.anchorMax = new Vector2(1f, 0f);
|
||||
buttonRect.pivot = new Vector2(1f, 0f);
|
||||
buttonRect.anchoredPosition = toggleButtonAnchoredPosition;
|
||||
buttonRect.anchoredPosition = new Vector2(-10f, 90f);
|
||||
buttonRect.sizeDelta = new Vector2(72f, 34f);
|
||||
|
||||
Image buttonImage = buttonObject.AddComponent<Image>();
|
||||
|
||||
151
Assets/_Game/Scripts/UI/UIModeController.cs
Normal file
151
Assets/_Game/Scripts/UI/UIModeController.cs
Normal file
@@ -0,0 +1,151 @@
|
||||
#if UNITY_EDITOR || DEVELOPMENT_BUILD
|
||||
|
||||
using System;
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
using Colosseum.Player;
|
||||
|
||||
namespace Colosseum.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// 공용 UI 모드 컨트롤러.
|
||||
/// UIMode 입력(leftAlt)으로 커서 표시/숨김과 게임플레이 입력 차단을 토글합니다.
|
||||
/// </summary>
|
||||
[DisallowMultipleComponent]
|
||||
public class UIModeController : MonoBehaviour
|
||||
{
|
||||
private static UIModeController instance;
|
||||
|
||||
/// <summary>
|
||||
/// 현재 활성화된 UIModeController 인스턴스
|
||||
/// </summary>
|
||||
public static UIModeController Instance => instance;
|
||||
|
||||
/// <summary>
|
||||
/// UI 모드 활성화 여부
|
||||
/// </summary>
|
||||
public bool IsUIModeActive { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// UI 모드 상태 변경 이벤트
|
||||
/// </summary>
|
||||
public event Action<bool> OnUIModeChanged;
|
||||
|
||||
private InputSystem_Actions inputActions;
|
||||
private PlayerMovement playerMovement;
|
||||
private PlayerSkillInput playerSkillInput;
|
||||
|
||||
private bool previousCursorVisible;
|
||||
private CursorLockMode previousCursorLockState;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (instance != null && instance != this)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
|
||||
instance = this;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (instance == this)
|
||||
instance = null;
|
||||
|
||||
CleanupInput();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
InitializeInput();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (playerSkillInput == null)
|
||||
FindLocalPlayerReferences();
|
||||
}
|
||||
|
||||
private void InitializeInput()
|
||||
{
|
||||
if (inputActions != null)
|
||||
return;
|
||||
|
||||
inputActions = new InputSystem_Actions();
|
||||
inputActions.Player.UIMode.performed += OnUIModePerformed;
|
||||
inputActions.Player.UIMode.Enable();
|
||||
}
|
||||
|
||||
private void CleanupInput()
|
||||
{
|
||||
if (inputActions != null)
|
||||
{
|
||||
inputActions.Player.UIMode.performed -= OnUIModePerformed;
|
||||
inputActions.Player.UIMode.Disable();
|
||||
inputActions.Dispose();
|
||||
inputActions = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void FindLocalPlayerReferences()
|
||||
{
|
||||
PlayerSkillInput[] skillInputs = FindObjectsByType<PlayerSkillInput>(FindObjectsSortMode.None);
|
||||
for (int i = 0; i < skillInputs.Length; i++)
|
||||
{
|
||||
if (skillInputs[i] != null && skillInputs[i].IsOwner)
|
||||
{
|
||||
playerSkillInput = skillInputs[i];
|
||||
playerMovement = skillInputs[i].GetComponent<PlayerMovement>();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// UI 모드를 수동으로 설정합니다.
|
||||
/// </summary>
|
||||
public void SetUIModeActive(bool active)
|
||||
{
|
||||
if (IsUIModeActive == active)
|
||||
return;
|
||||
|
||||
IsUIModeActive = active;
|
||||
|
||||
if (active)
|
||||
{
|
||||
previousCursorVisible = Cursor.visible;
|
||||
previousCursorLockState = Cursor.lockState;
|
||||
Cursor.visible = true;
|
||||
Cursor.lockState = CursorLockMode.None;
|
||||
SetGameplayInputBlocked(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetGameplayInputBlocked(false);
|
||||
Cursor.visible = previousCursorVisible;
|
||||
Cursor.lockState = previousCursorLockState;
|
||||
}
|
||||
|
||||
OnUIModeChanged?.Invoke(IsUIModeActive);
|
||||
}
|
||||
|
||||
private void OnUIModePerformed(UnityEngine.InputSystem.InputAction.CallbackContext context)
|
||||
{
|
||||
SetUIModeActive(!IsUIModeActive);
|
||||
}
|
||||
|
||||
private void SetGameplayInputBlocked(bool blocked)
|
||||
{
|
||||
if (playerMovement != null)
|
||||
playerMovement.SetGameplayInputEnabled(!blocked);
|
||||
|
||||
if (playerSkillInput != null)
|
||||
playerSkillInput.SetGameplayInputEnabled(!blocked);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
2
Assets/_Game/Scripts/UI/UIModeController.cs.meta
Normal file
2
Assets/_Game/Scripts/UI/UIModeController.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3faf1bf9fabb1c24bbe4c2c2f4b400da
|
||||
@@ -12,7 +12,7 @@ EditorBuildSettings:
|
||||
path: Assets/Scenes/SampleScene.unity
|
||||
guid: 99c9720ab356a0642a771bea13969a05
|
||||
- enabled: 1
|
||||
path: Assets/Scenes/Test.unity
|
||||
path: Assets/Scenes/Drog.unity
|
||||
guid: f727fa008df302a4f839260c2d345287
|
||||
- enabled: 1
|
||||
path: Assets/Scenes/BalanceDummy.unity
|
||||
|
||||
Reference in New Issue
Block a user