2026-04-22 계산대 프로토 타입

This commit is contained in:
2026-04-22 16:51:55 +09:00
parent 243284569c
commit 5321610b02
12 changed files with 90 additions and 22 deletions

View File

@@ -1,51 +0,0 @@
using System.Collections.Generic;
using UnityEngine;
using VRShopping.Interact;
using VRShopping.Items;
public class BarcodeScaner : MonoBehaviour
{
//스캔 영역 콜라이더
[SerializeField] private Collider _scanAreaCollider;
//스캔 이펙트
[SerializeField] private ParticleSystem _scanVisualEffect;
//스캔 사운드
[SerializeField] private AudioSource _scanSoundEffect;
//체크아웃 정보 저장 객체
[SerializeField] private CheckoutMachine _checkoutMachine;
private readonly Collider[] _overlapBuffer = new Collider[32];
private readonly HashSet<ItemInstance> _scannedBuffer = new();
// 스캔영역 콜라이더 안에 들어온 아이템들을 스캔함
public void ScanArea()
{
if (_scanAreaCollider == null) return;
var bounds = _scanAreaCollider.bounds;
var count = Physics.OverlapBoxNonAlloc(bounds.center, bounds.extents, _overlapBuffer, Quaternion.identity);
_scannedBuffer.Clear();
for (int i = 0; i < count; i++)
{
var item = _overlapBuffer[i].GetComponentInParent<ItemInstance>();
if (item != null && _scannedBuffer.Add(item)) ScanProduction(item);
}
}
//ItemInstance의 상품 정보를 스캔
public void ScanProduction(ItemInstance itemIns)
{
//AddCheckoutSum으로 총 계산금액에 더함
_checkoutMachine.AddCheckoutSum(itemIns.ItemDataInfo.FinalPrice);
if (_scanVisualEffect != null) _scanVisualEffect.Play();
if (_scanSoundEffect != null) _scanSoundEffect.Play();
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 6c30ee7298d2ab547b0fbfeb348c65f4

View File

@@ -1,16 +0,0 @@
using UnityEngine;
namespace VRShopping.Interact
{
public class CheckoutMachine : MonoBehaviour
{
private int _checkoutSum;
public int CheckoutSum => _checkoutSum;
public void AddCheckoutSum(int price)
{
_checkoutSum += price;
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 7318fd9a38f8e3248993385f7b3f845a