From 14ebaa11bed0163633b9d132a03edade9c5f6917 Mon Sep 17 00:00:00 2001 From: ohgushiyuga Date: Tue, 9 Jun 2026 12:37:09 +0900 Subject: [PATCH] =?UTF-8?q?Coding=E3=83=A2=E3=83=BC=E3=83=89=E7=A0=94?= =?UTF-8?q?=E7=A9=B6=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Material.meta | 8 + Assets/Material/New Material 1.mat | 137 +++ Assets/Material/New Material 1.mat.meta | 8 + Assets/Material/New Material 2.mat | 137 +++ Assets/Material/New Material 2.mat.meta | 8 + Assets/Material/New Material.mat | 137 +++ Assets/Material/New Material.mat.meta | 8 + Assets/Scenes/GameScene.unity | 1070 ++++++++++++++++- Assets/Scripts/PlayerStatusManager.cs | 188 ++- Assets/Scripts/VRPunchAttack.cs | 28 +- Assets/Scripts/VRUIDoorFaceFollow.cs | 79 ++ Assets/Scripts/VRUIDoorFaceFollow.cs.meta | 2 + .../XR/Settings/OpenXRPackageSettings.asset | 6 +- 13 files changed, 1733 insertions(+), 83 deletions(-) create mode 100644 Assets/Material.meta create mode 100644 Assets/Material/New Material 1.mat create mode 100644 Assets/Material/New Material 1.mat.meta create mode 100644 Assets/Material/New Material 2.mat create mode 100644 Assets/Material/New Material 2.mat.meta create mode 100644 Assets/Material/New Material.mat create mode 100644 Assets/Material/New Material.mat.meta create mode 100644 Assets/Scripts/VRUIDoorFaceFollow.cs create mode 100644 Assets/Scripts/VRUIDoorFaceFollow.cs.meta diff --git a/Assets/Material.meta b/Assets/Material.meta new file mode 100644 index 0000000..56b6414 --- /dev/null +++ b/Assets/Material.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 733b151e3155ff047bc44a0f3f64f909 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Material/New Material 1.mat b/Assets/Material/New Material 1.mat new file mode 100644 index 0000000..4ef37ac --- /dev/null +++ b/Assets/Material/New Material 1.mat @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New Material 1 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0, g: 0, b: 1, a: 1} + - _Color: {r: 0, g: 0, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &2344268579193699850 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion + version: 10 diff --git a/Assets/Material/New Material 1.mat.meta b/Assets/Material/New Material 1.mat.meta new file mode 100644 index 0000000..a1f4b16 --- /dev/null +++ b/Assets/Material/New Material 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ec014f54cfb2c74aa3a4f66e8169883 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Material/New Material 2.mat b/Assets/Material/New Material 2.mat new file mode 100644 index 0000000..20f1c43 --- /dev/null +++ b/Assets/Material/New Material 2.mat @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7141186158001946892 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion + version: 10 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New Material 2 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0, g: 1, b: 0, a: 1} + - _Color: {r: 0, g: 1, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/Material/New Material 2.mat.meta b/Assets/Material/New Material 2.mat.meta new file mode 100644 index 0000000..2745bf4 --- /dev/null +++ b/Assets/Material/New Material 2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 412e67d7c363e1546ad63eafb782fbc8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Material/New Material.mat b/Assets/Material/New Material.mat new file mode 100644 index 0000000..09e530c --- /dev/null +++ b/Assets/Material/New Material.mat @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3456904790123304626 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion + version: 10 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New Material + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 1, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/Material/New Material.mat.meta b/Assets/Material/New Material.mat.meta new file mode 100644 index 0000000..c9144a0 --- /dev/null +++ b/Assets/Material/New Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f047b861e188db4492aa9d5ef2c408e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/GameScene.unity b/Assets/Scenes/GameScene.unity index 9acab83..c5807a6 100644 --- a/Assets/Scenes/GameScene.unity +++ b/Assets/Scenes/GameScene.unity @@ -14142,6 +14142,90 @@ MeshRenderer: m_SortingOrder: 0 m_MaskInteraction: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &629154675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 629154676} + - component: {fileID: 629154677} + m_Layer: 5 + m_Name: Slot_B + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &629154676 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629154675} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 797096992} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 121} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &629154677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629154675} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 60523e0647cc6ab43acc73cb266a32a7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.XR.Interaction.Toolkit::UnityEngine.XR.Interaction.Toolkit.Interactors.XRSocketInteractor + m_InteractionManager: {fileID: 0} + m_InteractionLayers: + m_Bits: 4294967295 + m_Handedness: 0 + m_AttachTransform: {fileID: 0} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_AutoFindParentInteractableInHierarchy: 0 + m_ParentInteractableObject: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_ShowInteractableHoverMeshes: 1 + m_InteractableHoverMeshMaterial: {fileID: 0} + m_InteractableCantHoverMeshMaterial: {fileID: 0} + m_SocketActive: 1 + m_InteractableHoverScale: 1 + m_RecycleDelayTime: 1 + m_HoverSocketSnapping: 0 + m_SocketSnappingRadius: 0.1 + m_SocketScaleMode: 0 + m_FixedScale: {x: 1, y: 1, z: 1} + m_TargetBoundsSize: {x: 1, y: 1, z: 1} --- !u!1001 &642717340 PrefabInstance: m_ObjectHideFlags: 0 @@ -15829,7 +15913,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 + m_PresetInfoIsWorld: 1 --- !u!223 &797096991 Canvas: m_ObjectHideFlags: 0 @@ -15839,7 +15923,7 @@ Canvas: m_GameObject: {fileID: 797096988} m_Enabled: 1 serializedVersion: 3 - m_RenderMode: 1 + m_RenderMode: 2 m_Camera: {fileID: 1527351879} m_PlaneDistance: 0.3 m_PixelPerfect: 0 @@ -15860,19 +15944,24 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 797096988} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0.351433, z: -0, w: -0.9362131} + m_LocalPosition: {x: 0, y: 0, z: -3.0962732} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2106260778} - m_Father: {fileID: 0} + - {fileID: 1490221423} + - {fileID: 2095961660} + - {fileID: 2071460366} + - {fileID: 1201555537} + - {fileID: 629154676} + m_Father: {fileID: 1738935193} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} + m_AnchoredPosition: {x: -32464.803, y: 26081.35} + m_SizeDelta: {x: 1920, y: 1080} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &797729773 GameObject: m_ObjectHideFlags: 0 @@ -642665,6 +642754,90 @@ MonoBehaviour: m_ShadowLayerMask: 1 m_RenderingLayers: 1 m_ShadowRenderingLayers: 1 +--- !u!1 &1201555536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1201555537} + - component: {fileID: 1201555538} + m_Layer: 5 + m_Name: Slot_A + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1201555537 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1201555536} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 797096992} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 121} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1201555538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1201555536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 60523e0647cc6ab43acc73cb266a32a7, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.XR.Interaction.Toolkit::UnityEngine.XR.Interaction.Toolkit.Interactors.XRSocketInteractor + m_InteractionManager: {fileID: 0} + m_InteractionLayers: + m_Bits: 4294967295 + m_Handedness: 0 + m_AttachTransform: {fileID: 0} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_AutoFindParentInteractableInHierarchy: 0 + m_ParentInteractableObject: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_ShowInteractableHoverMeshes: 1 + m_InteractableHoverMeshMaterial: {fileID: 0} + m_InteractableCantHoverMeshMaterial: {fileID: 0} + m_SocketActive: 1 + m_InteractableHoverScale: 1 + m_RecycleDelayTime: 1 + m_HoverSocketSnapping: 0 + m_SocketSnappingRadius: 0.1 + m_SocketScaleMode: 0 + m_FixedScale: {x: 1, y: 1, z: 1} + m_TargetBoundsSize: {x: 1, y: 1, z: 1} --- !u!1001 &1202724076 PrefabInstance: m_ObjectHideFlags: 0 @@ -645650,6 +645823,10 @@ MonoBehaviour: maxGauge: 10 currentGauge: 0 codingModeUI: {fileID: 797096988} + buffDuration: 10 + attackBuffMultiplier: 1.5 + defenseBuffMultiplier: 0.5 + hpHealAmount: 30 --- !u!4 &1455781481 Transform: m_ObjectHideFlags: 0 @@ -646550,6 +646727,280 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &1490221422 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1490221423} + - component: {fileID: 1490221428} + - component: {fileID: 1490221427} + - component: {fileID: 1490221426} + - component: {fileID: 1490221425} + - component: {fileID: 1490221424} + m_Layer: 5 + m_Name: Cube_Attack + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1490221423 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490221422} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1.606468e+10} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 797096992} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -1.838289e+10, y: 2.5821735e+10} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1490221424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490221422} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.XR.Interaction.Toolkit::UnityEngine.XR.Interaction.Toolkit.Interactables.XRGrabInteractable + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + 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_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_PredictedVisualsTransform: {fileID: 0} + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + m_TrackScale: 1 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 1 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 0 + m_LimitLinearVelocity: 0 + m_LimitAngularVelocity: 0 + m_MaxLinearVelocityDelta: 10 + m_MaxAngularVelocityDelta: 20 +--- !u!54 &1490221425 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490221422} + serializedVersion: 5 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &1490221426 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490221422} + 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: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1490221427 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490221422} + 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_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1490221428 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490221422} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1001 &1490858618 PrefabInstance: m_ObjectHideFlags: 0 @@ -649398,6 +649849,55 @@ Transform: m_CorrespondingSourceObject: {fileID: 1030978471, guid: abc00000000014616523831818405251, type: 3} m_PrefabInstance: {fileID: 1735359204} m_PrefabAsset: {fileID: 0} +--- !u!1 &1738935191 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1738935193} + - component: {fileID: 1738935192} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1738935192 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1738935191} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97e7b0ef50eb0934e84c6f6f7c3ed536, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::VRUIDoorFaceFollow + vrCameraTransform: {fileID: 698882382} + forwardDistance: 1.5 + heightOffset: -0.1 + followSpeed: 5 +--- !u!4 &1738935193 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1738935191} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.01359, y: -0, z: -0.02484} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 797096992} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1752753446 GameObject: m_ObjectHideFlags: 0 @@ -653985,6 +654485,554 @@ Transform: m_CorrespondingSourceObject: {fileID: 1030976941, guid: abc00000000003363950952516940468, type: 3} m_PrefabInstance: {fileID: 2070959559} m_PrefabAsset: {fileID: 0} +--- !u!1 &2071460365 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2071460366} + - component: {fileID: 2071460371} + - component: {fileID: 2071460370} + - component: {fileID: 2071460369} + - component: {fileID: 2071460368} + - component: {fileID: 2071460367} + m_Layer: 5 + m_Name: Cube_Heal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2071460366 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2071460365} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 797096992} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -234} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2071460367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2071460365} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.XR.Interaction.Toolkit::UnityEngine.XR.Interaction.Toolkit.Interactables.XRGrabInteractable + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + 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_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_PredictedVisualsTransform: {fileID: 0} + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + m_TrackScale: 1 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 1 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 0 + m_LimitLinearVelocity: 0 + m_LimitAngularVelocity: 0 + m_MaxLinearVelocityDelta: 10 + m_MaxAngularVelocityDelta: 20 +--- !u!54 &2071460368 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2071460365} + serializedVersion: 5 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &2071460369 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2071460365} + 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: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2071460370 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2071460365} + 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_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 412e67d7c363e1546ad63eafb782fbc8, 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2071460371 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2071460365} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2095961659 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2095961660} + - component: {fileID: 2095961665} + - component: {fileID: 2095961664} + - component: {fileID: 2095961663} + - component: {fileID: 2095961662} + - component: {fileID: 2095961661} + m_Layer: 5 + m_Name: Cube_Def + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2095961660 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095961659} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 797096992} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2095961661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095961659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.XR.Interaction.Toolkit::UnityEngine.XR.Interaction.Toolkit.Interactables.XRGrabInteractable + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + 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_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_PredictedVisualsTransform: {fileID: 0} + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + m_TrackScale: 1 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 1 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 0 + m_LimitLinearVelocity: 0 + m_LimitAngularVelocity: 0 + m_MaxLinearVelocityDelta: 10 + m_MaxAngularVelocityDelta: 20 +--- !u!54 &2095961662 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095961659} + serializedVersion: 5 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &2095961663 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095961659} + 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: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2095961664 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095961659} + 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_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1ec014f54cfb2c74aa3a4f66e8169883, 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2095961665 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095961659} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1001 &2104846428 PrefabInstance: m_ObjectHideFlags: 0 @@ -654968,6 +656016,6 @@ SceneRoots: - {fileID: 404289285} - {fileID: 755171638} - {fileID: 1924402715} - - {fileID: 797096992} - - {fileID: 858106771} - {fileID: 1455781481} + - {fileID: 1738935193} + - {fileID: 858106771} diff --git a/Assets/Scripts/PlayerStatusManager.cs b/Assets/Scripts/PlayerStatusManager.cs index c10155f..49c7a9e 100644 --- a/Assets/Scripts/PlayerStatusManager.cs +++ b/Assets/Scripts/PlayerStatusManager.cs @@ -1,115 +1,195 @@ using UnityEngine; using UnityEngine.InputSystem; +using System.Collections; +/// +/// プレイヤーの共通ゲージ、時間停止(Codingモード)、UI、および各種バフの制限時間を管理するクラス +/// public class PlayerStatusManager : MonoBehaviour { - public static PlayerStatusManager Instance { get; private set;} + public static PlayerStatusManager Instance { get; private set; } + [Header("Codingモード用 入力設定")] [SerializeField] private InputActionProperty zlButtonAction; [SerializeField] private InputActionProperty zrButtonAction; + [Header("ゲージ設定")] [SerializeField] private float maxGauge = 100f; [SerializeField] private float currentGauge = 0f; + [Header("表示UI設定")] + [Tooltip("画面全体を追従させる親オブジェクト(World Space Canvasや3D台座)を指定してください")] [SerializeField] private GameObject codingModeUI; - private bool isCodingMode = false; + // ─── ★ここからバフ設定を新しく追加 ─── + [Header("バフパラメータ設定")] + [Tooltip("攻撃力UP・防御力UPの持続時間 (秒)")] + [SerializeField] private float buffDuration = 10f; + [Tooltip("攻撃力UP時のダメージ倍率 (例: 1.5倍)")] + [SerializeField] private float attackBuffMultiplier = 1.5f; + [Tooltip("防御力UP時の被ダメージ軽減率 (例: 0.5ならダメージ50%カット)")] + [SerializeField] private float defenseBuffMultiplier = 0.5f; + [Tooltip("HP回復バフ発動時の回復量")] + [SerializeField] private float hpHealAmount = 30f; - void Awake() + // 各バフの残り時間を管理するタイマー(0より大きければバフ有効) + private float attackBuffTimer = 0f; + private float defenseBuffTimer = 0f; + + // 現在Codingモード(時間停止中)かどうかのフラグ + private bool isCodingMode = false; + // ───────────────────────────────────── + + #region プロパティ(外部のスクリプトからバフ状態を参照するための窓口) + /// 現在攻撃力UPバフが有効かどうか + public bool IsAttackBuffActive => attackBuffTimer > 0f; + + /// 現在防御力UPバフが有効かどうか + public bool IsDefenseBuffActive => defenseBuffTimer > 0f; + + /// 現在の攻撃力倍率を返す(バフなしなら1.0倍) + public float CurrentAttackMultiplier => IsAttackBuffActive ? attackBuffMultiplier : 1.0f; + + /// 現在の防御倍率を返す(バフなしなら1.0倍、バフありなら0.5倍など) + public float CurrentDefenseMultiplier => IsDefenseBuffActive ? defenseBuffMultiplier : 1.0f; + #endregion + + private void Awake() { - if(Instance == null) - { - Instance = this; - } - else - { - Destroy(gameObject); - } + if (Instance == null) { Instance = this; } + else { Destroy(gameObject); } } private void OnEnable() { - if(zlButtonAction.action != null) zlButtonAction.action.Enable(); - if(zrButtonAction.action != null) zrButtonAction.action.Enable(); + if (zlButtonAction.action != null) zlButtonAction.action.Enable(); + if (zrButtonAction.action != null) zrButtonAction.action.Enable(); } private void OnDisable() { - if(zlButtonAction.action != null) zlButtonAction.action.Disable(); - if(zrButtonAction.action != null) zrButtonAction.action.Disable(); + if (zlButtonAction.action != null) zlButtonAction.action.Disable(); + if (zrButtonAction.action != null) zrButtonAction.action.Disable(); } - // Start is called once before the first execution of Update after the MonoBehaviour is created - void Start() + private void Start() { - if(codingModeUI != null) + if (codingModeUI != null) codingModeUI.SetActive(false); + } + + private void Update() + { + CheckComboInput(); + + // ★新設:ゲームプレイ中(時間停止中でないとき)のみ、バフのタイマーを減算する + if (!isCodingMode) { - codingModeUI.SetActive(false); + UpdateBuffTimers(); } } - // Update is called once per frame - void Update() + public void AddGauge(float amount) { - CheckComboInput(); - } - - public void AddGauge(float amout) - { - if(isCodingMode) return; - - currentGauge += amout; + if (isCodingMode) return; + currentGauge += amount; currentGauge = Mathf.Clamp(currentGauge, 0f, maxGauge); + Debug.Log($"🔋 共通ゲージ増加: {currentGauge} / {maxGauge}"); } private void CheckComboInput() { - if(zlButtonAction.action == null || zrButtonAction.action ==null) return; + if (zlButtonAction.action == null || zrButtonAction.action == null) return; bool zlPressed = zlButtonAction.action.triggered && zlButtonAction.action.ReadValue() > 0.5f; - bool zrPressed = zlButtonAction.action.triggered && zrButtonAction.action.ReadValue() > 0.5f; + bool zrPressed = zrButtonAction.action.triggered && zrButtonAction.action.ReadValue() > 0.5f; - if(!isCodingMode && currentGauge >= maxGauge) + if (!isCodingMode && currentGauge >= maxGauge) { - if((zlPressed && zrButtonAction.action.ReadValue() > 0.5f) || - (zrPressed && zlButtonAction.action.ReadValue() > 0.5f)) + if ((zlPressed && zrButtonAction.action.ReadValue() > 0.5f) || + (zrPressed && zlButtonAction.action.ReadValue() > 0.5f)) { StartCodingMode(); } } - else if(isCodingMode) - { - if((zlPressed && zrButtonAction.action.ReadValue() > 0.5f) || - (zrPressed && zlButtonAction.action.ReadValue() > 0.5f)) - { - EndCodingMode(); - } - } } private void StartCodingMode() { isCodingMode = true; + Time.timeScale = 0f; // 時間を完全停止 - Time.timeScale = 0f; - - if(codingModeUI != null) - { - codingModeUI.SetActive(true); - } + if (codingModeUI != null) codingModeUI.SetActive(true); } - private void EndCodingMode() + /// + /// ★役割拡張:パズル完了時に呼び出され、指定された2つのバフを発動して時間を再開する + /// + public void ApplyBuffsAndResume(string buff1, string buff2) { + // 1. 選択された2つのバフをそれぞれ発動(重複なしの仕様を適用) + ActivateBuffByName(buff1); + ActivateBuffByName(buff2); + + // 2. Codingモードの終了処理 isCodingMode = false; + Time.timeScale = 1f; // 時間を再開 - Time.timeScale = 1f; + if (codingModeUI != null) codingModeUI.SetActive(false); + currentGauge = 0f; // ゲージを消費 + } - if(codingModeUI != null) + /// + /// 文字列に応じて対象のバフを起動する内部メソッド + /// + private void ActivateBuffByName(string buffName) + { + switch (buffName) { - codingModeUI.SetActive(false); + case "AttackUp": + attackBuffTimer = buffDuration; // タイマーをリセット(上書き補給) + Debug.Log($"⚔️ 攻撃力UPバフ発動! 倍率: {attackBuffMultiplier} / 効果時間: {buffDuration}秒"); + break; + + case "DefenseUp": + defenseBuffTimer = buffDuration; // タイマーをリセット(上書き補給) + Debug.Log($"🛡️ 防御力UPバフ発動! 被ダメージ倍率: {defenseBuffMultiplier} / 効果時間: {buffDuration}秒"); + break; + + case "Heal": + ExecuteHeal(); // HP回復は即時発動 + break; + + default: + Debug.LogWarning($"未定義のバフ名が検出されました: {buffName}"); + break; + } + } + + /// + /// HP回復の即時実行処理 + /// + private void ExecuteHeal() + { + Debug.Log($"💚 HP回復バフ発動! 回復量: {hpHealAmount}"); + // 【将来の拡張】プレイヤーのHealthスクリプトが完成したら、ここに回復処理を記述します + // PlayerHealth.Instance.Heal(hpHealAmount); + } + + /// + /// 毎フレーム、有効なバフタイマーをリアルタイムで減算する + /// + private void UpdateBuffTimers() + { + if (attackBuffTimer > 0f) + { + attackBuffTimer -= Time.deltaTime; + if (attackBuffTimer <= 0f) Debug.Log("⚔️ 攻撃力UPバフの効果が終了しました。"); } - currentGauge = 0f; + if (defenseBuffTimer > 0f) + { + defenseBuffTimer -= Time.deltaTime; + if (defenseBuffTimer <= 0f) Debug.Log("🛡️ 防御力UPバフの効果が終了しました。"); + } } -} +} \ No newline at end of file diff --git a/Assets/Scripts/VRPunchAttack.cs b/Assets/Scripts/VRPunchAttack.cs index 1f74a28..ea21799 100644 --- a/Assets/Scripts/VRPunchAttack.cs +++ b/Assets/Scripts/VRPunchAttack.cs @@ -17,14 +17,10 @@ public class VRInputPunch : MonoBehaviour [SerializeField] private float hapticDuration = 0.1f; // 通常ヒットの振動の長さ [Header("パリィ設定")] - [Tooltip("パリィを成立させるために必要な最低限の手の速度 (m/s) ※構え中は速度に関係なく成功します")] - [SerializeField] private float minParrySpeed = 1.0f; - [Tooltip("パリィ成功時に敵がスタン(行動不能)になる時間 (秒)")] - [SerializeField] private float parryStunDuration = 3.0f; - [Tooltip("パリィ成功時の強力な振動の強さ (0.0 ~ 1.0)")] - [SerializeField] private float parryHapticAmplitude = 0.9f; - [Tooltip("パリィ成功時の強力な振動の長さ (秒)")] - [SerializeField] private float parryHapticDuration = 0.25f; + [SerializeField] private float minParrySpeed = 1.0f; // パリィできるパンチとして判定する最低速度 (m/s) + [SerializeField] private float parryStunDuration = 3.0f; // スタン時間(秒) + [SerializeField] private float parryHapticAmplitude = 0.9f; // パリィ成功時の振動の強さ + [SerializeField] private float parryHapticDuration = 0.25f; // パリィ成功時の振動の長さ // ───────────────────────────────────────── private void OnEnable() @@ -57,7 +53,7 @@ public class VRInputPunch : MonoBehaviour Vector3 velocity = velocityAction.action.ReadValue(); float speed = velocity.magnitude; - // ─── ★新設:【パリィ判定】当たったオブジェクトが「敵の拳」だった場合 ─── + //【パリィ判定】当たったオブジェクトが敵の拳だった場合 if (other.CompareTag("EnemyFist")) { Debug.Log($"🛡️ [パリィチェック] 敵の拳と接触。プレイヤーの手の速度: {speed:F2} m/s / 構え状態: {poseDetector.IsPosing}"); @@ -72,7 +68,7 @@ public class VRInputPunch : MonoBehaviour // 敵の攻撃コンボを強制中断し、スタン状態にする enemyAI.TriggerParryStun(parryStunDuration); - // パリィ成功用の強力な振動(手応え)をプレイヤーに返す + // パリィ成功用の強力な振動をプレイヤーに返す TriggerHaptics(parryHapticAmplitude, parryHapticDuration); Debug.Log($"🛡️ 【ジャストパリィ成功!】 敵の体勢を崩しました。スタン時間: {parryStunDuration}秒"); @@ -88,7 +84,7 @@ public class VRInputPunch : MonoBehaviour // ──────────────────────────────────────────────────────────────────────── - // ─── 以下は従来の【パンチ攻撃】の処理(変更なし・ログのバグ修正のみ) ─── + // パンチ攻撃の処理 Debug.Log($"[InputSystem接触] {other.name} に触れました。センサー速度: {speed:F2} m/s"); if (speed >= minPunchSpeed) @@ -98,6 +94,7 @@ public class VRInputPunch : MonoBehaviour if (damageble != null) { DamageInfo info = new DamageInfo(); + // 構えからパンチするとダメージ2倍、ゲージ取得度2倍 if (poseDetector.IsPosing) { info.amount = (speed * damageMultiplier) * 2f; @@ -114,10 +111,14 @@ public class VRInputPunch : MonoBehaviour } info.hitPosition = other.transform.position; info.punchDirection = velocity.normalized; + + if(PlayerStatusManager.Instance != null) + { + info.amount *= PlayerStatusManager.Instance.CurrentAttackMultiplier; + } damageble.TakeDamage(info); - // ※元のコードのログ出力の記述バグ($の付け忘れ)を修正しました Debug.Log($"パンチ成功 ダメージ: {info.amount:F1}"); // 通常ヒットの振動を発生 @@ -126,14 +127,11 @@ public class VRInputPunch : MonoBehaviour } else { - // ※元のコードのログ出力の記述バグ($の付け忘れ)を修正しました Debug.Log($"スピードが足りません。必要: {minPunchSpeed} / 現在: {speed:F2}"); } } - /// /// 引数に応じて指定された強さと長さでコントローラーを振動させる - /// private void TriggerHaptics(float amplitude, float duration) { UnityEngine.XR.InputDevice device = InputDevices.GetDeviceAtXRNode(controllerNode); diff --git a/Assets/Scripts/VRUIDoorFaceFollow.cs b/Assets/Scripts/VRUIDoorFaceFollow.cs new file mode 100644 index 0000000..7f21cc0 --- /dev/null +++ b/Assets/Scripts/VRUIDoorFaceFollow.cs @@ -0,0 +1,79 @@ +using UnityEngine; + +// World Space Canvas をプレイヤーの真正面に移動させ、開いている間はプレイヤーの視点に滑らかに追従させるスクリプト +public class VRUIDoorFaceFollow : MonoBehaviour +{ + [SerializeField] private Transform vrCameraTransform; + + [Header("配置・追従のパラメータ")] + [SerializeField] private float forwardDistance = 0.5f; + [SerializeField] private float heightOffset = -0.1f; + [SerializeField] private float followSpeed = 5.0f; + + // 画面がアクティブ(表示)になった瞬間を検知するためのフラグ + private bool wasActiveLastFrame = false; + + private void Start() + { + // カメラが未設定の場合は、シーン内からメインカメラを自動取得 + if (vrCameraTransform == null && Camera.main != null) + { + vrCameraTransform = Camera.main.transform; + } + } + + // 全体の時間が止まっている(Time.timeScale = 0)間でも動作させるため、カメラ移動の後に実行される LateUpdate を使用します + private void LateUpdate() + { + if (vrCameraTransform == null) return; + + // このオブジェクト(UI画面)が有効化された「最初のフレーム」の処理 + if (!wasActiveLastFrame) + { + // 開いた瞬間は、プレイヤーの今の向きの「完全な正面」に瞬間移動させる(遅れてついてくるのを防ぐため) + SetInitialPosition(); + wasActiveLastFrame = true; + return; + } + + // 毎フレームの滑らかな追従処理 + SmoothFollowPlayer(); + } + + private void OnDisable() + { + // 画面が閉じられたらフラグをリセットする + wasActiveLastFrame = false; + } + + /// 画面が開いた瞬間に、プレイヤーの正面の正しい位置・向きに強制配置する + private void SetInitialPosition() + { + // カメラの位置から、カメラが向いている正面方向に一定距離進んだ座標を計算 + Vector3 targetPosition = vrCameraTransform.position + (vrCameraTransform.forward * forwardDistance); + targetPosition.y += heightOffset; // 高さを微調整 + + transform.position = targetPosition; + + // 画面の向きをプレイヤー(カメラ)の方向に向ける(背を向けないようにする) + // UIパネルがプレイヤー側を正面にするよう、LookAtの後に180度回転させて裏返りを防ぎます + transform.LookAt(vrCameraTransform.position); + transform.Rotate(0, 180, 0); + } + + /// プレイヤーが首を動かしたり移動したりした際、画面を滑らかについてこさせる + private void SmoothFollowPlayer() + { + // 目的地(目標座標)の計算 + Vector3 targetPosition = vrCameraTransform.position + (vrCameraTransform.forward * forwardDistance); + targetPosition.y += heightOffset; + + // Time.timeScale = 0 でも動かすため、Time.unscaledDeltaTime を使用 + // 現在位置から目標位置まで滑らかに補間移動(Lerp)させる + transform.position = Vector3.Lerp(transform.position, targetPosition, Time.unscaledDeltaTime * followSpeed); + + // 向きも滑らかに補間(Slerp)してプレイヤーの方を向かせ続ける + Quaternion targetRotation = Quaternion.LookRotation(transform.position - vrCameraTransform.position); + transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.unscaledDeltaTime * followSpeed); + } +} \ No newline at end of file diff --git a/Assets/Scripts/VRUIDoorFaceFollow.cs.meta b/Assets/Scripts/VRUIDoorFaceFollow.cs.meta new file mode 100644 index 0000000..dfaed7a --- /dev/null +++ b/Assets/Scripts/VRUIDoorFaceFollow.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 97e7b0ef50eb0934e84c6f6f7c3ed536 \ No newline at end of file diff --git a/Assets/XR/Settings/OpenXRPackageSettings.asset b/Assets/XR/Settings/OpenXRPackageSettings.asset index 312c3cc..7154d7e 100644 --- a/Assets/XR/Settings/OpenXRPackageSettings.asset +++ b/Assets/XR/Settings/OpenXRPackageSettings.asset @@ -1179,8 +1179,8 @@ MonoBehaviour: features: - {fileID: 7011443450567333355} - {fileID: -671281728444007487} - - {fileID: -901939997048047619} - - {fileID: -1734471456787174204} + - {fileID: 6956056911768161135} + - {fileID: -6387251413244805544} - {fileID: 8980318060753866109} - {fileID: -6559185765804338520} - {fileID: -4756202077021157709} @@ -1191,7 +1191,7 @@ MonoBehaviour: - {fileID: 348827886137839178} - {fileID: -7499073031166464939} - {fileID: 7666556398442971420} - - {fileID: -7343570946846779558} + - {fileID: -142859899272520151} - {fileID: 3985858319333531581} - {fileID: -6511185071715886993} - {fileID: -4363231183632145407}