diff --git a/Assets/Scenes/GameScene.unity b/Assets/Scenes/GameScene.unity
index c5807a6..3a2a937 100644
--- a/Assets/Scenes/GameScene.unity
+++ b/Assets/Scenes/GameScene.unity
@@ -714,6 +714,41 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1030988148, guid: abc00000000017736442377687292243, type: 3}
m_PrefabInstance: {fileID: 130511407}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &152444559
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 152444560}
+ m_Layer: 5
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &152444560
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 152444559}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2095961660}
+ 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!1001 &159187668
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2200,6 +2235,75 @@ Transform:
m_Children: []
m_Father: {fileID: 844457501}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &280381709
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 280381711}
+ - component: {fileID: 280381710}
+ - component: {fileID: 280381712}
+ m_Layer: 0
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &280381710
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 280381709}
+ 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 &280381711
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 280381709}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1490221423}
+ - {fileID: 2095961660}
+ - {fileID: 2071460366}
+ - {fileID: 1201555537}
+ - {fileID: 629154676}
+ - {fileID: 797096992}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &280381712
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 280381709}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 945a90d6fc5ecb048849ec7b83634441, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::CodingPazzleManager
+ socketA: {fileID: 1201555538}
+ socketB: {fileID: 629154677}
--- !u!1 &290251385
GameObject:
m_ObjectHideFlags: 0
@@ -14142,6 +14246,41 @@ MeshRenderer:
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &622798398
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 622798399}
+ m_Layer: 5
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &622798399
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 622798398}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2071460366}
+ 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!1 &629154675
GameObject:
m_ObjectHideFlags: 0
@@ -14166,16 +14305,16 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 629154675}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ 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_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 797096992}
+ m_Father: {fileID: 280381711}
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_AnchoredPosition: {x: -0.2, y: 0.3}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &629154677
@@ -15944,22 +16083,17 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 797096988}
- m_LocalRotation: {x: -0, y: -0.351433, z: -0, w: -0.9362131}
- m_LocalPosition: {x: 0, y: 0, z: -3.0962732}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2106260778}
- - {fileID: 1490221423}
- - {fileID: 2095961660}
- - {fileID: 2071460366}
- - {fileID: 1201555537}
- - {fileID: 629154676}
- m_Father: {fileID: 1738935193}
+ m_Father: {fileID: 280381711}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: -32464.803, y: 26081.35}
+ m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1920, y: 1080}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &797729773
@@ -642778,16 +642912,16 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1201555536}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ 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_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 797096992}
+ m_Father: {fileID: 280381711}
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_AnchoredPosition: {x: 0.2, y: 0.3}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1201555538
@@ -646755,16 +646889,17 @@ RectTransform:
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_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 797096992}
+ m_Children:
+ - {fileID: 1868875706}
+ m_Father: {fileID: 280381711}
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_AnchoredPosition: {x: -0.5, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1490221424
@@ -646841,7 +646976,7 @@ MonoBehaviour:
m_StartingInteractionStrengthFilters: []
m_AutoFindParentInteractableInHierarchy: 0
m_ParentInteractableObject: {fileID: 0}
- m_AttachTransform: {fileID: 0}
+ m_AttachTransform: {fileID: 1868875706}
m_SecondaryAttachTransform: {fileID: 0}
m_UseDynamicAttach: 0
m_MatchAttachPosition: 1
@@ -646849,7 +646984,7 @@ MonoBehaviour:
m_SnapToColliderVolume: 1
m_ReinitializeDynamicAttachEverySingleGrab: 1
m_AttachEaseInTime: 0.15
- m_MovementType: 1
+ m_MovementType: 2
m_PredictedVisualsTransform: {fileID: 0}
m_VelocityDamping: 1
m_VelocityScale: 1
@@ -649849,55 +649984,6 @@ 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
@@ -651764,6 +651850,41 @@ MeshRenderer:
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1868875705
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1868875706}
+ m_Layer: 5
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1868875706
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1868875705}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1490221423}
+ 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!1 &1872167818
GameObject:
m_ObjectHideFlags: 0
@@ -654513,16 +654634,17 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2071460365}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ 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_LocalScale: {x: 0.3, y: 0.3, z: 0.3}
m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 797096992}
+ m_Children:
+ - {fileID: 622798399}
+ m_Father: {fileID: 280381711}
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_AnchoredPosition: {x: 0.5, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2071460367
@@ -654599,7 +654721,7 @@ MonoBehaviour:
m_StartingInteractionStrengthFilters: []
m_AutoFindParentInteractableInHierarchy: 0
m_ParentInteractableObject: {fileID: 0}
- m_AttachTransform: {fileID: 0}
+ m_AttachTransform: {fileID: 622798399}
m_SecondaryAttachTransform: {fileID: 0}
m_UseDynamicAttach: 0
m_MatchAttachPosition: 1
@@ -654607,7 +654729,7 @@ MonoBehaviour:
m_SnapToColliderVolume: 1
m_ReinitializeDynamicAttachEverySingleGrab: 1
m_AttachEaseInTime: 0.15
- m_MovementType: 1
+ m_MovementType: 2
m_PredictedVisualsTransform: {fileID: 0}
m_VelocityDamping: 1
m_VelocityScale: 1
@@ -654787,12 +654909,13 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2095961659}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ 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_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 797096992}
+ m_Children:
+ - {fileID: 152444560}
+ m_Father: {fileID: 280381711}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -654873,7 +654996,7 @@ MonoBehaviour:
m_StartingInteractionStrengthFilters: []
m_AutoFindParentInteractableInHierarchy: 0
m_ParentInteractableObject: {fileID: 0}
- m_AttachTransform: {fileID: 0}
+ m_AttachTransform: {fileID: 152444560}
m_SecondaryAttachTransform: {fileID: 0}
m_UseDynamicAttach: 0
m_MatchAttachPosition: 1
@@ -654881,7 +655004,7 @@ MonoBehaviour:
m_SnapToColliderVolume: 1
m_ReinitializeDynamicAttachEverySingleGrab: 1
m_AttachEaseInTime: 0.15
- m_MovementType: 1
+ m_MovementType: 2
m_PredictedVisualsTransform: {fileID: 0}
m_VelocityDamping: 1
m_VelocityScale: 1
@@ -656017,5 +656140,5 @@ SceneRoots:
- {fileID: 755171638}
- {fileID: 1924402715}
- {fileID: 1455781481}
- - {fileID: 1738935193}
- {fileID: 858106771}
+ - {fileID: 280381711}
diff --git a/Assets/Scripts/CodingPazzleManager.cs b/Assets/Scripts/CodingPazzleManager.cs
new file mode 100644
index 0000000..b01a98c
--- /dev/null
+++ b/Assets/Scripts/CodingPazzleManager.cs
@@ -0,0 +1,109 @@
+using UnityEngine;
+using UnityEngine.XR.Interaction.Toolkit;
+using UnityEngine.XR.Interaction.Toolkit.Interactors;
+
+///
+/// 3D空間上の2つのソケットスロットにバフモジュールがハメ込まれたかを監視し、
+/// 連結完了時にバフを発動させるパズル管理クラス
+///
+
+public class CodingPuzzleManager : MonoBehaviour
+{
+ [Header("ソケットスロットの設定")]
+ [Tooltip("台座に配置した Slot_A の XRSocketInteractor を指定してください")]
+ [SerializeField] private XRSocketInteractor socketA;
+ [Tooltip("台座に配置した Slot_B の XRSocketInteractor を指定してください")]
+ [SerializeField] private XRSocketInteractor socketB;
+
+ private void OnEnable()
+ {
+ // ソケットにオブジェクトが「ハメ込まれた瞬間」のイベントを登録
+ if (socketA != null) socketA.selectEntered.AddListener(OnSocketAEntered);
+ if (socketB != null) socketB.selectEntered.AddListener(OnSocketBEntered);
+ }
+
+ private void OnDisable()
+ {
+ // イベントの登録解除
+ if (socketA != null) socketA.selectEntered.RemoveListener(OnSocketAEntered);
+ if (socketB != null) socketB.selectEntered.RemoveListener(OnSocketBEntered);
+ }
+
+ // Slot_A に何かがハメ込まれた時のコールバック
+ private void OnSocketAEntered(SelectEnterEventArgs args)
+ {
+ CheckPuzzleCompletion();
+ }
+
+ // Slot_B に何かがハメ込まれた時のコールバック
+ private void OnSocketBEntered(SelectEnterEventArgs args)
+ {
+ CheckPuzzleCompletion();
+ }
+
+ ///
+ /// 両方のスロットが埋まっているかチェックし、埋まっていれば連結バフを発動する
+ ///
+ private void CheckPuzzleCompletion()
+ {
+ if (socketA == null || socketB == null) return;
+
+ // 両方のソケットがオブジェクトを保持(hasSelection)しているか確認
+ if (socketA.hasSelection && socketB.hasSelection)
+ {
+ // ハメ込まれているオブジェクト(Interactable)を取得
+ var objA = socketA.firstInteractableSelected;
+ var objB = socketB.firstInteractableSelected;
+
+ if (objA != null && objB != null)
+ {
+ // オブジェクトの名前から、どのバフ四角形かを判別する文字列を抽出
+ string buff1 = GetBuffNameFromObjectName(objA.transform.gameObject.name);
+ string buff2 = GetBuffNameFromObjectName(objB.transform.gameObject.name);
+
+ Debug.Log($"💻 パズル連結完了! 検出されたコンボ: [{buff1}] + [{buff2}]");
+
+ // ★ソケットにハマっているオブジェクトを強制的に解放・リセット
+ // (これをしないと、次回Codingモードを開いた時にスロットが埋まったままになります)
+ ClearSockets();
+
+ // PlayerStatusManagerにバフを適用させ、時間停止を解除してプレイ画面に戻る
+ if (PlayerStatusManager.Instance != null)
+ {
+ PlayerStatusManager.Instance.ApplyBuffsAndResume(buff1, buff2);
+ }
+ }
+ }
+ }
+
+ ///
+ /// オブジェクト名に含まれるキーワードから、ステータスマネージャーに渡す用の正確なバフ名を返すヘルパー
+ ///
+ private string GetBuffNameFromObjectName(string objName)
+ {
+ if (objName.Contains("AttackUp")) return "AttackUp";
+ if (objName.Contains("DefenseUp")) return "DefenseUp";
+ if (objName.Contains("Heal")) return "Heal";
+ return "Unknown";
+ }
+
+ ///
+ /// 次回起動時のために、ソケットの選択状態を内部的・物理的に安全にクリアする
+ ///
+ private void ClearSockets()
+ {
+ // 開発環境のSDKバージョンによって挙動が異なる場合があるため、
+ // ハハマっているモジュールを一度ソケットの子供から外し、初期位置付近に戻すか、
+ // あるいは単純に非アクティブ(または位置リセット)にする処理が推奨されます。
+ // ここでは安全のため、ハマっていたオブジェクトの座標を台座の手前に逃がします。
+
+ if (socketA.firstInteractableSelected != null)
+ {
+ socketA.firstInteractableSelected.transform.position = transform.position + (transform.forward * -0.2f);
+ }
+ if (socketB.firstInteractableSelected != null)
+ {
+ socketB.firstInteractableSelected.transform.position = transform.position + (transform.forward * -0.2f) + (transform.right * 0.1f);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/CodingPazzleManager.cs.meta b/Assets/Scripts/CodingPazzleManager.cs.meta
new file mode 100644
index 0000000..40eac62
--- /dev/null
+++ b/Assets/Scripts/CodingPazzleManager.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 945a90d6fc5ecb048849ec7b83634441
\ No newline at end of file
diff --git a/Assets/XR/Settings/OpenXRPackageSettings.asset b/Assets/XR/Settings/OpenXRPackageSettings.asset
index 7154d7e..312c3cc 100644
--- a/Assets/XR/Settings/OpenXRPackageSettings.asset
+++ b/Assets/XR/Settings/OpenXRPackageSettings.asset
@@ -1179,8 +1179,8 @@ MonoBehaviour:
features:
- {fileID: 7011443450567333355}
- {fileID: -671281728444007487}
- - {fileID: 6956056911768161135}
- - {fileID: -6387251413244805544}
+ - {fileID: -901939997048047619}
+ - {fileID: -1734471456787174204}
- {fileID: 8980318060753866109}
- {fileID: -6559185765804338520}
- {fileID: -4756202077021157709}
@@ -1191,7 +1191,7 @@ MonoBehaviour:
- {fileID: 348827886137839178}
- {fileID: -7499073031166464939}
- {fileID: 7666556398442971420}
- - {fileID: -142859899272520151}
+ - {fileID: -7343570946846779558}
- {fileID: 3985858319333531581}
- {fileID: -6511185071715886993}
- {fileID: -4363231183632145407}