2026-04-22 계산대 프로토 타입
This commit is contained in:
Binary file not shown.
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
8
Assets/02_Scripts/Shopping.meta
Normal file
8
Assets/02_Scripts/Shopping.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 41cd13da1f2c3254ba295b12e84e5f4b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -39,8 +39,7 @@ public void ScanArea()
|
|||||||
//ItemInstance의 상품 정보를 스캔
|
//ItemInstance의 상품 정보를 스캔
|
||||||
public void ScanProduction(ItemInstance itemIns)
|
public void ScanProduction(ItemInstance itemIns)
|
||||||
{
|
{
|
||||||
//AddCheckoutSum으로 총 계산금액에 더함
|
_checkoutMachine.AddCheckoutProduction(itemIns.ItemDataInfo);
|
||||||
_checkoutMachine.AddCheckoutSum(itemIns.ItemDataInfo.FinalPrice);
|
|
||||||
|
|
||||||
if (_scanVisualEffect != null) _scanVisualEffect.Play();
|
if (_scanVisualEffect != null) _scanVisualEffect.Play();
|
||||||
if (_scanSoundEffect != null) _scanSoundEffect.Play();
|
if (_scanSoundEffect != null) _scanSoundEffect.Play();
|
||||||
35
Assets/02_Scripts/Shopping/CheckoutMachine.cs
Normal file
35
Assets/02_Scripts/Shopping/CheckoutMachine.cs
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using VRShopping.Items;
|
||||||
|
using VRShopping.UI;
|
||||||
|
|
||||||
|
namespace VRShopping.Interact
|
||||||
|
{
|
||||||
|
public class CheckoutMachine : MonoBehaviour
|
||||||
|
{
|
||||||
|
public int CheckoutSum { get; private set; }
|
||||||
|
|
||||||
|
[SerializeField] private Transform _rowContainer;
|
||||||
|
[SerializeField] private CheckoutProductionRow _rowPrefab;
|
||||||
|
|
||||||
|
private readonly Dictionary<ItemData, CheckoutProductionRow> _rowByItem = new();
|
||||||
|
|
||||||
|
public void AddCheckoutProduction(ItemData itemData)
|
||||||
|
{
|
||||||
|
if (itemData == null) return;
|
||||||
|
|
||||||
|
if (_rowByItem.TryGetValue(itemData, out CheckoutProductionRow row))
|
||||||
|
{
|
||||||
|
row.Bind(itemData, row.Quantity + 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
row = Instantiate(_rowPrefab, _rowContainer);
|
||||||
|
row.Bind(itemData, 1);
|
||||||
|
_rowByItem[itemData] = row;
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckoutSum += itemData.FinalPrice;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
30
Assets/02_Scripts/UI/CheckoutProductionRow.cs
Normal file
30
Assets/02_Scripts/UI/CheckoutProductionRow.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
using TMPro;
|
||||||
|
using UnityEngine;
|
||||||
|
using VRShopping.Items;
|
||||||
|
|
||||||
|
namespace VRShopping.UI
|
||||||
|
{
|
||||||
|
public class CheckoutProductionRow : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private TMP_Text _nameText;
|
||||||
|
[SerializeField] private TMP_Text _quantityText;
|
||||||
|
[SerializeField] private TMP_Text _priceText;
|
||||||
|
|
||||||
|
public int Quantity { get; private set; }
|
||||||
|
|
||||||
|
public void Bind(ItemData item, int quantity)
|
||||||
|
{
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
gameObject.SetActive(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Quantity = quantity;
|
||||||
|
|
||||||
|
if (_nameText != null) _nameText.text = item.DisplayName;
|
||||||
|
if (_quantityText != null) _quantityText.text = $"x{quantity}";
|
||||||
|
if (_priceText != null) _priceText.text = (item.FinalPrice * quantity).ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/02_Scripts/UI/CheckoutProductionRow.cs.meta
Normal file
2
Assets/02_Scripts/UI/CheckoutProductionRow.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 92bbb02bca8248745bf81725ed4e0423
|
||||||
BIN
Assets/07_UI/Shopping/Prefabs/CheckoutItemRow.prefab
LFS
Normal file
BIN
Assets/07_UI/Shopping/Prefabs/CheckoutItemRow.prefab
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cbc51e3dcec83df4bbbae3a93c76db6d
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
Reference in New Issue
Block a user