HPbarzissou

This commit is contained in:
ohgushiyuga
2026-08-27 17:59:06 +09:00
parent 52341100ed
commit 9864b95a91
48 changed files with 3379 additions and 19467 deletions

View File

@@ -1,5 +1,6 @@
fileFormatVersion: 2
guid: 4e9fef26e6adb88479ad1b9834a32d94
guid: 0734ab88659321e4f9cdb27a5036eb9b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:

View File

@@ -1295,8 +1295,8 @@ MonoBehaviour:
features:
- {fileID: 7011443450567333355}
- {fileID: -671281728444007487}
- {fileID: 7055518550748799546}
- {fileID: -4559034614451708685}
- {fileID: 6956056911768161135}
- {fileID: -1734471456787174204}
- {fileID: 8980318060753866109}
- {fileID: -6559185765804338520}
- {fileID: -4756202077021157709}
@@ -1307,7 +1307,7 @@ MonoBehaviour:
- {fileID: 348827886137839178}
- {fileID: -7499073031166464939}
- {fileID: 7666556398442971420}
- {fileID: -7343570946846779558}
- {fileID: 431653824124869831}
- {fileID: 3985858319333531581}
- {fileID: -6511185071715886993}
- {fileID: -4363231183632145407}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b0295cdacf13044f389c3d5c8fca2ee8
guid: 29b88d2fd71306d4f92f9af86a6722d6
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@@ -110,13 +110,13 @@ TextureImporter:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: SKILL_yellow_0
name: HP_green-bg-_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 467
height: 38
width: 357
height: 36
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -125,8 +125,8 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: ec47129a290cd4dcb9ae4939c4fc02b1
internalID: 1308196367
spriteID: 3e8006b6fe55a284781a9825961e23c2
internalID: 1266788074
vertices: []
indices:
edges: []
@@ -135,7 +135,7 @@ TextureImporter:
customData:
physicsShape: []
bones: []
spriteID: b77fbed8bad31440687ece3a6f14a273
spriteID: 287d4975d0130ce4db5e170c1264bcda
internalID: 0
vertices: []
indices:
@@ -147,7 +147,7 @@ TextureImporter:
- key: SpriteEditor.SliceSettings
value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":64.0,"y":64.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":0,"keepEmptyRects":false,"isAlternate":false}'
nameFileIdTable:
SKILL_yellow_0: 1308196367
HP_green-bg-_0: 1266788074
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 16a542caf52274984b768e54102c5455
guid: 8a65fd75fa2f43c4f8743c134d189896
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@@ -110,7 +110,7 @@ TextureImporter:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: HP_bule_0
name: HP_green-frame_0
rect:
serializedVersion: 2
x: 0
@@ -125,8 +125,8 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 7e198e1027a054d87bc8b42a357d4dd2
internalID: 88095945
spriteID: b314d10c183a94f40b5fef549c6ec2d9
internalID: 9365655
vertices: []
indices:
edges: []
@@ -135,7 +135,7 @@ TextureImporter:
customData:
physicsShape: []
bones: []
spriteID: 15ae6bc3aa6df434497b35ed484a5cbd
spriteID: 319249613f47218449a906450a5dee1b
internalID: 0
vertices: []
indices:
@@ -147,7 +147,7 @@ TextureImporter:
- key: SpriteEditor.SliceSettings
value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":64.0,"y":64.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":0,"keepEmptyRects":false,"isAlternate":false}'
nameFileIdTable:
HP_bule_0: 88095945
HP_green-frame_0: 9365655
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,130 +0,0 @@
fileFormatVersion: 2
guid: 6862e0be91caf46f0bfefdc81a1152c2
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -1,130 +0,0 @@
fileFormatVersion: 2
guid: 1ca0d00b39d544972a212c9597a55a30
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c6c46a6a6beab48f98b9733c3be1ddfd
guid: 0ad8eb6b4048a7349b385e4cd102f084
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@@ -110,13 +110,13 @@ TextureImporter:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: HP_green_0
name: SKILL_yellow-bg_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 467
height: 38
width: 357
height: 36
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -125,8 +125,8 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: e4359e5a2b20541ac93a54247bcccc16
internalID: 1983285375
spriteID: e8ba8e4b6827312498244c0683fb7dd6
internalID: 1958705565
vertices: []
indices:
edges: []
@@ -135,7 +135,7 @@ TextureImporter:
customData:
physicsShape: []
bones: []
spriteID: edb1984e17361429d925b966bd862bda
spriteID: 82f88454cc29e2e43ab6a4733ebe9496
internalID: 0
vertices: []
indices:
@@ -147,7 +147,7 @@ TextureImporter:
- key: SpriteEditor.SliceSettings
value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":64.0,"y":64.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":0,"keepEmptyRects":false,"isAlternate":false}'
nameFileIdTable:
HP_green_0: 1983285375
SKILL_yellow-bg_0: 1958705565
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a130f79ffe9ec483ea81281fdc16805f
guid: 124412e11964a934ba7b8f9235e9c756
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@@ -110,7 +110,7 @@ TextureImporter:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: SKILL_lightbule_0
name: SKILL_yellow-frame_0
rect:
serializedVersion: 2
x: 0
@@ -125,8 +125,8 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: cd451a4644cd945cdbaabbc0cf2c9446
internalID: 7676173
spriteID: 879b65abe921d4b40840240a077a23e9
internalID: -158899322
vertices: []
indices:
edges: []
@@ -135,7 +135,7 @@ TextureImporter:
customData:
physicsShape: []
bones: []
spriteID: 049e5dd5f60bc4125a98683674724d83
spriteID: 0d7f0e1e95f55ea4fb7018e8efc489f7
internalID: 0
vertices: []
indices:
@@ -147,7 +147,7 @@ TextureImporter:
- key: SpriteEditor.SliceSettings
value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":64.0,"y":64.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":0,"keepEmptyRects":false,"isAlternate":false}'
nameFileIdTable:
SKILL_lightbule_0: 7676173
SKILL_yellow-frame_0: -158899322
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -1,639 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 13
m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &299639867
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 299639869}
- component: {fileID: 299639868}
- component: {fileID: 299639870}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &299639868
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 299639867}
m_Enabled: 1
serializedVersion: 11
m_Type: 1
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ForceVisible: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
m_LightUnit: 1
m_LuxAtDistance: 1
m_EnableSpotReflector: 1
--- !u!4 &299639869
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 299639867}
serializedVersion: 2
m_LocalRotation: {x: 0.33079913, y: -0.0329763, z: 0.3034621, w: 0.8929699}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 37.647, y: 10.322, z: 41.066}
--- !u!114 &299639870
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 299639867}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 3
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_LightLayerMask: 1
m_RenderingLayers: 1
m_CustomShadowLayers: 0
m_ShadowLayerMask: 1
m_ShadowRenderingLayers: 1
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 0
--- !u!1001 &441087506
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1717954561962503725, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_Name
value: XR Origin (XR Rig)
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
--- !u!1 &756192406
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 756192408}
- component: {fileID: 756192407}
m_Layer: 0
m_Name: XR Interaction Manager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &756192407
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 756192406}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3}
m_Name:
m_EditorClassIdentifier:
m_StartingHoverFilters: []
m_StartingSelectFilters: []
--- !u!4 &756192408
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 756192406}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.6751227, y: -2.2229433, z: -23.114769}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1249617917
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1249617921}
- component: {fileID: 1249617920}
- component: {fileID: 1249617919}
- component: {fileID: 1249617918}
- component: {fileID: 1249617922}
m_Layer: 0
m_Name: Plane
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!64 &1249617918
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1249617917}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1249617919
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1249617917}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 40d5f39ae0668b14f9d71f56c2981be7, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1249617920
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1249617917}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &1249617921
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1249617917}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 10, y: 10, z: 10}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1249617922
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1249617917}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 38f6bf3d943ac7945842268c9ef1dca6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_InteractionManager: {fileID: 0}
m_Colliders: []
m_InteractionLayers:
m_Bits: 2147483648
m_DistanceCalculationMode: 1
m_SelectMode: 1
m_FocusMode: 1
m_CustomReticle: {fileID: 0}
m_AllowGazeInteraction: 0
m_AllowGazeSelect: 0
m_OverrideGazeTimeToSelect: 0
m_GazeTimeToSelect: 0.5
m_OverrideTimeToAutoDeselectGaze: 0
m_TimeToAutoDeselectGaze: 3
m_AllowGazeAssistance: 0
m_FirstHoverEntered:
m_PersistentCalls:
m_Calls: []
m_LastHoverExited:
m_PersistentCalls:
m_Calls: []
m_HoverEntered:
m_PersistentCalls:
m_Calls: []
m_HoverExited:
m_PersistentCalls:
m_Calls: []
m_FirstSelectEntered:
m_PersistentCalls:
m_Calls: []
m_LastSelectExited:
m_PersistentCalls:
m_Calls: []
m_SelectEntered:
m_PersistentCalls:
m_Calls: []
m_SelectExited:
m_PersistentCalls:
m_Calls: []
m_FirstFocusEntered:
m_PersistentCalls:
m_Calls: []
m_LastFocusExited:
m_PersistentCalls:
m_Calls: []
m_FocusEntered:
m_PersistentCalls:
m_Calls: []
m_FocusExited:
m_PersistentCalls:
m_Calls: []
m_Activated:
m_PersistentCalls:
m_Calls: []
m_Deactivated:
m_PersistentCalls:
m_Calls: []
m_StartingHoverFilters: []
m_StartingSelectFilters: []
m_StartingInteractionStrengthFilters: []
m_AutoFindParentInteractableInHierarchy: 0
m_ParentInteractableObject: {fileID: 0}
m_TeleportationProvider: {fileID: 0}
m_MatchOrientation: 0
m_MatchDirectionalInput: 1
m_TeleportTrigger: 0
m_FilterSelectionByHitNormal: 0
m_UpNormalToleranceDegrees: 30
m_Teleporting:
m_PersistentCalls:
m_Calls: []
--- !u!1 &2092139007
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2092139010}
- component: {fileID: 2092139009}
- component: {fileID: 2092139008}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2092139008
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2092139007}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3}
m_Name:
m_EditorClassIdentifier:
m_SendPointerHoverToParent: 1
m_ClickSpeed: 0.3
m_MoveDeadzone: 0.6
m_RepeatDelay: 0.5
m_RepeatRate: 0.1
m_TrackedDeviceDragThresholdMultiplier: 2
m_TrackedScrollDeltaMultiplier: 5
m_NonTrackedScrollDeltaMultiplier: 6
m_BypassUIToolkitEvents: 0
m_ActiveInputMode: 1
m_EnableXRInput: 1
m_EnableMouseInput: 1
m_EnableTouchInput: 1
m_EnableGamepadInput: 1
m_EnableJoystickInput: 1
m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_EnableBuiltinActionsAsFallback: 1
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
--- !u!114 &2092139009
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2092139007}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &2092139010
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2092139007}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.6751227, y: -2.2229433, z: -23.114769}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 299639869}
- {fileID: 441087506}
- {fileID: 756192408}
- {fileID: 2092139010}
- {fileID: 1249617921}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 55daccc09a3b69647bbab145b54a3ab3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -49,6 +49,9 @@ public class BuffHandler
private void ExecuteHeal()
{
Debug.Log($"💚 HP回復バフ発動:回復量 {hpHealAmount}");
if (PlayerStatusManager.Instance != null)
{
PlayerStatusManager.Instance.Heal(hpHealAmount);
}
}
}

