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

@@ -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;