Compare commits
21 Commits
4573e14e67
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 066111702a | |||
| 12a8b744a9 | |||
| 9afd9057d7 | |||
| e38d2b6e59 | |||
| f4f0682897 | |||
| ba7a829d95 | |||
| fcdae4947e | |||
| 73aebe2d8c | |||
| b7bb3e5f1f | |||
| 38a965c68a | |||
| a35b7f8b17 | |||
| 23470d36a9 | |||
| 5e835c5473 | |||
| 723c2742a1 | |||
| 3676ac0b04 | |||
|
|
ce4bd1fade | ||
|
|
4d460cf6fc | ||
|
|
a988d8e164 | ||
|
|
3c14564269 | ||
|
|
f48c7380c6 | ||
|
|
0c9b6dd72e |
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@@ -67,5 +67,5 @@
|
||||
"*.sln": "*.csproj",
|
||||
"*.slnx": "*.csproj"
|
||||
},
|
||||
"dotnet.defaultSolution": "Shpping_UnityVR.slnx"
|
||||
"dotnet.defaultSolution": "Shopping_UnityVR.slnx"
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,28 +1,43 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace VRShopping.Player
|
||||
{
|
||||
public class PlayerWallet : MonoBehaviour
|
||||
{
|
||||
//예산
|
||||
[Min(0)] public int Budget;
|
||||
// 예산 (Inspector에서 초기값 설정)
|
||||
[SerializeField, Min(0), FormerlySerializedAs("Budget")]
|
||||
private int _budget;
|
||||
|
||||
// UI 갱신용 이벤트
|
||||
public event Action<int> OnBudgetChanged;
|
||||
|
||||
public int Budget => _budget;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
OnBudgetChanged?.Invoke(_budget);
|
||||
}
|
||||
|
||||
public bool PayMoney(int cost)
|
||||
{
|
||||
bool successFlag;
|
||||
|
||||
//예산이 비용보다 많을시
|
||||
if(Budget >= cost)
|
||||
if (_budget >= cost)
|
||||
{
|
||||
Budget -= cost;
|
||||
successFlag = true;
|
||||
}
|
||||
else //예산 부족
|
||||
{
|
||||
successFlag = false;
|
||||
_budget -= cost;
|
||||
OnBudgetChanged?.Invoke(_budget);
|
||||
return true;
|
||||
}
|
||||
//예산 부족
|
||||
return false;
|
||||
}
|
||||
|
||||
return successFlag;
|
||||
// 미션 생성 시점에 예산 덮어쓰기
|
||||
public void SetBudget(int budget)
|
||||
{
|
||||
_budget = Mathf.Max(0, budget);
|
||||
OnBudgetChanged?.Invoke(_budget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,5 +11,13 @@ public class ShoppingOrderEntry
|
||||
|
||||
public ProductGroup ProductGroup => _productGroup;
|
||||
public int RequiredQuantity => _requiredQuantity;
|
||||
|
||||
public ShoppingOrderEntry() { }
|
||||
|
||||
public ShoppingOrderEntry(ProductGroup productGroup, int requiredQuantity)
|
||||
{
|
||||
_productGroup = productGroup;
|
||||
_requiredQuantity = requiredQuantity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,5 +10,12 @@ public class ShoppingOrderList : ScriptableObject
|
||||
|
||||
public IReadOnlyList<ShoppingOrderEntry> Entries => _entries;
|
||||
public int Count => _entries.Count;
|
||||
|
||||
// 런타임 생성용 (MissionGenerator 등에서 사용)
|
||||
public void SetEntries(IEnumerable<ShoppingOrderEntry> entries)
|
||||
{
|
||||
_entries.Clear();
|
||||
_entries.AddRange(entries);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using UnityEngine;
|
||||
|
||||
public interface ITransScenePossible
|
||||
public interface ISceneInitializable
|
||||
{
|
||||
public void OnSceneLoaded();
|
||||
}
|
||||
@@ -48,7 +48,9 @@ public enum ItemCategory
|
||||
Household,
|
||||
Tea,
|
||||
Pet,
|
||||
Frozen
|
||||
Frozen,
|
||||
Sauce,
|
||||
Instant
|
||||
|
||||
}
|
||||
|
||||
@@ -95,7 +97,21 @@ public enum ProductGroup
|
||||
Orange,
|
||||
Apple,
|
||||
Banana,
|
||||
Paprika
|
||||
Paprika,
|
||||
Potato,
|
||||
Cabbage,
|
||||
Broccoli,
|
||||
Aubergine,
|
||||
Tomato,
|
||||
Cucumber,
|
||||
Onion,
|
||||
Bacon,
|
||||
Cookie,
|
||||
Cereal,
|
||||
GreenTea,
|
||||
Ketchup,
|
||||
Mustard,
|
||||
Soup
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
71
Assets/02_Scripts/Item/ProductGroupExtensions.cs
Normal file
71
Assets/02_Scripts/Item/ProductGroupExtensions.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
namespace VRShopping.Items
|
||||
{
|
||||
// ProductGroup의 사용자 표시용 한글 라벨.
|
||||
// UI 표시(쇼핑 목록, 부족 항목 등)에는 ToKorean()을 사용.
|
||||
public static class ProductGroupExtensions
|
||||
{
|
||||
public static string ToKorean(this ProductGroup group)
|
||||
{
|
||||
return group switch
|
||||
{
|
||||
ProductGroup.None => "없음",
|
||||
ProductGroup.ChocoBar => "초코바",
|
||||
ProductGroup.PotatoChip => "감자칩",
|
||||
ProductGroup.GreenBeans => "그린빈",
|
||||
ProductGroup.CheeseChip => "치즈칩",
|
||||
ProductGroup.Rice => "쌀",
|
||||
ProductGroup.Pasta => "파스타",
|
||||
ProductGroup.Butter => "버터",
|
||||
ProductGroup.Cheese => "치즈",
|
||||
ProductGroup.Milk => "우유",
|
||||
ProductGroup.Diaper => "기저귀",
|
||||
ProductGroup.GrainMixTea => "곡물차",
|
||||
ProductGroup.Shampoo => "샴푸",
|
||||
ProductGroup.Conditioner => "린스",
|
||||
ProductGroup.HairSpray => "헤어스프레이",
|
||||
ProductGroup.ShaveFoam => "면도크림",
|
||||
ProductGroup.SunCream => "선크림",
|
||||
ProductGroup.Lotion => "로션",
|
||||
ProductGroup.Gum => "껌",
|
||||
ProductGroup.WetWipes => "물티슈",
|
||||
ProductGroup.Toothpaste => "치약",
|
||||
ProductGroup.DogFood => "강아지 사료",
|
||||
ProductGroup.JAM => "잼",
|
||||
ProductGroup.Juice => "주스",
|
||||
ProductGroup.LaundryDetergent => "세탁 세제",
|
||||
ProductGroup.ClothesConditioner => "섬유유연제",
|
||||
ProductGroup.Coffee => "커피",
|
||||
ProductGroup.Cleaner => "세정제",
|
||||
ProductGroup.Candy => "사탕",
|
||||
ProductGroup.Jelly => "젤리",
|
||||
ProductGroup.Soda => "탄산음료",
|
||||
ProductGroup.Yogurt => "요거트",
|
||||
ProductGroup.Water => "생수",
|
||||
ProductGroup.SoftFlour => "박력분",
|
||||
ProductGroup.StrongFlour => "강력분",
|
||||
ProductGroup.MediumFlour => "중력분",
|
||||
ProductGroup.Icecream => "아이스크림",
|
||||
ProductGroup.Watermelon => "수박",
|
||||
ProductGroup.Orange => "오렌지",
|
||||
ProductGroup.Apple => "사과",
|
||||
ProductGroup.Banana => "바나나",
|
||||
ProductGroup.Paprika => "파프리카",
|
||||
ProductGroup.Potato => "감자",
|
||||
ProductGroup.Cabbage => "양배추",
|
||||
ProductGroup.Broccoli => "브로콜리",
|
||||
ProductGroup.Aubergine => "가지",
|
||||
ProductGroup.Tomato => "토마토",
|
||||
ProductGroup.Cucumber => "오이",
|
||||
ProductGroup.Onion => "양파",
|
||||
ProductGroup.Bacon => "베이컨",
|
||||
ProductGroup.Cookie => "쿠키",
|
||||
ProductGroup.Cereal => "시리얼",
|
||||
ProductGroup.GreenTea => "녹차",
|
||||
ProductGroup.Ketchup => "케첩",
|
||||
ProductGroup.Mustard => "머스타드",
|
||||
ProductGroup.Soup => "수프",
|
||||
_ => group.ToString()
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/02_Scripts/Item/ProductGroupExtensions.cs.meta
Normal file
2
Assets/02_Scripts/Item/ProductGroupExtensions.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 771a141a621a0c74e9be8b2129869324
|
||||
@@ -4,7 +4,7 @@
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class GameManager : MonoBehaviour,ITransScenePossible
|
||||
public class GameManager : MonoBehaviour,ISceneInitializable
|
||||
{
|
||||
public static GameManager Instance;
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
public class SceneLoadManager : MonoBehaviour
|
||||
@@ -18,7 +17,6 @@ public class SceneLoadManager : MonoBehaviour
|
||||
// 정상(밝음) 상태에서의 스카이박스 _Exposure 값. 페이드 인의 도착 지점.
|
||||
[SerializeField, Min(0f)] private float _skyboxNormalExposure = 1f;
|
||||
|
||||
// 공유 에셋이 더러워지지 않도록 런타임 인스턴스로 복제해 사용
|
||||
private Material _runtimeStartSkybox;
|
||||
private Material _runtimeLoadingSkybox;
|
||||
|
||||
@@ -47,7 +45,6 @@ private void Awake()
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
// 런타임 복제 인스턴스는 직접 정리
|
||||
if (_runtimeStartSkybox != null) Destroy(_runtimeStartSkybox);
|
||||
if (_runtimeLoadingSkybox != null) Destroy(_runtimeLoadingSkybox);
|
||||
}
|
||||
@@ -69,17 +66,16 @@ private void Update()
|
||||
//씬이 로드되었을때 호출
|
||||
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
||||
{
|
||||
Debug.Log("씬 로드됨");
|
||||
|
||||
if(scene.name == "GameScene")
|
||||
{
|
||||
MonoBehaviour[] allObjs = UnityEngine.Object.FindObjectsByType<MonoBehaviour>(FindObjectsSortMode.None);
|
||||
|
||||
foreach (var obj in allObjs)
|
||||
{
|
||||
if (obj is ITransScenePossible itsp)
|
||||
if (obj is ISceneInitializable initializable)
|
||||
{
|
||||
itsp.OnSceneLoaded();
|
||||
//씬에서 ISceneInitializable 인터페이스를 가진 오브젝트의 초기화 로직을 실행
|
||||
initializable.OnSceneLoaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -104,7 +100,6 @@ public async Awaitable FadeLoadingCanvas(bool isOut,float fadeTime)
|
||||
}
|
||||
|
||||
// 현재 RenderSettings.skybox의 _Exposure를 from→to로 보간
|
||||
// Skybox/Procedural, /Cubemap, /Panoramic 셰이더 공통 프로퍼티
|
||||
private async Awaitable FadeSkybox(float from, float to, float duration)
|
||||
{
|
||||
var sky = RenderSettings.skybox;
|
||||
@@ -165,17 +160,19 @@ private async Awaitable SceneChange(string sceneName)
|
||||
{
|
||||
try
|
||||
{
|
||||
//로딩바 수치 0으로 설정
|
||||
SetSceneLoadingProgressValue(0f);
|
||||
|
||||
//스카이 박스 페이드 아웃 로직
|
||||
//스카이 박스 페이드 아웃
|
||||
await FadeSkybox(_skyboxNormalExposure, 0f, _skyboxFadeTime);
|
||||
|
||||
// 검게 된 상태에서 머티리얼 교체 (교체 순간이 가려져 깜빡임 없음)
|
||||
RenderSettings.skybox = _runtimeLoadingSkybox;
|
||||
|
||||
//스카이 박스 페이드 인 로직
|
||||
//스카이 박스 페이드 인
|
||||
await FadeSkybox(0f, _skyboxNormalExposure, _skyboxFadeTime);
|
||||
|
||||
//로딩창을 1초에 걸쳐 나타나게함
|
||||
await SetSceneLoadingActive(true,1f);
|
||||
|
||||
AsyncOperation op = SceneManager.LoadSceneAsync(sceneName);
|
||||
@@ -186,7 +183,7 @@ private async Awaitable SceneChange(string sceneName)
|
||||
//화면에 보여줄 로딩 수치
|
||||
float displayProgress = 0f;
|
||||
|
||||
//op.progress 0.9가 데이터 로딩이 끝난 기준 allowSceneActivation이 트루면 바로 다음으로 넘어가면서 op.isDone이 true가 된다.
|
||||
//op.progress 0.9가 데이터 로딩이 끝난 기준 allowSceneActivation이 트루면 다음으로 넘어가면서 op.isDone이 true가 된다.
|
||||
while (op.progress < 0.9f)
|
||||
{
|
||||
//실제 로딩 수치
|
||||
@@ -195,26 +192,28 @@ private async Awaitable SceneChange(string sceneName)
|
||||
//보여줄 값을 실제값을 향해 부드럽게 이동
|
||||
displayProgress = Mathf.MoveTowards(displayProgress, realProgress, Time.deltaTime * 0.5f);
|
||||
|
||||
// UI에 적용
|
||||
// 로딩바 UI에 값 적용
|
||||
SetSceneLoadingProgressValue(displayProgress);
|
||||
|
||||
await Awaitable.NextFrameAsync(this.destroyCancellationToken); //자기자신이 파괴될때 토큰에 취소요청을 보냄
|
||||
//자기자신이 파괴될때 토큰에 취소요청을 보냄
|
||||
await Awaitable.NextFrameAsync(this.destroyCancellationToken);
|
||||
}
|
||||
|
||||
//로딩바 수치 1(100%)로 설정 (데이터 로딩은 이미 끝이기 때문에)
|
||||
SetSceneLoadingProgressValue(1);
|
||||
|
||||
// 잠시 대기했다가 전환
|
||||
await Awaitable.WaitForSecondsAsync(1.0f, this.destroyCancellationToken);
|
||||
|
||||
// 로딩바가 1초에 걸쳐 사라짐
|
||||
await SetSceneLoadingActive(false,1f);
|
||||
|
||||
//스카이 박스 페이드 아웃
|
||||
await FadeSkybox(_skyboxNormalExposure, 0f, _skyboxFadeTime);
|
||||
|
||||
// 검게 된 상태에서 정상 스카이박스로 교체
|
||||
RenderSettings.skybox = _runtimeStartSkybox;
|
||||
|
||||
//로딩 끝
|
||||
// 다음씬으로 넘어가도 됨을 알림
|
||||
op.allowSceneActivation = true;
|
||||
|
||||
// 씬 활성화가 완전히 끝날 때까지 대기
|
||||
@@ -227,12 +226,8 @@ private async Awaitable SceneChange(string sceneName)
|
||||
//VR용 로직
|
||||
//트래킹이 중단되면 안되기 때문에 카메라를 유지해야 한다
|
||||
_loadingCamTargetTransform = Camera.main.transform; // 새로운 씬의 메인카메라를 따라가게끔 설정
|
||||
//-------------------------------------------------------------------------------
|
||||
|
||||
//스카이 박스 페이드 인
|
||||
await FadeSkybox(0f, _skyboxNormalExposure, _skyboxFadeTime);
|
||||
|
||||
Debug.Log("씬 전환됨");
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
using VRShopping.Shopping;
|
||||
using VRShopping.UI;
|
||||
|
||||
public class PlayerController : MonoBehaviour,ITransScenePossible
|
||||
public class PlayerController : MonoBehaviour,ISceneInitializable
|
||||
{
|
||||
private Animator _anim;
|
||||
|
||||
@@ -58,7 +58,7 @@ public void Checkout(CheckoutMachine checkoutMachine)
|
||||
else
|
||||
{
|
||||
var parts = new List<string>(missing.Count);
|
||||
foreach (var (group, shortage) in missing) parts.Add($"{group} x{shortage}");
|
||||
foreach (var (group, shortage) in missing) parts.Add($"{group.ToKorean()} x{shortage}");
|
||||
GameManager.Instance.GameSceneUI.ShowMissingPanel(parts);
|
||||
}
|
||||
}
|
||||
|
||||
123
Assets/02_Scripts/Shopping/MissionGenerator.cs
Normal file
123
Assets/02_Scripts/Shopping/MissionGenerator.cs
Normal file
@@ -0,0 +1,123 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using VRShopping.Items;
|
||||
using VRShopping.Player;
|
||||
using VRShopping.UI;
|
||||
|
||||
namespace VRShopping.Shopping
|
||||
{
|
||||
// 씬 로드 시 현재 씬의 상품 재고를 스캔해서 랜덤 쇼핑 미션과 예산을 생성한다.
|
||||
// - 미션 항목 수: [_minMissionCount, _maxMissionCount] 범위에서 랜덤 (씬 보유 그룹 수로 자동 클램프)
|
||||
// - 항목당 수량: [1, _maxQuantityPerEntry] 범위에서 랜덤 (그룹별 재고 수로 자동 클램프)
|
||||
// - 예산: 그룹별 최저가 기준 최적 비용 × (1 + Random[_budgetMarginMin, _budgetMarginMax])
|
||||
public class MissionGenerator : MonoBehaviour, ISceneInitializable
|
||||
{
|
||||
[Header("Mission Size")]
|
||||
[SerializeField, Min(1)] private int _minMissionCount = 10;
|
||||
[SerializeField, Min(1)] private int _maxMissionCount = 15;
|
||||
|
||||
[Header("Quantity Per Entry")]
|
||||
[SerializeField, Min(1)] private int _maxQuantityPerEntry = 5;
|
||||
|
||||
[Header("Budget Margin (over optimal cost)")]
|
||||
[SerializeField, Range(0f, 1f)] private float _budgetMarginMin = 0.20f;
|
||||
[SerializeField, Range(0f, 1f)] private float _budgetMarginMax = 0.30f;
|
||||
|
||||
// 테스트용 — 여기에 추가된 ProductGroup은 미션 후보에서 자동 제외
|
||||
[Header("Excluded Groups (Test)")]
|
||||
[SerializeField] private List<ProductGroup> _excludedGroups = new List<ProductGroup>();
|
||||
|
||||
[Header("References")]
|
||||
[SerializeField] private ShoppingOrderView _orderView;
|
||||
[SerializeField] private PlayerWallet _wallet;
|
||||
|
||||
public void OnSceneLoaded()
|
||||
{
|
||||
Generate();
|
||||
}
|
||||
|
||||
public void Generate()
|
||||
{
|
||||
if (_orderView == null || _wallet == null)
|
||||
{
|
||||
Debug.LogWarning("[MissionGenerator] 참조 누락 (orderView/wallet)");
|
||||
return;
|
||||
}
|
||||
|
||||
// 1. 씬의 모든 상품을 ProductGroup별로 집계 (None, 제외 그룹, ItemData 누락은 제외)
|
||||
var stockByGroup = new Dictionary<ProductGroup, List<ItemData>>();
|
||||
var allItems = Object.FindObjectsByType<ItemInstance>(FindObjectsSortMode.None);
|
||||
foreach (var inst in allItems)
|
||||
{
|
||||
var data = inst.ItemDataInfo;
|
||||
if (data == null) continue;
|
||||
if (data.ProductGroup == ProductGroup.None) continue;
|
||||
if (_excludedGroups.Contains(data.ProductGroup)) continue;
|
||||
|
||||
if (!stockByGroup.TryGetValue(data.ProductGroup, out var list))
|
||||
{
|
||||
list = new List<ItemData>();
|
||||
stockByGroup[data.ProductGroup] = list;
|
||||
}
|
||||
list.Add(data);
|
||||
}
|
||||
|
||||
if (stockByGroup.Count == 0)
|
||||
{
|
||||
Debug.LogWarning("[MissionGenerator] 씬에 유효한 상품이 없습니다");
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 사용 가능한 그룹 풀에서 미션 개수만큼 무작위 선택
|
||||
var groupPool = new List<ProductGroup>(stockByGroup.Keys);
|
||||
Shuffle(groupPool);
|
||||
|
||||
int desiredCount = Random.Range(_minMissionCount, _maxMissionCount + 1);
|
||||
int missionCount = Mathf.Min(desiredCount, groupPool.Count);
|
||||
|
||||
// 3. 각 그룹별로 (재고로 클램프된) 수량 부여 + 최저가 기준 최적 비용 누적
|
||||
var entries = new List<ShoppingOrderEntry>(missionCount);
|
||||
int optimalCost = 0;
|
||||
|
||||
for (int i = 0; i < missionCount; i++)
|
||||
{
|
||||
var group = groupPool[i];
|
||||
var stock = stockByGroup[group];
|
||||
|
||||
int maxQty = Mathf.Min(_maxQuantityPerEntry, stock.Count);
|
||||
int qty = Random.Range(1, maxQty + 1);
|
||||
|
||||
int cheapestPrice = int.MaxValue;
|
||||
foreach (var data in stock)
|
||||
{
|
||||
if (data.FinalPrice < cheapestPrice) cheapestPrice = data.FinalPrice;
|
||||
}
|
||||
|
||||
entries.Add(new ShoppingOrderEntry(group, qty));
|
||||
optimalCost += cheapestPrice * qty;
|
||||
}
|
||||
|
||||
// 4. 런타임 ShoppingOrderList 생성 후 뷰에 주입
|
||||
var runtimeList = ScriptableObject.CreateInstance<ShoppingOrderList>();
|
||||
runtimeList.name = "ShoppingOrderList (Runtime)";
|
||||
runtimeList.SetEntries(entries);
|
||||
_orderView.SetOrderList(runtimeList);
|
||||
|
||||
// 5. 예산 책정 (최적 비용 + 20~30% 마진)
|
||||
float margin = Random.Range(_budgetMarginMin, _budgetMarginMax);
|
||||
int budget = Mathf.CeilToInt(optimalCost * (1f + margin));
|
||||
_wallet.SetBudget(budget);
|
||||
|
||||
Debug.Log($"[MissionGenerator] 미션 {missionCount}개 / 최적가 {optimalCost:N0} / 예산 {budget:N0} (+{margin * 100f:F0}%)");
|
||||
}
|
||||
|
||||
private static void Shuffle<T>(IList<T> list)
|
||||
{
|
||||
for (int i = list.Count - 1; i > 0; i--)
|
||||
{
|
||||
int j = Random.Range(0, i + 1);
|
||||
(list[i], list[j]) = (list[j], list[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/02_Scripts/Shopping/MissionGenerator.cs.meta
Normal file
2
Assets/02_Scripts/Shopping/MissionGenerator.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: beba3b48f8e8647409d75cef1950a419
|
||||
@@ -8,9 +8,16 @@ public class BGMHud : MonoBehaviour
|
||||
|
||||
private BGMBox currentBgm;
|
||||
[SerializeField] private BGMClip DefaultBgm;
|
||||
[SerializeField, Min(0f)] private float _defaultBgmStartDelay = 2f;
|
||||
|
||||
public void Start()
|
||||
public async void Start()
|
||||
{
|
||||
if (_defaultBgmStartDelay > 0f)
|
||||
await Awaitable.WaitForSecondsAsync(_defaultBgmStartDelay);
|
||||
|
||||
// 지연 도중에 이미 다른 곡이 재생되었으면 디폴트는 건너뜀
|
||||
if (currentBgm != null) return;
|
||||
|
||||
BGMBox[] BGMBoxs = GetComponentsInChildren<BGMBox>(true);
|
||||
|
||||
foreach (BGMBox bgm in BGMBoxs)
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
namespace VRShopping.UI
|
||||
{
|
||||
// 게임씬 첫 진입 시 자동으로 뜨는 다중 페이지 가이드 오버레이
|
||||
// ITransScenePossible 콜백으로 씬 로드 후 트리거됨
|
||||
public class GuidePanel : MonoBehaviour, ITransScenePossible
|
||||
// ISceneInitializable 콜백으로 씬 로드 후 트리거됨
|
||||
public class GuidePanel : MonoBehaviour, ISceneInitializable
|
||||
{
|
||||
[Header("Refs")]
|
||||
[SerializeField] private GameObject _root;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using VRShopping.Items;
|
||||
using VRShopping.Shopping;
|
||||
|
||||
namespace VRShopping.UI
|
||||
@@ -17,7 +18,7 @@ public void Bind(ShoppingOrderEntry entry)
|
||||
return;
|
||||
}
|
||||
|
||||
if (_nameText != null) _nameText.text = entry.ProductGroup.ToString();
|
||||
if (_nameText != null) _nameText.text = entry.ProductGroup.ToKorean();
|
||||
if (_quantityText != null) _quantityText.text = $"x{entry.RequiredQuantity}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,13 @@ private void Start()
|
||||
Rebuild();
|
||||
}
|
||||
|
||||
// 런타임에 미션 목록 교체 (MissionGenerator에서 호출)
|
||||
public void SetOrderList(ShoppingOrderList orderList)
|
||||
{
|
||||
_orderList = orderList;
|
||||
Rebuild();
|
||||
}
|
||||
|
||||
public void Rebuild()
|
||||
{
|
||||
if (_orderList == null || _rowPrefab == null || _rowContainer == null) return;
|
||||
|
||||
35
Assets/02_Scripts/UI/WalletHud.cs
Normal file
35
Assets/02_Scripts/UI/WalletHud.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using VRShopping.Player;
|
||||
|
||||
namespace VRShopping.UI
|
||||
{
|
||||
// 왼쪽 손목 허기 게이지 위에 부착되는 소지금 HUD.
|
||||
// PlayerWallet.OnBudgetChanged에 자동 구독.
|
||||
public class WalletHud : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private TMP_Text _text;
|
||||
[SerializeField] private PlayerWallet _bound;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_bound.OnBudgetChanged += HandleChanged;
|
||||
HandleChanged(_bound.Budget);
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (_bound != null)
|
||||
{
|
||||
_bound.OnBudgetChanged -= HandleChanged;
|
||||
_bound = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleChanged(int current)
|
||||
{
|
||||
if (_text != null)
|
||||
_text.text = $"₩ {current:N0}";
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/02_Scripts/UI/WalletHud.cs.meta
Normal file
2
Assets/02_Scripts/UI/WalletHud.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59629d355895f5d48b2a59479440912f
|
||||
BIN
Assets/03_Models/Stylized_Hands/Poses/Pose_GrabOnion.asset
LFS
Normal file
BIN
Assets/03_Models/Stylized_Hands/Poses/Pose_GrabOnion.asset
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 13ceb8dc68b87df408db94daa787c947
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/03_Models/Stylized_Hands/Poses/Pose_GrabPotato.asset
LFS
Normal file
BIN
Assets/03_Models/Stylized_Hands/Poses/Pose_GrabPotato.asset
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9dfcea7719241304fbc06e92ac3290eb
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/03_Models/Stylized_Hands/Poses/Pose_GrabTomato.asset
LFS
Normal file
BIN
Assets/03_Models/Stylized_Hands/Poses/Pose_GrabTomato.asset
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f1ba810d42d3c2743bc923cd2b6eb7aa
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/03_Models/_Characters/Base/Animations/Common@Idle.fbx
LFS
Normal file
BIN
Assets/03_Models/_Characters/Base/Animations/Common@Idle.fbx
LFS
Normal file
Binary file not shown.
1104
Assets/03_Models/_Characters/Base/Animations/Common@Idle.fbx.meta
Normal file
1104
Assets/03_Models/_Characters/Base/Animations/Common@Idle.fbx.meta
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Assets/03_Models/_Characters/Base/Animations/Common@QuickFormalBow.fbx
LFS
Normal file
BIN
Assets/03_Models/_Characters/Base/Animations/Common@QuickFormalBow.fbx
LFS
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
Assets/03_Models/_Characters/Base/Animations/Common_Idle.anim
LFS
Normal file
BIN
Assets/03_Models/_Characters/Base/Animations/Common_Idle.anim
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 42b880d482720e14e92bc64bd41ae0cf
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/03_Models/_Characters/Base/Animations/Common_Idle2.anim
LFS
Normal file
BIN
Assets/03_Models/_Characters/Base/Animations/Common_Idle2.anim
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fcb11914b2ac56a40a65c8513d24e716
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -112,7 +112,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 06705ab69ed3bb24299571066dd626b1, type: 2}
|
||||
m_Motion: {fileID: 7400000, guid: fcb11914b2ac56a40a65c8513d24e716, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
@@ -138,7 +138,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 06705ab69ed3bb24299571066dd626b1, type: 2}
|
||||
m_Motion: {fileID: 7400000, guid: fcb11914b2ac56a40a65c8513d24e716, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
|
||||
@@ -138,7 +138,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 06705ab69ed3bb24299571066dd626b1, type: 2}
|
||||
m_Motion: {fileID: 7400000, guid: 42b880d482720e14e92bc64bd41ae0cf, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
|
||||
@@ -86,7 +86,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 06705ab69ed3bb24299571066dd626b1, type: 2}
|
||||
m_Motion: {fileID: 7400000, guid: 42b880d482720e14e92bc64bd41ae0cf, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
|
||||
BIN
Assets/08_Data/Items/Bakery/Cookie.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Bakery/Cookie.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Bakery/Cookie.asset.meta
Normal file
8
Assets/08_Data/Items/Bakery/Cookie.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ec35a8c93bd182d4d9054a691ceb29b9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Bakery/Cookie2.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Bakery/Cookie2.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Bakery/Cookie2.asset.meta
Normal file
8
Assets/08_Data/Items/Bakery/Cookie2.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6b40b1daff3264e4890cbbd711418292
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Bakery/Cookie3.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Bakery/Cookie3.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Bakery/Cookie3.asset.meta
Normal file
8
Assets/08_Data/Items/Bakery/Cookie3.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f574c552c941a548a061257c0490973
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Bakery/PeanutButter.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Bakery/PeanutButter.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Bakery/PeanutButter.asset.meta
Normal file
8
Assets/08_Data/Items/Bakery/PeanutButter.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7d16b7775e47b12409d1679b743c0064
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Grain/Cereal.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Grain/Cereal.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Grain/Cereal.asset.meta
Normal file
8
Assets/08_Data/Items/Grain/Cereal.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c12ed0a2d3387843a79deac51241d53
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Grain/Cereal2.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Grain/Cereal2.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Grain/Cereal2.asset.meta
Normal file
8
Assets/08_Data/Items/Grain/Cereal2.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 51e44b3e44768b24a87762358cd09a3f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/08_Data/Items/Instant.meta
Normal file
8
Assets/08_Data/Items/Instant.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c5c2c19cea001dc428fc56fa2ccd8410
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Instant/Soup.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Instant/Soup.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Instant/Soup.asset.meta
Normal file
8
Assets/08_Data/Items/Instant/Soup.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f3aa6257ba0ab5c47beff3fb2b4a9d49
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/08_Data/Items/Meat.meta
Normal file
8
Assets/08_Data/Items/Meat.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e9903e9813bb3c54695e13fe8e0f30c3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Meat/Bacon.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Meat/Bacon.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Meat/Bacon.asset.meta
Normal file
8
Assets/08_Data/Items/Meat/Bacon.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 41c02a5a767cb7942b0f6817ff5583a1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Meat/Bacon2.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Meat/Bacon2.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Meat/Bacon2.asset.meta
Normal file
8
Assets/08_Data/Items/Meat/Bacon2.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b1e27a56417961b41a06c0427955701f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/08_Data/Items/Sauce.meta
Normal file
8
Assets/08_Data/Items/Sauce.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2f265146ff9f07d42827380689c4c4fa
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Sauce/Ketchup.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Sauce/Ketchup.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Sauce/Ketchup.asset.meta
Normal file
8
Assets/08_Data/Items/Sauce/Ketchup.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 97fe0f173a1ebcb479603c499f849117
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Sauce/Mustard.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Sauce/Mustard.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Sauce/Mustard.asset.meta
Normal file
8
Assets/08_Data/Items/Sauce/Mustard.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e4484d2fbdeccc44e978051678cd4a79
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Snack/ChocoBall.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Snack/ChocoBall.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Snack/ChocoBall.asset.meta
Normal file
8
Assets/08_Data/Items/Snack/ChocoBall.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 90786d4ef0f7b594db535242356eb408
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Tea/Coffee.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Tea/Coffee.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Tea/Coffee.asset.meta
Normal file
8
Assets/08_Data/Items/Tea/Coffee.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5af3ab4274090244db82135b6839a898
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Tea/Coffee2.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Tea/Coffee2.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Tea/Coffee2.asset.meta
Normal file
8
Assets/08_Data/Items/Tea/Coffee2.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e634849b86f9aad48a4d780fdf0ee53f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Tea/GreenTea.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Tea/GreenTea.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Tea/GreenTea.asset.meta
Normal file
8
Assets/08_Data/Items/Tea/GreenTea.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 851bc721c8a9ec543bf2d650a3cc1785
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Tea/GreenTea2.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Tea/GreenTea2.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Tea/GreenTea2.asset.meta
Normal file
8
Assets/08_Data/Items/Tea/GreenTea2.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5840f11a4bcf2f842b951de80ae28f19
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Vegetable/Aubergine.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Vegetable/Aubergine.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Vegetable/Aubergine.asset.meta
Normal file
8
Assets/08_Data/Items/Vegetable/Aubergine.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8607220a3e49a194fa7b08700653b326
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Vegetable/Broccoli.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Vegetable/Broccoli.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Vegetable/Broccoli.asset.meta
Normal file
8
Assets/08_Data/Items/Vegetable/Broccoli.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a72e853248e15d246a35a6cbce7fd896
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Vegetable/Cabbage.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Vegetable/Cabbage.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Vegetable/Cabbage.asset.meta
Normal file
8
Assets/08_Data/Items/Vegetable/Cabbage.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cfc91f043c2dfec409bf2a5e1f2b3491
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Vegetable/Cucumber.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Vegetable/Cucumber.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Vegetable/Cucumber.asset.meta
Normal file
8
Assets/08_Data/Items/Vegetable/Cucumber.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a3dca6e0a5adc0843b0494636136c8da
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Vegetable/Onion.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Vegetable/Onion.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Vegetable/Onion.asset.meta
Normal file
8
Assets/08_Data/Items/Vegetable/Onion.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 191518547f526944bb82f0d24e9e1349
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Vegetable/Potato.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Vegetable/Potato.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Vegetable/Potato.asset.meta
Normal file
8
Assets/08_Data/Items/Vegetable/Potato.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d6dc54aa03852146b2aabd619ed9993
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/08_Data/Items/Vegetable/Tomato.asset
LFS
Normal file
BIN
Assets/08_Data/Items/Vegetable/Tomato.asset
LFS
Normal file
Binary file not shown.
8
Assets/08_Data/Items/Vegetable/Tomato.asset.meta
Normal file
8
Assets/08_Data/Items/Vegetable/Tomato.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77a9fa5b948ab2a46a098ffd998571cc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -124,7 +124,10 @@ AudioMixerSnapshotController:
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_SnapshotID: 57a15260ec480004cbc2848cc0a4f36e
|
||||
m_FloatValues:
|
||||
ba018e28170e108488d70eb228687256: 10
|
||||
deddcfb1a56f5d242acae971cdf41a2a: 5.2093163
|
||||
ba018e28170e108488d70eb228687256: 3.704152
|
||||
bf4e0b98dc2a8ee4788d43c4a5079348: -20.1512
|
||||
a5d0c469bd35ff94ca00b3135bb684dc: -20.1512
|
||||
m_TransitionOverrides: {}
|
||||
--- !u!244 &2045488911297964458
|
||||
AudioMixerEffectController:
|
||||
|
||||
Binary file not shown.
8
Assets/Idle MoCap.meta
Normal file
8
Assets/Idle MoCap.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e6036bd6d2958104796e02b053160b39
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
10
Assets/Idle MoCap/Animations.meta
Normal file
10
Assets/Idle MoCap/Animations.meta
Normal file
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7c2be73441ca918439a1f417d45eb305
|
||||
folderAsset: yes
|
||||
timeCreated: 1556041404
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Idle MoCap/Animations/Cold_Idle_01_MB_v01.fbx
LFS
Normal file
BIN
Assets/Idle MoCap/Animations/Cold_Idle_01_MB_v01.fbx
LFS
Normal file
Binary file not shown.
1078
Assets/Idle MoCap/Animations/Cold_Idle_01_MB_v01.fbx.meta
Normal file
1078
Assets/Idle MoCap/Animations/Cold_Idle_01_MB_v01.fbx.meta
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Assets/Idle MoCap/Animations/Cold_Idle_02_MBv01.fbx
LFS
Normal file
BIN
Assets/Idle MoCap/Animations/Cold_Idle_02_MBv01.fbx
LFS
Normal file
Binary file not shown.
1065
Assets/Idle MoCap/Animations/Cold_Idle_02_MBv01.fbx.meta
Normal file
1065
Assets/Idle MoCap/Animations/Cold_Idle_02_MBv01.fbx.meta
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Assets/Idle MoCap/Animations/Cold_Idle_03_MB_v01.fbx
LFS
Normal file
BIN
Assets/Idle MoCap/Animations/Cold_Idle_03_MB_v01.fbx
LFS
Normal file
Binary file not shown.
1065
Assets/Idle MoCap/Animations/Cold_Idle_03_MB_v01.fbx.meta
Normal file
1065
Assets/Idle MoCap/Animations/Cold_Idle_03_MB_v01.fbx.meta
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Assets/Idle MoCap/Animations/Cold_Idle_04_MB_v02.fbx
LFS
Normal file
BIN
Assets/Idle MoCap/Animations/Cold_Idle_04_MB_v02.fbx
LFS
Normal file
Binary file not shown.
1065
Assets/Idle MoCap/Animations/Cold_Idle_04_MB_v02.fbx.meta
Normal file
1065
Assets/Idle MoCap/Animations/Cold_Idle_04_MB_v02.fbx.meta
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user