2026-04-21 가격창, 사운드
This commit is contained in:
54
Assets/02_Scripts/Interact/ItemInfoOnGrab.cs
Normal file
54
Assets/02_Scripts/Interact/ItemInfoOnGrab.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using System.Runtime.InteropServices;
|
||||
using UnityEngine;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
using UnityEngine.XR.Interaction.Toolkit.Interactors;
|
||||
using VRShopping.Items;
|
||||
using VRShopping.UI;
|
||||
|
||||
namespace VRShopping.Interact
|
||||
{
|
||||
public class ItemInfoOnGrab : MonoBehaviour
|
||||
{
|
||||
private ItemData _data;
|
||||
|
||||
private Handedness _lastHand;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
ItemInstance itemIns = GetComponent<ItemInstance>();
|
||||
if(itemIns != null)
|
||||
{
|
||||
_data = itemIns.ItemDataInfo;
|
||||
}
|
||||
}
|
||||
|
||||
public void HandleSelectEntered(SelectEnterEventArgs args)
|
||||
{
|
||||
if (!TryGetHandedness(args.interactorObject, out var hand)) return;
|
||||
if (ItemInfoHud.Instance == null) return;
|
||||
|
||||
_lastHand = hand;
|
||||
ItemInfoHud.Instance.Show(hand, _data);
|
||||
}
|
||||
|
||||
public void HandleSelectExited(SelectExitEventArgs args)
|
||||
{
|
||||
if (ItemInfoHud.Instance == null) return;
|
||||
ItemInfoHud.Instance.Hide(_lastHand);
|
||||
}
|
||||
|
||||
private static bool TryGetHandedness(IXRInteractor interactor, out Handedness hand)
|
||||
{
|
||||
hand = Handedness.Left;
|
||||
if (interactor is XRBaseInputInteractor input)
|
||||
{
|
||||
switch (input.handedness)
|
||||
{
|
||||
case InteractorHandedness.Left: hand = Handedness.Left; return true;
|
||||
case InteractorHandedness.Right: hand = Handedness.Right; return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user