Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ff9332333 | ||
|
|
ce883e4fa3 |
@@ -15,7 +15,7 @@ MonoBehaviour:
|
|||||||
assetVersion: 2
|
assetVersion: 2
|
||||||
m_TextWrappingMode: 1
|
m_TextWrappingMode: 1
|
||||||
m_enableKerning: 1
|
m_enableKerning: 1
|
||||||
m_ActiveFontFeatures: 00000000
|
m_ActiveFontFeatures: 6e72656b
|
||||||
m_enableExtraPadding: 0
|
m_enableExtraPadding: 0
|
||||||
m_enableTintAllSprites: 0
|
m_enableTintAllSprites: 0
|
||||||
m_enableParseEscapeCharacters: 1
|
m_enableParseEscapeCharacters: 1
|
||||||
@@ -33,20 +33,18 @@ MonoBehaviour:
|
|||||||
m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50}
|
m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50}
|
||||||
m_autoSizeTextContainer: 0
|
m_autoSizeTextContainer: 0
|
||||||
m_IsTextObjectScaleStatic: 0
|
m_IsTextObjectScaleStatic: 0
|
||||||
m_fallbackFontAssets: []
|
m_fallbackFontAssets:
|
||||||
|
- {fileID: 11400000, guid: ef44cbe516f6f9f418375e5b2b73ad8d, type: 2}
|
||||||
m_matchMaterialPreset: 1
|
m_matchMaterialPreset: 1
|
||||||
m_HideSubTextObjects: 0
|
m_HideSubTextObjects: 0
|
||||||
m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45,
|
m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45, type: 2}
|
||||||
type: 2}
|
|
||||||
m_defaultSpriteAssetPath: Sprite Assets/
|
m_defaultSpriteAssetPath: Sprite Assets/
|
||||||
m_enableEmojiSupport: 1
|
m_enableEmojiSupport: 1
|
||||||
m_MissingCharacterSpriteUnicode: 0
|
m_MissingCharacterSpriteUnicode: 0
|
||||||
m_EmojiFallbackTextAssets: []
|
m_EmojiFallbackTextAssets: []
|
||||||
m_defaultColorGradientPresetsPath: Color Gradient Presets/
|
m_defaultColorGradientPresetsPath: Color Gradient Presets/
|
||||||
m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e,
|
m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e, type: 2}
|
||||||
type: 2}
|
|
||||||
m_StyleSheetsResourcePath:
|
m_StyleSheetsResourcePath:
|
||||||
m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3}
|
m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3}
|
||||||
m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b,
|
m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b, type: 3}
|
||||||
type: 3}
|
|
||||||
m_UseModernHangulLineBreakingRules: 0
|
m_UseModernHangulLineBreakingRules: 0
|
||||||
|
|||||||
@@ -5091,8 +5091,8 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.UI.DebugPanelUI
|
m_EditorClassIdentifier: Colosseum.Game::Colosseum.UI.DebugPanelUI
|
||||||
stunAbnormalityData: {fileID: 0}
|
stunAbnormalityData: {fileID: 0}
|
||||||
silenceAbnormalityData: {fileID: 0}
|
silenceAbnormalityData: {fileID: 0}
|
||||||
panelWidth: 280
|
panelWidth: 420
|
||||||
panelMaxHeight: 500
|
panelMaxHeight: 800
|
||||||
--- !u!1001 &989227100
|
--- !u!1001 &989227100
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -7636,6 +7636,7 @@ GameObject:
|
|||||||
- component: {fileID: 1433547825}
|
- component: {fileID: 1433547825}
|
||||||
- component: {fileID: 1433547823}
|
- component: {fileID: 1433547823}
|
||||||
- component: {fileID: 1433547824}
|
- component: {fileID: 1433547824}
|
||||||
|
- component: {fileID: 1433547826}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: GameManager
|
m_Name: GameManager
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -7703,6 +7704,18 @@ 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!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
|
--- !u!4 &1455748734 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 7132605379903659868, guid: 5b4ac53b97612ae4392b84786de0d50d, type: 3}
|
m_CorrespondingSourceObject: {fileID: 7132605379903659868, guid: 5b4ac53b97612ae4392b84786de0d50d, type: 3}
|
||||||
@@ -11338,6 +11351,14 @@ PrefabInstance:
|
|||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: Drog
|
value: Drog
|
||||||
objectReference: {fileID: 0}
|
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_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,8 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ba7f94b04f2a39d40817c0d902438abb
|
guid: c8fdea7dee0c6f04bbd27fe565071682
|
||||||
folderAsset: yes
|
NativeFormatImporter:
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 7400000
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
Binary file not shown.
@@ -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:
|
||||||
@@ -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}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 278e461cbc866e042bfa419e8b34bbe1
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
+18312
-15310
File diff suppressed because one or more lines are too long
+21140
-20955
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:
|
intelligence:
|
||||||
baseValue: 10
|
baseValue: 10
|
||||||
vitality:
|
vitality:
|
||||||
baseValue: 10
|
baseValue: 100
|
||||||
wisdom:
|
wisdom:
|
||||||
baseValue: 10
|
baseValue: 10
|
||||||
spirit:
|
spirit:
|
||||||
@@ -2153,6 +2153,7 @@ MonoBehaviour:
|
|||||||
- {fileID: 712281148059590495, guid: b590c58b50c3b554687b172862fa5d9d, type: 3}
|
- {fileID: 712281148059590495, guid: b590c58b50c3b554687b172862fa5d9d, type: 3}
|
||||||
- {fileID: 6888780564265376159, guid: 827dfeae95fdf6b41b78698f2e846b5f, type: 3}
|
- {fileID: 6888780564265376159, guid: 827dfeae95fdf6b41b78698f2e846b5f, type: 3}
|
||||||
- {fileID: -8752051743343580635, guid: 5eaeca917bbeb494eb14ad0e0552c42f, type: 3}
|
- {fileID: -8752051743343580635, guid: 5eaeca917bbeb494eb14ad0e0552c42f, type: 3}
|
||||||
|
- {fileID: 7400000, guid: c8fdea7dee0c6f04bbd27fe565071682, type: 2}
|
||||||
debugMode: 1
|
debugMode: 1
|
||||||
showAreaDebug: 1
|
showAreaDebug: 1
|
||||||
debugDrawDuration: 1
|
debugDrawDuration: 1
|
||||||
@@ -2191,7 +2192,6 @@ MonoBehaviour:
|
|||||||
navMeshAgent: {fileID: 5153439431748782209}
|
navMeshAgent: {fileID: 5153439431748782209}
|
||||||
behaviorGraphAgent: {fileID: 0}
|
behaviorGraphAgent: {fileID: 0}
|
||||||
primaryPattern: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2}
|
primaryPattern: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2}
|
||||||
secondaryPattern: {fileID: 11400000, guid: 4a52d59d590b4eaa9ef92b7984eb08c7, type: 2}
|
|
||||||
mobilityPattern: {fileID: 11400000, guid: 88e6cc7cab28baf4c8f8a742247000ec, type: 2}
|
mobilityPattern: {fileID: 11400000, guid: 88e6cc7cab28baf4c8f8a742247000ec, type: 2}
|
||||||
utilityPattern: {fileID: 11400000, guid: 9f7ab8078af64fd9a6ff4c9ce6aa9d3a, type: 2}
|
utilityPattern: {fileID: 11400000, guid: 9f7ab8078af64fd9a6ff4c9ce6aa9d3a, type: 2}
|
||||||
comboPattern: {fileID: 11400000, guid: d4e7f2a6b8c31095e1a3c5d7f9b2d4e8, type: 2}
|
comboPattern: {fileID: 11400000, guid: d4e7f2a6b8c31095e1a3c5d7f9b2d4e8, type: 2}
|
||||||
@@ -2203,9 +2203,6 @@ MonoBehaviour:
|
|||||||
mobilityTriggerDistance: 8
|
mobilityTriggerDistance: 8
|
||||||
punishSearchRadius: 6
|
punishSearchRadius: 6
|
||||||
utilityTriggerDistance: 5
|
utilityTriggerDistance: 5
|
||||||
phase1SecondaryInterval: 3
|
|
||||||
phase2SecondaryInterval: 2
|
|
||||||
phase3SecondaryInterval: 2
|
|
||||||
basicLoopMinCountAfterBigPattern: 2
|
basicLoopMinCountAfterBigPattern: 2
|
||||||
signatureRequiredDamageRatio: 0.1
|
signatureRequiredDamageRatio: 0.1
|
||||||
signatureTelegraphAbnormality: {fileID: 11400000, guid: fb1a782e44ff4dc19fd8b3c633360752, type: 2}
|
signatureTelegraphAbnormality: {fileID: 11400000, guid: fb1a782e44ff4dc19fd8b3c633360752, type: 2}
|
||||||
|
|||||||
@@ -475,6 +475,28 @@ namespace Colosseum.Enemy
|
|||||||
Debug.Log($"[{source}] {message}");
|
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>
|
/// <summary>
|
||||||
/// 지정 패턴이 grace period를 통과했는지 반환합니다.
|
/// 지정 패턴이 grace period를 통과했는지 반환합니다.
|
||||||
|
|||||||
@@ -226,6 +226,15 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
|||||||
""processors"": """",
|
""processors"": """",
|
||||||
""interactions"": """",
|
""interactions"": """",
|
||||||
""initialStateCheck"": false
|
""initialStateCheck"": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
""name"": ""UIMode"",
|
||||||
|
""type"": ""Button"",
|
||||||
|
""id"": ""2bb668a6-fd21-4c59-b81a-9b8a4faf6e62"",
|
||||||
|
""expectedControlType"": """",
|
||||||
|
""processors"": """",
|
||||||
|
""interactions"": """",
|
||||||
|
""initialStateCheck"": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
""bindings"": [
|
""bindings"": [
|
||||||
@@ -613,6 +622,17 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
|||||||
""action"": ""DebugHUD"",
|
""action"": ""DebugHUD"",
|
||||||
""isComposite"": false,
|
""isComposite"": false,
|
||||||
""isPartOfComposite"": 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_Skill6 = m_Player.FindAction("Skill 6", throwIfNotFound: true);
|
||||||
m_Player_Evade = m_Player.FindAction("Evade", throwIfNotFound: true);
|
m_Player_Evade = m_Player.FindAction("Evade", throwIfNotFound: true);
|
||||||
m_Player_DebugHUD = m_Player.FindAction("DebugHUD", throwIfNotFound: true);
|
m_Player_DebugHUD = m_Player.FindAction("DebugHUD", throwIfNotFound: true);
|
||||||
|
m_Player_UIMode = m_Player.FindAction("UIMode", throwIfNotFound: true);
|
||||||
// UI
|
// UI
|
||||||
m_UI = asset.FindActionMap("UI", throwIfNotFound: true);
|
m_UI = asset.FindActionMap("UI", throwIfNotFound: true);
|
||||||
m_UI_Navigate = m_UI.FindAction("Navigate", 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_Skill6;
|
||||||
private readonly InputAction m_Player_Evade;
|
private readonly InputAction m_Player_Evade;
|
||||||
private readonly InputAction m_Player_DebugHUD;
|
private readonly InputAction m_Player_DebugHUD;
|
||||||
|
private readonly InputAction m_Player_UIMode;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Provides access to input actions defined in input action map "Player".
|
/// Provides access to input actions defined in input action map "Player".
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1393,6 +1415,10 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public InputAction @DebugHUD => m_Wrapper.m_Player_DebugHUD;
|
public InputAction @DebugHUD => m_Wrapper.m_Player_DebugHUD;
|
||||||
/// <summary>
|
/// <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.
|
/// Provides access to the underlying input action map instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public InputActionMap Get() { return m_Wrapper.m_Player; }
|
public InputActionMap Get() { return m_Wrapper.m_Player; }
|
||||||
@@ -1463,6 +1489,9 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
|||||||
@DebugHUD.started += instance.OnDebugHUD;
|
@DebugHUD.started += instance.OnDebugHUD;
|
||||||
@DebugHUD.performed += instance.OnDebugHUD;
|
@DebugHUD.performed += instance.OnDebugHUD;
|
||||||
@DebugHUD.canceled += instance.OnDebugHUD;
|
@DebugHUD.canceled += instance.OnDebugHUD;
|
||||||
|
@UIMode.started += instance.OnUIMode;
|
||||||
|
@UIMode.performed += instance.OnUIMode;
|
||||||
|
@UIMode.canceled += instance.OnUIMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1519,6 +1548,9 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
|||||||
@DebugHUD.started -= instance.OnDebugHUD;
|
@DebugHUD.started -= instance.OnDebugHUD;
|
||||||
@DebugHUD.performed -= instance.OnDebugHUD;
|
@DebugHUD.performed -= instance.OnDebugHUD;
|
||||||
@DebugHUD.canceled -= instance.OnDebugHUD;
|
@DebugHUD.canceled -= instance.OnDebugHUD;
|
||||||
|
@UIMode.started -= instance.OnUIMode;
|
||||||
|
@UIMode.performed -= instance.OnUIMode;
|
||||||
|
@UIMode.canceled -= instance.OnUIMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1924,6 +1956,13 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
|||||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
|
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
|
||||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
|
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
|
||||||
void OnDebugHUD(InputAction.CallbackContext context);
|
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>
|
/// <summary>
|
||||||
/// Interface to implement callback methods for all input action callbacks associated with input actions defined by "UI" which allows adding and removing callbacks.
|
/// 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": "",
|
"processors": "",
|
||||||
"interactions": "",
|
"interactions": "",
|
||||||
"initialStateCheck": false
|
"initialStateCheck": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "UIMode",
|
||||||
|
"type": "Button",
|
||||||
|
"id": "2bb668a6-fd21-4c59-b81a-9b8a4faf6e62",
|
||||||
|
"expectedControlType": "",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bindings": [
|
"bindings": [
|
||||||
@@ -527,6 +536,17 @@
|
|||||||
"action": "DebugHUD",
|
"action": "DebugHUD",
|
||||||
"isComposite": false,
|
"isComposite": false,
|
||||||
"isPartOfComposite": 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
|
#if UNITY_EDITOR || DEVELOPMENT_BUILD
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
@@ -10,6 +12,12 @@ using Unity.Netcode;
|
|||||||
|
|
||||||
using Colosseum.Enemy;
|
using Colosseum.Enemy;
|
||||||
using Colosseum.Abnormalities;
|
using Colosseum.Abnormalities;
|
||||||
|
using Colosseum.AI;
|
||||||
|
using Colosseum.Skills;
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace Colosseum.UI
|
namespace Colosseum.UI
|
||||||
{
|
{
|
||||||
@@ -35,6 +43,12 @@ namespace Colosseum.UI
|
|||||||
private BossEnemy cachedBoss;
|
private BossEnemy cachedBoss;
|
||||||
private bool suppressSliderCallback;
|
private bool suppressSliderCallback;
|
||||||
|
|
||||||
|
// 스킬 강제 발동
|
||||||
|
private TMP_Dropdown skillDropdown;
|
||||||
|
private List<SkillData> debugSkillList;
|
||||||
|
private SkillController debugSkillController;
|
||||||
|
private BossEnemy cachedBossForSkillDropdown;
|
||||||
|
|
||||||
// UI 참조
|
// UI 참조
|
||||||
private GameObject toggleButtonObject;
|
private GameObject toggleButtonObject;
|
||||||
private GameObject panelRoot;
|
private GameObject panelRoot;
|
||||||
@@ -61,6 +75,15 @@ namespace Colosseum.UI
|
|||||||
{
|
{
|
||||||
if (panelRoot != null)
|
if (panelRoot != null)
|
||||||
panelRoot.SetActive(false);
|
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()
|
private void Update()
|
||||||
@@ -70,6 +93,7 @@ namespace Colosseum.UI
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
UpdateHPDisplay();
|
UpdateHPDisplay();
|
||||||
|
RefreshSkillDropdownIfNeeded();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -198,6 +222,7 @@ namespace Colosseum.UI
|
|||||||
BuildBossControlSection(content.transform);
|
BuildBossControlSection(content.transform);
|
||||||
BuildShieldSection(content.transform);
|
BuildShieldSection(content.transform);
|
||||||
BuildAbnormalitySection(content.transform);
|
BuildAbnormalitySection(content.transform);
|
||||||
|
BuildSkillForceSection(content.transform);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -267,6 +292,20 @@ namespace Colosseum.UI
|
|||||||
MakeButton("위협 초기화", parent, OnClearThreat);
|
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 업데이트
|
// UI 업데이트
|
||||||
// ──────────────────────────────────────────────────
|
// ──────────────────────────────────────────────────
|
||||||
@@ -395,15 +434,154 @@ namespace Colosseum.UI
|
|||||||
cachedBoss.ClearAllThreat();
|
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()
|
private void TogglePanel()
|
||||||
{
|
{
|
||||||
isPanelOpen = !isPanelOpen;
|
if (UIModeController.Instance != null)
|
||||||
|
UIModeController.Instance.SetUIModeActive(!UIModeController.Instance.IsUIModeActive);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnUIModeChanged(bool uiModeActive)
|
||||||
|
{
|
||||||
if (panelRoot != null)
|
if (panelRoot != null)
|
||||||
panelRoot.SetActive(isPanelOpen);
|
panelRoot.SetActive(uiModeActive);
|
||||||
|
isPanelOpen = uiModeActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ──────────────────────────────────────────────────
|
// ──────────────────────────────────────────────────
|
||||||
@@ -611,6 +789,148 @@ namespace Colosseum.UI
|
|||||||
if (DefaultFont != null) t.font = DefaultFont;
|
if (DefaultFont != null) t.font = DefaultFont;
|
||||||
return t;
|
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("토글 버튼에 표시할 텍스트")]
|
[Tooltip("토글 버튼에 표시할 텍스트")]
|
||||||
[SerializeField] private string toggleButtonLabel = "패시브";
|
[SerializeField] private string toggleButtonLabel = "패시브";
|
||||||
[Tooltip("토글 버튼의 캔버스 기준 위치")]
|
[Tooltip("토글 버튼의 캔버스 기준 위치")]
|
||||||
[SerializeField] private Vector2 toggleButtonAnchoredPosition = new Vector2(-132f, 48f);
|
[SerializeField] private Vector2 toggleButtonAnchoredPosition = new Vector2(-10f, 46f);
|
||||||
|
|
||||||
[Header("Debug")]
|
[Header("Debug")]
|
||||||
[Tooltip("플레이 모드 시작 시 패널을 자동으로 엽니다.")]
|
[Tooltip("플레이 모드 시작 시 패널을 자동으로 엽니다.")]
|
||||||
@@ -380,7 +380,7 @@ namespace Colosseum.UI
|
|||||||
RectTransform toggleRect = viewInstance.ToggleButton.GetComponent<RectTransform>();
|
RectTransform toggleRect = viewInstance.ToggleButton.GetComponent<RectTransform>();
|
||||||
if (toggleRect != null)
|
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.anchorMin = new Vector2(1f, 0f);
|
||||||
buttonRect.anchorMax = new Vector2(1f, 0f);
|
buttonRect.anchorMax = new Vector2(1f, 0f);
|
||||||
buttonRect.pivot = 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);
|
buttonRect.sizeDelta = new Vector2(110f, 40f);
|
||||||
|
|
||||||
Image buttonImage = buttonObject.AddComponent<Image>();
|
Image buttonImage = buttonObject.AddComponent<Image>();
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace Colosseum.UI
|
|||||||
[Tooltip("토글 버튼에 표시할 텍스트")]
|
[Tooltip("토글 버튼에 표시할 텍스트")]
|
||||||
[SerializeField] private string toggleButtonLabel = "젬";
|
[SerializeField] private string toggleButtonLabel = "젬";
|
||||||
[Tooltip("토글 버튼의 캔버스 기준 위치")]
|
[Tooltip("토글 버튼의 캔버스 기준 위치")]
|
||||||
[SerializeField] private Vector2 toggleButtonAnchoredPosition = new Vector2(-48f, 164f);
|
[SerializeField] private Vector2 toggleButtonAnchoredPosition = new Vector2(-10f, 82f);
|
||||||
|
|
||||||
[Header("Storage")]
|
[Header("Storage")]
|
||||||
[Tooltip("젬 보관 수량")]
|
[Tooltip("젬 보관 수량")]
|
||||||
@@ -327,7 +327,7 @@ namespace Colosseum.UI
|
|||||||
buttonRect.anchorMin = new Vector2(1f, 0f);
|
buttonRect.anchorMin = new Vector2(1f, 0f);
|
||||||
buttonRect.anchorMax = new Vector2(1f, 0f);
|
buttonRect.anchorMax = new Vector2(1f, 0f);
|
||||||
buttonRect.pivot = 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);
|
buttonRect.sizeDelta = new Vector2(72f, 34f);
|
||||||
|
|
||||||
Image buttonImage = buttonObject.AddComponent<Image>();
|
Image buttonImage = buttonObject.AddComponent<Image>();
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3faf1bf9fabb1c24bbe4c2c2f4b400da
|
||||||
@@ -12,7 +12,7 @@ EditorBuildSettings:
|
|||||||
path: Assets/Scenes/SampleScene.unity
|
path: Assets/Scenes/SampleScene.unity
|
||||||
guid: 99c9720ab356a0642a771bea13969a05
|
guid: 99c9720ab356a0642a771bea13969a05
|
||||||
- enabled: 1
|
- enabled: 1
|
||||||
path: Assets/Scenes/Test.unity
|
path: Assets/Scenes/Drog.unity
|
||||||
guid: f727fa008df302a4f839260c2d345287
|
guid: f727fa008df302a4f839260c2d345287
|
||||||
- enabled: 1
|
- enabled: 1
|
||||||
path: Assets/Scenes/BalanceDummy.unity
|
path: Assets/Scenes/BalanceDummy.unity
|
||||||
|
|||||||
Reference in New Issue
Block a user