View File

@@ -18,7 +18,6 @@ public class EnemyAI : MonoBehaviour, IPauseable
[Header("攻撃設定")]
[SerializeField] private float attackRange = 1.5f;
[SerializeField] private float attackDamage = 10f;
[SerializeField] private float attackCooldown = 2.0f;
[SerializeField] private float telegraphDuration = 0.6f;
[SerializeField] private Collider rightHandCollider;

View File

@@ -0,0 +1,25 @@
using UnityEngine;
[RequireComponent(typeof(Collider))]
public class EnemyDamageHitbox : MonoBehaviour
{
[SerializeField] private float damageAmount = 15f;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
IDamageable player = other.GetComponentInParent<IDamageable>();
if (player != null)
{
DamageInfo info = new DamageInfo
{
amount = damageAmount,
hitPosition = transform.position,
punchDirection = transform.forward
};
player.TakeDamage(info);
}
}
}
}

View File

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

View File

@@ -7,8 +7,10 @@ public class EnemyHealth : MonoBehaviour, IDamageable
[SerializeField] private float knockbackDuration = 0.5f;
public float CurrentHealth { get; private set; }
public float MaxHealth => maxHealth;
public bool IsDead { get; private set; }
public event Action<float, float> OnHealthChanged; // ★追加:HP変更イベント(現在HP, 最大HP)
public event Action<float> OnKnockbackRequested;
public event Action OnDeath;
@@ -26,6 +28,11 @@ public class EnemyHealth : MonoBehaviour, IDamageable
col = GetComponent<Collider>();
}
private void Start()
{
OnHealthChanged?.Invoke(CurrentHealth, maxHealth);
}
private void OnEnable()
{
if (enemyAI != null)
@@ -49,6 +56,7 @@ public class EnemyHealth : MonoBehaviour, IDamageable
if (IsDead) return;
CurrentHealth = Mathf.Max(0f, CurrentHealth - damageInfo.amount);
OnHealthChanged?.Invoke(CurrentHealth, maxHealth); // ★HP変更をUIに通知
if (CurrentHealth <= 0f)
{

View File

@@ -0,0 +1,74 @@
using UnityEngine;
using UnityEngine.UI;
public class EnemyHealthBar : MonoBehaviour
{
[Header("UI設定")]
[SerializeField] private Slider hpSlider;
[SerializeField] private EnemyHealth targetEnemyHealth;
[Header("追従設定")]
[Tooltip("敵の原点から頭上へどれだけ浮かせるか(メートル)")]
[SerializeField] private Vector3 offset = new Vector3(0, 2.0f, 0);
private Transform targetTransform;
private Transform mainCameraTransform;
private void Start()
{
// ターゲットのEnemyHealthを自動検索
if (targetEnemyHealth == null)
{
targetEnemyHealth = GetComponentInParent<EnemyHealth>();
}
if (targetEnemyHealth != null)
{
targetTransform = targetEnemyHealth.transform;
targetEnemyHealth.OnHealthChanged += UpdateHp;
targetEnemyHealth.OnDeath += HandleDeath;
UpdateHp(targetEnemyHealth.CurrentHealth, targetEnemyHealth.MaxHealth);
}
if (Camera.main != null)
{
mainCameraTransform = Camera.main.transform;
}
}
private void OnDestroy()
{
if (targetEnemyHealth != null)
{
targetEnemyHealth.OnHealthChanged -= UpdateHp;
targetEnemyHealth.OnDeath -= HandleDeath;
}
}
private void LateUpdate()
{
if (targetTransform == null || mainCameraTransform == null) return;
// 1. 敵の頭上に位置を追従
transform.position = targetTransform.position + offset;
// 2. 常にカメラの向きへ正対(ビルボード処理:鏡像反転を防ぐためカメラの向きと平行にする)
transform.forward = mainCameraTransform.forward;
}
private void UpdateHp(float current, float max)
{
if (hpSlider != null)
{
hpSlider.maxValue = max;
hpSlider.value = current;
}
}
private void HandleDeath()
{
// 敵が死んだらバーを即座に非表示
gameObject.SetActive(false);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1443ed714a8be8b47a421694985d521a

View File

@@ -0,0 +1,64 @@
using UnityEngine;
using UnityEngine.UI;
public class PlayerHUD : MonoBehaviour
{
[Header("HP表示設定")]
[SerializeField] private Slider hpSlider;
[SerializeField] private Text hpText;
[Header("Codingゲージ表示設定")]
[SerializeField] private Slider gaugeSlider;
[SerializeField] private Text gaugeText;
private void Start()
{
if (PlayerStatusManager.Instance != null)
{
// 初期値の反映
UpdateHpUI(PlayerStatusManager.Instance.CurrentHp, PlayerStatusManager.Instance.MaxHp);
UpdateGaugeUI(PlayerStatusManager.Instance.CurrentGauge, PlayerStatusManager.Instance.MaxGauge);
// イベントの購読
PlayerStatusManager.Instance.OnHpChanged += UpdateHpUI;
PlayerStatusManager.Instance.OnGaugeChanged += UpdateGaugeUI;
}
}
private void OnDestroy()
{
if (PlayerStatusManager.Instance != null)
{
PlayerStatusManager.Instance.OnHpChanged -= UpdateHpUI;
PlayerStatusManager.Instance.OnGaugeChanged -= UpdateGaugeUI;
}
}
private void UpdateHpUI(float current, float max)
{
if (hpSlider != null)
{
hpSlider.maxValue = max;
hpSlider.value = current;
}
if (hpText != null)
{
hpText.text = $"HP: {Mathf.CeilToInt(current)} / {Mathf.CeilToInt(max)}";
}
}
private void UpdateGaugeUI(float current, float max)
{
if (gaugeSlider != null)
{
gaugeSlider.maxValue = max;
gaugeSlider.value = current;
}
if (gaugeText != null)
{
gaugeText.text = $"GAUGE: {Mathf.FloorToInt(current)}%";
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 00f8d88793224ea4a8c6af33c944a675

View File

@@ -1,10 +1,20 @@
using System;
using System.Collections;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
using UnityEngine.XR;
public class PlayerStatusManager : MonoBehaviour
public class PlayerStatusManager : MonoBehaviour, IDamageable
{
public static PlayerStatusManager Instance { get; private set; }
[Header("HP・ステータス設定")]
[SerializeField] private float maxHp = 100f;
[SerializeField] private float currentHp = 100f;
[Tooltip("被ダメージ後の無敵時間(秒)")]
[SerializeField] private float invincibilityDuration = 0.8f;
[Header("デバッグ設定")]
[SerializeField] private bool ignoreGaugeForDebug = true;
@@ -30,30 +40,30 @@ public class PlayerStatusManager : MonoBehaviour
[SerializeField] private BuffHandler buffHandler = new BuffHandler();
private float codingTimer;
private bool isInvincible;
public bool IsCodingMode { get; private set; }
public bool IsDead { get; private set; }
public float CurrentHp => currentHp;
public float MaxHp => maxHp;
public float CurrentGauge => currentGauge;
public float MaxGauge => maxGauge;
public BuffHandler Buffs => buffHandler;
public event Action<float, float> OnHpChanged;
public event Action<float, float> OnGaugeChanged;
public event Action OnDeath;
private void Awake()
{
if (Instance == null)
{
Instance = this;
}
else
{
Destroy(gameObject);
}
if (Instance == null) Instance = this;
else Destroy(gameObject);
currentHp = maxHp;
}
private void OnEnable()
{
SetActionsEnabled(true);
}
private void OnDisable()
{
SetActionsEnabled(false);
}
private void OnEnable() => SetActionsEnabled(true);
private void OnDisable() => SetActionsEnabled(false);
private void SetActionsEnabled(bool enable)
{
@@ -73,10 +83,14 @@ public class PlayerStatusManager : MonoBehaviour
private void Start()
{
if (codingModeUI != null) codingModeUI.SetActive(false);
OnHpChanged?.Invoke(currentHp, maxHp);
OnGaugeChanged?.Invoke(currentGauge, maxGauge);
}
private void Update()
{
if (IsDead) return;
CheckComboInput();
if (!IsCodingMode)
@@ -95,8 +109,85 @@ public class PlayerStatusManager : MonoBehaviour
public void AddGauge(float amount)
{
if (IsCodingMode) return;
if (IsCodingMode || IsDead) return;
currentGauge = Mathf.Clamp(currentGauge + amount, 0f, maxGauge);
OnGaugeChanged?.Invoke(currentGauge, maxGauge);
}
public void TakeDamage(DamageInfo damageInfo)
{
if (IsDead || isInvincible || IsCodingMode) return;
// 防御バフ適用(倍率を掛けて被ダメージを軽減)
float finalDamage = damageInfo.amount * buffHandler.CurrentDefenseMultiplier;
currentHp = Mathf.Max(0f, currentHp - finalDamage);
OnHpChanged?.Invoke(currentHp, maxHp);
Debug.Log($"💥 プレイヤー被ダメージ: {finalDamage:F1} (残HP: {currentHp:F1} / {maxHp})");
// コントローラーへの被弾振動フィードバック
TriggerDamageHaptics(0.6f, 0.15f);
if (currentHp <= 0f)
{
Die();
}
else
{
StartCoroutine(InvincibilityRoutine());
}
}
public void Heal(float amount)
{
if (IsDead) return;
currentHp = Mathf.Min(maxHp, currentHp + amount);
OnHpChanged?.Invoke(currentHp, maxHp);
Debug.Log($"💚 HP回復: +{amount} (現在HP: {currentHp} / {maxHp})");
}
private IEnumerator InvincibilityRoutine()
{
isInvincible = true;
yield return new WaitForSeconds(invincibilityDuration);
isInvincible = false;
}
private void Die()
{
if (IsDead) return;
IsDead = true;
Debug.LogError("☠️ プレイヤー死亡:GAME OVER");
OnDeath?.Invoke();
SetActionsEnabled(false);
if (WorldPauseManager.Instance != null)
{
WorldPauseManager.Instance.PauseWorld();
}
// 死亡後、2秒待って現在のシーンをリロード(再開)
StartCoroutine(GameOverRestartRoutine());
}
private IEnumerator GameOverRestartRoutine()
{
yield return new WaitForSecondsRealtime(2.5f);
if (WorldPauseManager.Instance != null)
{
WorldPauseManager.Instance.ResumeWorld();
}
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
private void TriggerDamageHaptics(float amplitude, float duration)
{
UnityEngine.XR.InputDevice left = InputDevices.GetDeviceAtXRNode(XRNode.LeftHand);
if (left.isValid) left.SendHapticImpulse(0, amplitude, duration);
UnityEngine.XR.InputDevice right = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);
if (right.isValid) right.SendHapticImpulse(0, amplitude, duration);
}
private void CheckComboInput()
@@ -140,15 +231,15 @@ public class PlayerStatusManager : MonoBehaviour
if (codingModeUI != null) codingModeUI.SetActive(true);
}
public void ApplyBuffsAndResume(BuffType buff1, BuffType buff2)
// PlayerStatusManager.cs
public void ApplyBuffAndResume(BuffType buff)
{
if (successEffectPrefab != null && effectSpawnPoint != null)
{
Instantiate(successEffectPrefab, effectSpawnPoint.position, effectSpawnPoint.rotation);
}
buffHandler.ActivateBuff(buff1);
buffHandler.ActivateBuff(buff2);
buffHandler.ActivateBuff(buff);
ResumeWorldState(consumeGauge: true);
}
@@ -165,8 +256,14 @@ public class PlayerStatusManager : MonoBehaviour
SetActionState(moveAction, true);
SetActionState(turnAction, true);
PuzzleBlock.ResetAllBlocksInScene();
IsCodingMode = false;
if (codingModeUI != null) codingModeUI.SetActive(false);
if (consumeGauge) currentGauge = 0f;
if (consumeGauge)
{
currentGauge = 0f;
OnGaugeChanged?.Invoke(currentGauge, maxGauge);
}
}
}

View File

@@ -21,12 +21,16 @@ public class PuzzleBlock : MonoBehaviour
private PuzzleBlock nearbyPartner;
private bool isConnected;
// ★ワールド情報ではなく「親階層」と「ローカル情報」を記憶
// 親階層とローカル情報の記憶
private Transform initialParent;
private Vector3 initialLocalPosition;
private Quaternion initialLocalRotation;
private Vector3 initialLocalScale;
// ★追加:初期の物理設定を記憶
private bool initialIsKinematic;
private bool initialUseGravity;
private Rigidbody rb;
private XRGrabInteractable grabInteractable;
@@ -35,11 +39,17 @@ public class PuzzleBlock : MonoBehaviour
rb = GetComponent<Rigidbody>();
grabInteractable = GetComponent<XRGrabInteractable>();
// ★開始時の「親」と「ローカル座標・回転・スケール」を保持
initialParent = transform.parent;
initialLocalPosition = transform.localPosition;
initialLocalRotation = transform.localRotation;
initialLocalScale = transform.localScale;
// ★初期状態の重力・キネマティック設定を保持
if (rb != null)
{
initialIsKinematic = rb.isKinematic;
initialUseGravity = rb.useGravity;
}
}
private void OnEnable()
@@ -109,10 +119,11 @@ public class PuzzleBlock : MonoBehaviour
OnPuzzleCompleted?.Invoke(Color);
// PuzzleBlock.cs
BuffType buff = ConvertColorToBuffType(Color);
if (PlayerStatusManager.Instance != null)
{
PlayerStatusManager.Instance.ApplyBuffsAndResume(buff, buff);
PlayerStatusManager.Instance.ApplyBuffAndResume(buff);
}
}
@@ -129,32 +140,29 @@ public class PuzzleBlock : MonoBehaviour
public void ResetBlock()
{
// 1. 手で掴んでいる場合は手離し処理
ForceDrop();
isConnected = false;
nearbyPartner = null;
// 2. ★親オブジェクト(Canvas)の子へ戻す
if (initialParent != null && transform.parent != initialParent)
{
transform.SetParent(initialParent, false);
}
// 3. ★Canvas内のローカル位置・回転・スケールを完全復元
transform.localPosition = initialLocalPosition;
transform.localRotation = initialLocalRotation;
transform.localScale = initialLocalScale;
// 4. 物理状態の再初期化
// ★修正:初期設定(記憶した値)へ正確に復元
if (rb != null)
{
rb.isKinematic = false;
rb.linearVelocity = Vector3.zero;
rb.angularVelocity = Vector3.zero;
rb.isKinematic = initialIsKinematic;
rb.useGravity = initialUseGravity;
}
// 5. 掴み機能の再有効化
if (grabInteractable != null)
{
grabInteractable.enabled = true;

View File

@@ -1,30 +1,82 @@
using System.Collections;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class TitleManager : MonoBehaviour
{
[Header("UI Buttons")]
[Header("VR入力設定")]
[Tooltip("スタート用の右手トリガー入力(例: XRI RightHand Interaction/Activate など)")]
[SerializeField] private InputActionProperty rightTriggerAction;
[Tooltip("スタート用の左手トリガー入力(任意)")]
[SerializeField] private InputActionProperty leftTriggerAction;
[Header("UI Buttons(任意)")]
[SerializeField] private Button startButton;
[SerializeField] private Button exitButton;
[Header("Scene Settings")]
[SerializeField] private string mainGameSceneName = "MainGameScene";
private bool isStarting = false;
private void Awake()
{
if (startButton != null) startButton.onClick.AddListener(OnStartButtonClicked);
if (startButton != null) startButton.onClick.AddListener(StartGame);
if (exitButton != null) exitButton.onClick.AddListener(OnExitButtonClicked);
}
private void OnStartButtonClicked()
private void OnEnable()
{
EnableAction(rightTriggerAction);
EnableAction(leftTriggerAction);
}
private void OnDisable()
{
DisableAction(rightTriggerAction);
DisableAction(leftTriggerAction);
}
private void EnableAction(InputActionProperty prop)
{
if (prop.action != null) prop.action.Enable();
}
private void DisableAction(InputActionProperty prop)
{
if (prop.action != null) prop.action.Disable();
}
private void Update()
{
if (isStarting) return;
// トリガー入力の判定(右手または左手)
if (IsTriggerPressed(rightTriggerAction) || IsTriggerPressed(leftTriggerAction))
{
StartGame();
}
}
private bool IsTriggerPressed(InputActionProperty prop)
{
if (prop.action == null) return false;
return prop.action.triggered || prop.action.ReadValue<float>() > 0.5f;
}
public void StartGame()
{
if (isStarting) return;
isStarting = true;
if (startButton != null) startButton.interactable = false;
Debug.Log("🚀 トリガー入力を検知:メインゲームシーンを読み込みます。");
StartCoroutine(LoadSceneRoutine());
}
private void OnExitButtonClicked()
public void OnExitButtonClicked()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;

View File

@@ -6,7 +6,7 @@ EditorBuildSettings:
serializedVersion: 2
m_Scenes:
- enabled: 1
path: Assets/_Scenes/Test.unity
path: Assets/_Scenes/StartScene.unity
guid: ef443f0333a244a26b06718135d3c98f
- enabled: 1
path: Assets/_Scenes/GameScene.unity