This commit is contained in:
Nam Tae Gun 2024-12-06 22:20:10 +09:00
parent 49321522f6
commit 8e7b32d0f0
75 changed files with 3291 additions and 270 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,11 @@
using BlueWater.Audios;
using BlueWater.Interfaces;
namespace BlueWater.Npcs.Customers
{
public class VomitState : IStateMachine<Customer>
{
private string _vomitSfxName = "Vomit";
private bool _isVomiting;
public void EnterState(Customer character)
@ -13,8 +15,9 @@ namespace BlueWater.Npcs.Customers
public void UpdateState(Customer character)
{
if (character.SpineController.IsAnimationComplete())
if (!_isVomiting && character.SpineController.IsAnimationComplete())
{
AudioManager.Instance.PlaySfx(_vomitSfxName);
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
_isVomiting = true;
}

View File

@ -10,9 +10,6 @@ namespace BlueWater.Players
public class PlayerHealthPoint : MonoBehaviour, IDamageable
{
// Components
[SerializeField]
private SpriteRenderer _spriteRenderer;
private IDashable _dashable;
private ISkillHandler _skillHandler;
@ -29,9 +26,22 @@ namespace BlueWater.Players
[field: SerializeField]
public bool IsInvincible { get; private set; }
[SerializeField]
private bool _isShaking;
[SerializeField, ShowIf("@_isShaking")]
private float _shakingPower = 0.5f;
[SerializeField, ShowIf("@_isShaking")]
private float _shakingDuration = 0.1f;
[SerializeField]
private string attackedSfxName = "CombatPlayerAttacked";
[SerializeField]
private string heartRecoverySfxName;
private Material _materialInstance;
private WaitForSeconds _flashWhiteWaitTime;
private Coroutine _flashWhiteCoroutine;
private Coroutine _damageIntervalCoroutine;
@ -55,8 +65,6 @@ namespace BlueWater.Players
[Button("컴포넌트 초기화")]
private void InitializeComponents()
{
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
_dashable = GetComponent<IDashable>();
_skillHandler = GetComponent<ISkillHandler>();
}
@ -106,12 +114,17 @@ namespace BlueWater.Players
return !isDashing && !isActivatingSkill;
}
[Button("데미지 테스트")]
public void TakeDamage(int damageAmount)
{
AudioManager.Instance.PlaySfx(attackedSfxName);
IsInvincible = true;
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
SetCurrentHealthPoint(changeHp);
AudioManager.Instance.PlaySfx("CombatPlayerAttacked");
if (_isShaking)
{
VisualFeedbackManager.Instance.CameraShake(TycoonCameraManager.Instance.BaseCamera, _shakingPower, _shakingDuration);
}
// 죽었는지 체크
if (changeHp == 0f)
@ -120,7 +133,7 @@ namespace BlueWater.Players
return;
}
if (_spriteRenderer.material.HasInt(IsHitHash))
if (_materialInstance.HasInt(IsHitHash))
{
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
}
@ -143,9 +156,9 @@ namespace BlueWater.Players
{
for (var i = 0; i < 5; i++)
{
_spriteRenderer.material.SetInt(IsHitHash, 1);
_materialInstance.SetInt(IsHitHash, 1);
yield return _flashWhiteWaitTime;
_spriteRenderer.material.SetInt(IsHitHash, 0);
_materialInstance.SetInt(IsHitHash, 0);
yield return _flashWhiteWaitTime;
}
@ -160,5 +173,6 @@ namespace BlueWater.Players
public void ActivateInvincibility() => IsInvincible = true;
public void DeactivateInvincibility() => IsInvincible = false;
public void SetMaterialInstance(Material materialInstance) => _materialInstance = materialInstance;
}
}

View File

@ -5,7 +5,6 @@ using BlueWater.Uis;
using Sirenix.OdinInspector;
using Spine.Unity;
using UnityEngine;
using UnityEngine.InputSystem;
namespace BlueWater.Players.Tycoons
{
@ -67,6 +66,8 @@ namespace BlueWater.Players.Tycoons
[SerializeField]
private Vector3 _offset = new(0f, 1.5f, 0f);
public Material MaterialInstance { get; protected set; }
public bool IsCleaningFloor { get; set; }
public bool IsCleaningTable { get; set; }
public bool IsCleaningMold { get; set; }
@ -108,6 +109,12 @@ namespace BlueWater.Players.Tycoons
EventManager.OnPlaceOnServingTable += PlaceOnServingTable;
TycoonMovement.OnSucceedDash += DashSucceed;
var originalMaterial = SpineController.SkeletonAnimation.SkeletonDataAsset.atlasAssets[0].PrimaryMaterial;
var newMaterial = SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial];
MaterialInstance = Instantiate(newMaterial);
SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial] = MaterialInstance;
PlayerHealthPoint.SetMaterialInstance(MaterialInstance);
IdleState = new IdleState();
WalkingState = new WalkingState();
@ -167,7 +174,10 @@ namespace BlueWater.Players.Tycoons
private void Die()
{
int saveGold = Mathf.RoundToInt(TycoonManager.Instance.TycoonStatus.CurrentGold * TycoonManager.Instance.TycoonStatus.EndGoldMultiplier);
int currentGold = TycoonManager.Instance.TycoonStatus.CurrentGold;
float endGoldMultiplier = -0.5f + TycoonManager.Instance.TycoonStatus.EndGoldMultiplier;
int addedGold = Mathf.RoundToInt(currentGold * endGoldMultiplier);
int saveGold = currentGold + addedGold;
ES3.Save(SaveData.EndGold, saveGold);
ES3.Save(SaveData.CompleteFirstGame, true);
}

View File

@ -6,6 +6,7 @@ using BlueWater.Interfaces;
using BlueWater.Items;
using BlueWater.Npcs.Customers;
using BlueWater.Utility;
using Newtonsoft.Json;
using UnityEditor;
using UnityEngine;
@ -202,23 +203,28 @@ namespace BlueWater.Editors
}
}
// 새로운 데이터를 기존 데이터에 덮어쓰거나 추가
// 새로운 데이터를 처리
foreach (var newDataItem in newData)
{
if (newDataItem == null || newDataItem.Value == null) continue;
if (existingDataDict.TryGetValue(newDataItem.Key, out var existingItem))
{
// 기존 데이터가 있으면 업데이트
var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (var property in properties)
{
var newValue = property.GetValue(newDataItem.Value);
var existingValue = property.GetValue(existingItem.Value);
// 덮어쓰기 조건 (참조 타입이거나, 값 타입이 기본값이 아닌 경우에만 덮어씀)
if (ShouldOverwriteProperty(newValue, existingValue, property))
// JSON 데이터에서 덮어쓸 프로퍼티만 처리
if (property.GetCustomAttribute<JsonPropertyAttribute>() != null)
{
property.SetValue(existingItem.Value, newValue);
var newValue = property.GetValue(newDataItem.Value);
var existingValue = property.GetValue(existingItem.Value);
// 덮어쓰기 조건 확인
if (ShouldOverwriteProperty(newValue, existingValue, property))
{
property.SetValue(existingItem.Value, newValue);
}
}
}
}
@ -229,7 +235,7 @@ namespace BlueWater.Editors
}
}
// 기존 데이터 리스트를 다시 갱신
// 기존 데이터를 유지하고 새로운 데이터를 덮어쓰거나 추가한 결과로 갱신
existingData.Clear();
existingData.AddRange(existingDataDict.Values);
}

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using BlueWater.Interfaces;
using Newtonsoft.Json;
using Sirenix.OdinInspector;
using Sirenix.Utilities;
using UnityEngine;
@ -11,42 +12,55 @@ namespace BlueWater.Items
public class CocktailData : IPickup
{
[BoxGroup("Json 데이터 영역")]
[JsonProperty]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("오차 범위"), BoxGroup("Json 데이터 영역")]
public int RatioRange { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx1 { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio1 { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx2 { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio2 { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx3 { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio3 { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx4 { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio4 { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx5 { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio5 { get; set; }

View File

@ -1,5 +1,6 @@
using System;
using BlueWater.Interfaces;
using Newtonsoft.Json;
using Sirenix.OdinInspector;
using UnityEngine;
@ -16,15 +17,19 @@ namespace BlueWater.Items
public class LiquidData : IIdx
{
[BoxGroup("Json 데이터 영역")]
[JsonProperty]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("종류"), BoxGroup("Json 데이터 영역")]
public LiquidType Type { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("총량"), BoxGroup("Json 데이터 영역")]
public int Amount { get; set; }

View File

@ -38,27 +38,35 @@ namespace BlueWater.Items
public class ItemData : IPickup
{
[BoxGroup("Json 데이터 영역")]
[JsonProperty]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("아이템 종류"), BoxGroup("Json 데이터 영역")]
public ItemType Type { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("재료 종류"), BoxGroup("Json 데이터 영역")]
public IngredientType IngredientType { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("아이템 품질"), BoxGroup("Json 데이터 영역")]
public ItemQuality Quality { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
public int Price { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("무게"), BoxGroup("Json 데이터 영역")]
public int Weight { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("설명"), TextArea(3, 10), BoxGroup("Json 데이터 영역")]
public string Description { get; set; }

View File

@ -1,4 +1,5 @@
using System;
using BlueWater.Audios;
using BlueWater.Utility;
using Sirenix.OdinInspector;
using UnityEngine;
@ -54,6 +55,9 @@ namespace BlueWater.Tycoons
[SerializeField]
private float _playerHoldingTime = 3f;
[SerializeField]
private string _attackMoldSfxName = "AttackMold";
private bool _isPlayerInteracting;
private int _currentLevel;
@ -121,6 +125,7 @@ namespace BlueWater.Tycoons
}
else
{
AudioManager.Instance.PlaySfx(_attackMoldSfxName, true);
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = true;
_isPlayerInteracting = true;
}
@ -135,6 +140,7 @@ namespace BlueWater.Tycoons
}
else
{
AudioManager.Instance.StopSfx(_attackMoldSfxName);
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = false;
_isPlayerInteracting = false;
HoldingElapsedTime = 0f;
@ -373,21 +379,27 @@ namespace BlueWater.Tycoons
{
case 0:
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel0, false);
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel0, false);
break;
case 1:
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel1, false);
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel1, false);
break;
case 2:
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel2, false);
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel2, false);
break;
case 3:
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel3, false);
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel3, false);
break;
case 4:
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel4, false);
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel4, false);
break;
case 5:
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel5, false);
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel5, false);
break;
default:
throw new Exception("_currentLevel 존재하지 않는 값");

View File

@ -1,10 +1,17 @@
using System;
using BlueWater.Audios;
using BlueWater.Players;
using BlueWater.Uis;
using UnityEngine;
namespace BlueWater.Tycoons
{
public static class PumpSpineAnimation
{
public const string Idle = "Idle";
public const string Run = "Run";
}
[Serializable]
public class Pump : InteractionFurniture
{
@ -23,6 +30,12 @@ namespace BlueWater.Tycoons
[SerializeField, Range(0, 1000)]
private int addedLiquid = 400;
[SerializeField]
private string _attackSfxName = "AttackWhip";
[SerializeField]
private string _playPumpSfxName = "PlayPump";
private bool _isPlayerInteracting;
protected override void Awake()
@ -36,7 +49,7 @@ namespace BlueWater.Tycoons
{
base.Start();
_spineController.PlayAnimation("Idle", true);
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
}
private void Update()
@ -72,16 +85,20 @@ namespace BlueWater.Tycoons
public override void Interaction()
{
AudioManager.Instance.PlaySfx(_attackSfxName, true);
AudioManager.Instance.PlaySfx(_playPumpSfxName, true);
GameManager.Instance.CurrentTycoonPlayer.IsPumping = true;
_isPlayerInteracting = true;
_spineController.PlayAnimation("Run", true);
_spineController.PlayAnimation(PumpSpineAnimation.Run, true);
}
public override void CancelInteraction()
{
AudioManager.Instance.StopSfx(_attackSfxName);
AudioManager.Instance.StopSfx(_playPumpSfxName);
GameManager.Instance.CurrentTycoonPlayer.IsPumping = false;
_isPlayerInteracting = false;
_spineController.PlayAnimation("Idle", true);
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
}
public override bool CanInteraction()

View File

@ -9,6 +9,7 @@ namespace BlueWater.Tycoons
[Serializable]
public class RewardBox : InteractionFurniture
{
[Title("참조")]
[SerializeField]
private AnimationController _animationController;

View File

@ -1,5 +1,6 @@
using System;
using System.Collections;
using BlueWater.Audios;
using BlueWater.Interfaces;
using BlueWater.Items;
using BlueWater.Npcs.Crews;
@ -16,6 +17,9 @@ namespace BlueWater.Tycoons
[FormerlySerializedAs("_cocktailGlassImage")]
[SerializeField]
protected SpriteRenderer CocktailGlassImage;
[SerializeField]
private string _putDownSfxName = "PutDownCocktail";
// 서빙 테이블 기준 아이템이 있는지 없는지
private IPickup _currentPickupItem;
@ -78,6 +82,7 @@ namespace BlueWater.Tycoons
// 테이블에 칵테일을 놓는 경우
else
{
AudioManager.Instance.PlaySfx(_putDownSfxName);
CurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.CurrentPickupItem;
CocktailGlassImage.sprite = CurrentPickupItem.Sprite;
CocktailGlassImage.enabled = true;

View File

@ -122,11 +122,8 @@ namespace BlueWater.Tycoons
}
}
if (_isCrewInteracting)
{
OnInteractionCompleted?.Invoke();
OnInteractionCompleted = null;
}
OnInteractionCompleted?.Invoke();
OnInteractionCompleted = null;
EventManager.InvokeCleaningResult(true);
CleanTable();
@ -222,7 +219,7 @@ namespace BlueWater.Tycoons
_currentLevelData = TycoonManager.Instance.GetCurrentLevelData();
Food.sprite = _emptyBeerGlass;
Food.enabled = true;
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Cleaning, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.DirtyTableWaitTime);
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.DirtyTableWaitTime);
IsCleaned = false;
var crewController = TycoonManager.Instance.CrewController;

View File

@ -1,4 +1,5 @@
using BlueWater.Audios;
using BlueWater.Interfaces;
using BlueWater.Items;
using BlueWater.Players;
using UnityEngine;
@ -199,10 +200,17 @@ namespace BlueWater.Tycoons
private void ChangeRandomCocktail()
{
var randomCocktail = TycoonManager.Instance.TycoonIngredientController.GetRandomCocktailData();
IPickup playerCurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.CurrentPickupItem;
if (playerCurrentPickupItem != null)
{
CocktailData discardCocktailData = ItemManager.Instance.CocktailDataSo.GetDataByIdx(playerCurrentPickupItem.Idx);
EventManager.InvokeCocktailServedToCustomer(discardCocktailData, false);
}
CocktailData randomCocktail = TycoonManager.Instance.TycoonIngredientController.GetRandomCocktailData();
EventManager.InvokeChangedRandomCocktail(randomCocktail);
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Waiting, 0,
TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime);
EventManager.InvokeCocktailCompleted(randomCocktail, false);
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime);
HoldingElapsedTime = 0f;
_canInteraction = false;

View File

@ -102,7 +102,7 @@ namespace BlueWater.Tycoons
public void Initialize()
{
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Cleaning, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingWaitTime);
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingWaitTime);
var crewController = TycoonManager.Instance.CrewController;
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance,
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this)));
@ -134,11 +134,9 @@ namespace BlueWater.Tycoons
{
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
}
if (_isCrewInteracting)
{
OnInteractionCompleted?.Invoke();
OnInteractionCompleted = null;
}
OnInteractionCompleted?.Invoke();
OnInteractionCompleted = null;
Destroy(gameObject);
}

View File

@ -91,7 +91,21 @@ MonoBehaviour:
<Clip>k__BackingField: {fileID: 8300000, guid: 9778d97789d1ea245a9d31c2ff915bb7, type: 3}
- <SfxName>k__BackingField: GainGold
<Clip>k__BackingField: {fileID: 8300000, guid: f556df27b6add5a49979cc7a158f6110, type: 3}
- <SfxName>k__BackingField: RareRewardBox
- <SfxName>k__BackingField: OpenNormalRewardBox
<Clip>k__BackingField: {fileID: 8300000, guid: 92cf41edb5694a04eb27847dae1b337f, type: 3}
- <SfxName>k__BackingField: OpenRareRewardBox
<Clip>k__BackingField: {fileID: 8300000, guid: 3f98ecaf35492e744bb4dc943e1a39b1, type: 3}
- <SfxName>k__BackingField: SelectedButton01
<Clip>k__BackingField: {fileID: 8300000, guid: 80adc41542bc901439938907231717a8, type: 3}
- <SfxName>k__BackingField: PlayChain
<Clip>k__BackingField: {fileID: 8300000, guid: 2374925c2e5dd7e47bc214461e4b329d, type: 3}
- <SfxName>k__BackingField: Vomit
<Clip>k__BackingField: {fileID: 8300000, guid: a2bebee4126e87746b5fc1a514ceb4a0, type: 3}
- <SfxName>k__BackingField: PlayPump
<Clip>k__BackingField: {fileID: 8300000, guid: b532d80acad8e6e4e85dbca6096b071e, type: 3}
- <SfxName>k__BackingField: AttackWhip
<Clip>k__BackingField: {fileID: 8300000, guid: d4b4534edc51fb141860a1b599eb6e53, type: 3}
- <SfxName>k__BackingField: PutDownCocktail
<Clip>k__BackingField: {fileID: 8300000, guid: 0320fecde5b376f46a0ff9904e17fbc3, type: 3}
- <SfxName>k__BackingField: AttackMold
<Clip>k__BackingField: {fileID: 8300000, guid: 603fde43ec110ee42bf61c41ca21a1fb, type: 3}

View File

@ -20,7 +20,7 @@ MonoBehaviour:
<Type>k__BackingField: 1
<Amount>k__BackingField: 99999
<Sprite>k__BackingField: {fileID: 21300000, guid: a8c45767f0a3ec245a47087c7ada2b50, type: 3}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
<Color>k__BackingField: {r: 0.8018868, g: 0, b: 0.024826864, a: 1}
- <Key>k__BackingField: LiquidB
<Value>k__BackingField:
<Idx>k__BackingField: LiquidB
@ -28,7 +28,7 @@ MonoBehaviour:
<Type>k__BackingField: 1
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 216cb30d7010e95499c22161ccfde634, type: 3}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
<Color>k__BackingField: {r: 0.12156863, g: 1, b: 0, a: 1}
- <Key>k__BackingField: LiquidC
<Value>k__BackingField:
<Idx>k__BackingField: LiquidC
@ -36,7 +36,7 @@ MonoBehaviour:
<Type>k__BackingField: 1
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 404e93e2e77f60b49bbcbf1df18904d3, type: 3}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
<Color>k__BackingField: {r: 0, g: 0.23921569, b: 1, a: 1}
- <Key>k__BackingField: LiquidD
<Value>k__BackingField:
<Idx>k__BackingField: LiquidD
@ -44,7 +44,7 @@ MonoBehaviour:
<Type>k__BackingField: 1
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: a575a803ef0529e43bcbbe8ccdbb34b2, type: 3}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
<Color>k__BackingField: {r: 1, g: 0, b: 0.6666667, a: 1}
- <Key>k__BackingField: LiquidE
<Value>k__BackingField:
<Idx>k__BackingField: LiquidE
@ -52,7 +52,7 @@ MonoBehaviour:
<Type>k__BackingField: 1
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 2fc24dca6ce6ac94da0187dfce24fa3a, type: 3}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
<Color>k__BackingField: {r: 0.9843137, g: 1, b: 0, a: 1}
- <Key>k__BackingField: Garnish1
<Value>k__BackingField:
<Idx>k__BackingField: Garnish1
@ -60,7 +60,7 @@ MonoBehaviour:
<Type>k__BackingField: 2
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: ddde5976023f9be4e83dc3d867c2dc30, type: 3}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
<Color>k__BackingField: {r: 0, g: 1, b: 1, a: 1}
- <Key>k__BackingField: Garnish2
<Value>k__BackingField:
<Idx>k__BackingField: Garnish2
@ -68,4 +68,4 @@ MonoBehaviour:
<Type>k__BackingField: 2
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 1506abfb2ff26fa4aacdeb4b0efc9663, type: 3}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
<Color>k__BackingField: {r: 0.5019608, g: 0, b: 1, a: 1}

View File

@ -24,6 +24,6 @@ namespace BlueWater
public Sprite Waiting { get; private set; }
[field: SerializeField]
public Sprite Cleaning { get; private set; }
public Sprite Dirty { get; private set; }
}
}

View File

@ -1,5 +1,6 @@
using System;
using BlueWater.Interfaces;
using Newtonsoft.Json;
using Sirenix.OdinInspector;
using UnityEngine;
@ -9,12 +10,15 @@ namespace BlueWater
public class CardData : IIdx
{
[BoxGroup("Json 데이터 영역")]
[JsonProperty]
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("Text"), BoxGroup("Json 데이터 영역")]
public string ScriptText { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("최대 값"), BoxGroup("Json 데이터 영역")]
public int Max { get; set; }

View File

@ -1,5 +1,6 @@
using System;
using BlueWater.Interfaces;
using Newtonsoft.Json;
using Sirenix.OdinInspector;
using UnityEngine;
@ -9,9 +10,11 @@ namespace BlueWater
public class CardNormalData : IIdx
{
[BoxGroup("Json 데이터 영역")]
[JsonProperty]
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
public int Ratio { get; set; }
}

View File

@ -1,5 +1,6 @@
using System;
using BlueWater.Interfaces;
using Newtonsoft.Json;
using Sirenix.OdinInspector;
using UnityEngine;
@ -9,9 +10,11 @@ namespace BlueWater
public class CardRareData : IIdx
{
[BoxGroup("Json 데이터 영역")]
[JsonProperty]
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
public int Ratio { get; set; }
}

View File

@ -1,5 +1,6 @@
using System;
using BlueWater.Interfaces;
using Newtonsoft.Json;
using Sirenix.OdinInspector;
using UnityEngine;
@ -9,12 +10,15 @@ namespace BlueWater
public class CardShopData : IIdx
{
[BoxGroup("Json 데이터 영역")]
[JsonProperty]
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
public int Ratio { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
public int Price { get; set; }
}

View File

@ -1,5 +1,6 @@
using System;
using BlueWater.Interfaces;
using Newtonsoft.Json;
using Sirenix.OdinInspector;
using UnityEngine;
@ -15,36 +16,47 @@ namespace BlueWater
public class LevelData : IIdx
{
[BoxGroup("Json 데이터 영역")]
[JsonProperty]
[field: SerializeField, Tooltip("레벨"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("손님 재입장 시간"), BoxGroup("Json 데이터 영역")]
public int CustomerRespawn { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("기본 골드량"), BoxGroup("Json 데이터 영역")]
public int Gold { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("기본 경험치량"), BoxGroup("Json 데이터 영역")]
public int Exp { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("레벨업 요구 경험치량"), BoxGroup("Json 데이터 영역")]
public int RequiredExp { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("얌전히 기다리는 시간"), BoxGroup("Json 데이터 영역")]
public int WaitTime { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("재촉하는 시간 (게이지 활성화)"), BoxGroup("Json 데이터 영역")]
public int HurryTime { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("먹는 시간"), BoxGroup("Json 데이터 영역")]
public int EatingTime { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("업그레이드 목록"), BoxGroup("Json 데이터 영역")]
public string OpenUpgrade { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("보물상자 종류"), BoxGroup("Json 데이터 영역")]
public RewardBoxType RewardBoxType { get; set; }
[JsonProperty]
[field: SerializeField, Tooltip("보물상자 가격"), BoxGroup("Json 데이터 영역")]
public int RewardBoxPrice { get; set; }
}

View File

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using BlueWater.Uis;
using Sirenix.OdinInspector;
@ -28,12 +29,15 @@ namespace BlueWater.Tycoons
[ShowInInspector]
public Dictionary<string, int> SelectedCard { get; private set; }
private void Awake()
{
SelectedCard = new Dictionary<string, int>(CardDataSo.GetDataCount());
}
private void Start()
{
_tycoonManager = TycoonManager.Instance;
_tycoonStatus = _tycoonManager.TycoonStatus;
SelectedCard = new Dictionary<string, int>(CardDataSo.GetDataCount());
}
public TycoonCard CreateTycoonCard(Transform instantiateLocation = null)

View File

@ -26,6 +26,7 @@ namespace BlueWater.Tycoons
[SerializeField]
private RewardBox _rareRewardBoxObject;
[ShowInInspector]
public Dictionary<string, int> InstanceCocktailDatas { get; private set; } = new();
private int _playerServingCount;

View File

@ -323,7 +323,7 @@ namespace BlueWater.Tycoons
PlayerMoveSpeedMultiplier = GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.MoveSpeedMultiplier;
PlayerDashCooldownReduction = 0;
TipMultiplier = 0f;
EndGoldMultiplier = 0.5f;
EndGoldMultiplier = 0f;
_customerHurryTimeIncrease = 0;
BarrelAutoIncrease = 0;
ServerTipMultiplier = 0f;

View File

@ -92,7 +92,6 @@ namespace BlueWater.Uis
private void SetEmpty()
{
SetItemSprite(null);
OrderCocktailData = null;
_fillTween?.Kill();
}
@ -130,6 +129,16 @@ namespace BlueWater.Uis
SetTween(waitTime, hurryTime, isReverse);
}
public void OrderItem(float waitTime, float hurryTime, bool isReverse = false)
{
_isOrdered = true;
_isWaitTimeOver = false;
_isItemReceived = false;
ShowUi();
SetTween(waitTime, hurryTime, isReverse);
}
public void SetTween(float waitTime, float hurryTime, bool isReverse = false)
{

View File

@ -2,6 +2,7 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using BlueWater.Audios;
using BlueWater.Npcs.Customers;
using BlueWater.Utility;
using Sirenix.OdinInspector;
@ -19,6 +20,9 @@ namespace BlueWater.Uis
[SerializeField]
private SkeletonGraphic _chain;
[SerializeField]
private string playChainSfxName = "PlayChain";
[Title("계산서")]
[SerializeField]
private Vector3 _spawnPosition;
@ -100,6 +104,7 @@ namespace BlueWater.Uis
private void PlayChainAnimation()
{
AudioManager.Instance.PlaySfx(playChainSfxName);
_chain.AnimationState.SetAnimation(0, Move, true);
_isMovedChain = true;
}
@ -132,6 +137,7 @@ namespace BlueWater.Uis
yield return null;
}
AudioManager.Instance.StopSfx(playChainSfxName);
_chain.AnimationState.ClearTrack(0);
_isMovedChain = false;
_isActivating = false;

View File

@ -70,6 +70,16 @@ namespace BlueWater.Uis
private void Awake()
{
_cocktailRecipeButtons = transform.GetComponentsInChildren<CocktailRecipeButton>(true).ToList();
foreach (var element in _cocktailRecipeButtons)
{
element.Initialize();
element.AddSelectedAction(SelectItem);
}
_craftingIngredients = _craftingContents.GetComponentsInChildren<CraftingIngredient>(true).ToList();
EventManager.OnLevelUp += UpdateManualBook;
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
}
@ -85,16 +95,6 @@ namespace BlueWater.Uis
_openManualBookAction.performed += OnOpen;
_cocktailRecipeButtons = transform.GetComponentsInChildren<CocktailRecipeButton>(true).ToList();
foreach (var element in _cocktailRecipeButtons)
{
element.Initialize();
element.AddSelectedAction(SelectItem);
}
_craftingIngredients = _craftingContents.GetComponentsInChildren<CraftingIngredient>(true).ToList();
uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
}
@ -124,7 +124,7 @@ namespace BlueWater.Uis
if (_selectedCocktailRecipeButton != null)
{
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}";
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}%";
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());
@ -229,7 +229,7 @@ namespace BlueWater.Uis
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
_selectedCocktailImage.sprite = _selectedCocktailRecipeButton.CocktailData.Sprite;
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}";
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}%";
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());

View File

@ -25,7 +25,7 @@ namespace BlueWater.Uis
private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
[SerializeField]
private string _openSfxName = "RareRewardBox";
private string _openSfxName = "OpenRareRewardBox";
[SerializeField]
private Button allOpenCardButton;
@ -61,8 +61,8 @@ namespace BlueWater.Uis
public override void Open()
{
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
PopupUiController.RegisterPopup(this);
_panel.SetActive(true);

View File

@ -1,7 +1,6 @@
using System;
using System.Collections;
using System.Collections.Generic;
using BlueWater.Npcs.Customers;
using BlueWater.Tycoons;
using BlueWater.Utility;
using UnityEngine;
@ -417,7 +416,12 @@ namespace BlueWater.Uis
_tipGainedText.text = _tipGained.ToString("N0");
_goldSpentText.text = _goldSpent.ToString("N0");
_totalGoldText.text = $"{Utils.GetLocalizedString("TotalGold")} : {ES3.Load(SaveData.EndGold, 0):N0}";
_minusPercentText.text = $"- {Mathf.RoundToInt((1f - TycoonManager.Instance.TycoonStatus.EndGoldMultiplier) * 100)}%";
float endGoldMultiplier = -0.5f + TycoonManager.Instance.TycoonStatus.EndGoldMultiplier;
int percent = Mathf.RoundToInt(endGoldMultiplier * 100);
char sign = percent >= 0 ? '+' : '-';
_minusPercentText.color = percent >= 0 ? Color.blue : Color.red;
_minusPercentText.text = $"{sign} {percent}%";
}
[Button("결과 즉시 테스트")]

View File

@ -1,5 +1,6 @@
using System.Collections;
using System.Collections.Generic;
using BlueWater.Audios;
using BlueWater.Tycoons;
using Sirenix.OdinInspector;
using UnityEngine;
@ -15,6 +16,9 @@ namespace BlueWater.Uis
[SerializeField]
private Transform _contents;
[SerializeField]
private string _openSfxName = "OpenNormalRewardBox";
private List<TycoonCard> _tycoonCards = new(3);
@ -39,6 +43,7 @@ namespace BlueWater.Uis
public override void Open()
{
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
PopupUiController.RegisterPopup(this);

View File

@ -80,7 +80,7 @@ namespace BlueWater.Uis
// Methods
#region Methods
public async void TycoonOpenUi()
public void TycoonOpenUi()
{
_openUiStartTween = _openUiImage.transform.DOScale(1f, 0.3f)
.From(0f)

View File

@ -1,6 +1,8 @@
using System.Collections.Generic;
using DG.Tweening;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace BlueWater.Uis
@ -18,6 +20,16 @@ namespace BlueWater.Uis
[SerializeField]
private Image _fadeImage;
[Title("테스트")]
[SerializeField]
private bool _isUiClickTest;
[SerializeField]
private GraphicRaycaster _raycaster;
[SerializeField]
private EventSystem _eventSystem;
#endregion
@ -33,6 +45,46 @@ namespace BlueWater.Uis
{
EventManager.OnFadeInOut += FadeInOut;
}
private void Update()
{
if (!_isUiClickTest) return;
if (Input.GetMouseButtonDown(0))
{
// 1. UI Raycast
PointerEventData pointerData = new PointerEventData(_eventSystem)
{
position = Input.mousePosition
};
List<RaycastResult> uiResults = new List<RaycastResult>();
_raycaster.Raycast(pointerData, uiResults);
if (uiResults.Count > 0)
{
Debug.Log($"Clicked on UI: {uiResults[0].gameObject.name}");
return;
}
// 2. 3D Raycast
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit))
{
Debug.Log($"Clicked on 3D Object: {hit.collider.gameObject.name}");
return;
}
// 3. 2D Raycast
Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
RaycastHit2D hit2D = Physics2D.Raycast(mousePosition, Vector2.zero);
if (hit2D.collider != null)
{
Debug.Log($"Clicked on 2D Object: {hit2D.collider.gameObject.name}");
}
}
}
private void OnDestroy()
{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -0,0 +1,166 @@
fileFormatVersion: 2
guid: fd7c7a3fb4faf594787e004138691965
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: GarnishIcon_0
rect:
serializedVersion: 2
x: 42
y: 44
width: 42
height: 41
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 46a548f72023b904099f754086ee7d9b
internalID: -299706786
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
GarnishIcon_0: -299706786
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 48d6fc4ad3142af4cb4e687ea5c9fb73
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,149 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TycoonPlayer
m_Shader: {fileID: -6465566751694194690, guid: 8f16ff0e59234ef45b2fe65b282f6ff7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties: _IsHit
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 204779ef72f790b418c77b89042f080b, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaClipThreshold: 0.2
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _CastShadows: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DissolveValue: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _GlowSize: 0
- _IsHit: 0
- _IsSeeThrough: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Opacity: 0.7
- _Parallax: 0.005
- _QueueControl: 0
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Size: 0
- _Smoothness: 0.8
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZTest: 4
- _ZWrite: 1
- _ZWriteControl: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FlashColor: {r: 1, g: 1, b: 1, a: 1}
- _GlowColor: {r: 5.3403134, g: 5.3403134, b: 0, a: 0}
- _PlayerPosition: {r: 0.5, g: 0.55, b: 0, a: 0}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &3929801182760292753
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 438948b549694ad49b234849e64d1e9e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -104,7 +104,7 @@ Material:
- _Glossiness: 0
- _GlossyReflections: 0
- _ISCORNER: 0
- _IsCorner: 0
- _IsCorner: 1
- _Metallic: 0
- _OcclusionStrength: 1
- _OutlineMipLevel: 0

View File

@ -84,6 +84,7 @@ Material:
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaThreshold: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
@ -103,7 +104,7 @@ Material:
- _Glossiness: 0
- _GlossyReflections: 0
- _ISCORNER: 0
- _IsCorner: 0
- _IsCorner: 1
- _Metallic: 0
- _OcclusionStrength: 1
- _OutlineMipLevel: 0

View File

@ -84,6 +84,7 @@ Material:
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaThreshold: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
@ -103,7 +104,7 @@ Material:
- _Glossiness: 0
- _GlossyReflections: 0
- _ISCORNER: 0
- _IsCorner: 0
- _IsCorner: 1
- _Metallic: 0
- _OcclusionStrength: 1
- _OutlineMipLevel: 0

View File

@ -84,6 +84,7 @@ Material:
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaThreshold: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
@ -103,7 +104,7 @@ Material:
- _Glossiness: 0
- _GlossyReflections: 0
- _ISCORNER: 0
- _IsCorner: 0
- _IsCorner: 1
- _Metallic: 0
- _OcclusionStrength: 1
- _OutlineMipLevel: 0

View File

@ -84,6 +84,7 @@ Material:
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaThreshold: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
@ -103,7 +104,7 @@ Material:
- _Glossiness: 0
- _GlossyReflections: 0
- _ISCORNER: 0
- _IsCorner: 0
- _IsCorner: 1
- _Metallic: 0
- _OcclusionStrength: 1
- _OutlineMipLevel: 0

View File

@ -84,6 +84,7 @@ Material:
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaThreshold: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
@ -103,7 +104,7 @@ Material:
- _Glossiness: 0
- _GlossyReflections: 0
- _ISCORNER: 0
- _IsCorner: 0
- _IsCorner: 1
- _Metallic: 0
- _OcclusionStrength: 1
- _OutlineMipLevel: 0

View File

@ -12,6 +12,7 @@ GameObject:
- component: {fileID: 6379312009059766371}
- component: {fileID: 5910700114136101566}
- component: {fileID: 7125556968546628472}
- component: {fileID: 8088939600092576343}
- component: {fileID: 4764720756731101052}
m_Layer: 9
m_Name: VisualLook
@ -67,7 +68,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 288333d9c9df2d84cadf3b48d918ebdb, type: 2}
- {fileID: 2100000, guid: 438948b549694ad49b234849e64d1e9e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@ -132,6 +133,24 @@ MonoBehaviour:
_animationName: Idle
loop: 1
timeScale: 1
--- !u!114 &8088939600092576343
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 569530817952539991}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 26947ae098a8447408d80c0c86e35b48, type: 3}
m_Name:
m_EditorClassIdentifier:
skeletonRenderer: {fileID: 7125556968546628472}
customSlotMaterials: []
customMaterialOverrides:
- overrideDisabled: 0
originalMaterial: {fileID: 2100000, guid: 288333d9c9df2d84cadf3b48d918ebdb, type: 2}
replacementMaterial: {fileID: 2100000, guid: 438948b549694ad49b234849e64d1e9e, type: 2}
--- !u!210 &4764720756731101052
SortingGroup:
m_ObjectHideFlags: 0
@ -337,7 +356,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
<Rigidbody>k__BackingField: {fileID: 6925146187533612706}
<CharacterCollider>k__BackingField: {fileID: 2935942385829016914}
<PlayerInput>k__BackingField: {fileID: 0}
<VisualLook>k__BackingField: {fileID: 6509241874729291456}
<SkeletonAnimation>k__BackingField: {fileID: 7125556968546628472}
<InteractionCanvas>k__BackingField: {fileID: 56698895639349130}
@ -361,7 +379,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
<SkeletonAnimation>k__BackingField: {fileID: 7125556968546628472}
_originalMaterial: {fileID: 0}
_originalMaterial: {fileID: 2100000, guid: 288333d9c9df2d84cadf3b48d918ebdb, type: 2}
_replacementMaterial: {fileID: 0}
_initialSkinName: Basic
_isRandomSkin: 0
@ -380,11 +398,14 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6ff2dc3fa7a6be445bf8e71043f86d2e, type: 3}
m_Name:
m_EditorClassIdentifier:
_spriteRenderer: {fileID: 5527707380059080408}
<MaxHealthPoint>k__BackingField: 4
<CurrentHealthPoint>k__BackingField: 4
<InvincibilityDuration>k__BackingField: 0
<IsInvincible>k__BackingField: 0
_isShaking: 1
_shakingPower: 1
_shakingDuration: 0.25
attackedSfxName: CombatPlayerAttacked
heartRecoverySfxName: HeartRecovery
--- !u!114 &1674052485383758547
MonoBehaviour:

View File

@ -49,5 +49,5 @@ MonoBehaviour:
_usedFontMaterials:
- {fileID: 1328173432319114220, guid: 2f35c40df3d2a1a41b57c8b9eca40913, type: 2}
- {fileID: 2100000, guid: 12575fbfb1a20814aae86a588932b912, type: 2}
_defaultOutlineSize: 0.4
_defaultOutlineSize: 0.2
_chineseOutlineSize: 0.05

View File

@ -199,7 +199,7 @@ PrefabInstance:
- target: {fileID: 8780093359852370517, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: dab2a247be6173643860ce5c7632e734, type: 3}
objectReference: {fileID: 21300000, guid: 66f1c43fd7b6b494c9c2ccb5b437122d, type: 3}
- target: {fileID: 9047629830516719732, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Sprite
value:

View File

@ -175,7 +175,7 @@ PrefabInstance:
- target: {fileID: 3779548209033231211, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: bef7d0464ba595c48b2d3269a15e331a, type: 3}
objectReference: {fileID: 21300000, guid: 48d6fc4ad3142af4cb4e687ea5c9fb73, type: 3}
- target: {fileID: 5953080908505751474, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_IsActive
value: 0

View File

@ -79,7 +79,7 @@ PrefabInstance:
- target: {fileID: 3779548209033231211, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: e2da613ab7d3fe94c801ea12e08ee54d, type: 3}
objectReference: {fileID: 21300000, guid: d2e854d9e991e8e44a308e02390cf441, type: 3}
- target: {fileID: 5024482427928425524, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_IsActive
value: 1

View File

@ -194,7 +194,7 @@ MonoBehaviour:
_liquidText: {fileID: 6864126811145481680}
_ratioText: {fileID: 373231903261848343}
_liquidTypeSprite: {fileID: -2003835345, guid: ee35006156d5e234c9769b6b6c2f5b1f, type: 3}
_garnishTypeSprite: {fileID: 0}
_garnishTypeSprite: {fileID: -299706786, guid: fd7c7a3fb4faf594787e004138691965, type: 3}
--- !u!1 &2225133626707228621
GameObject:
m_ObjectHideFlags: 0

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 92cf41edb5694a04eb27847dae1b337f
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 2374925c2e5dd7e47bc214461e4b329d
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 0320fecde5b376f46a0ff9904e17fbc3
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: a2bebee4126e87746b5fc1a514ceb4a0
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: b532d80acad8e6e4e85dbca6096b071e
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: d4b4534edc51fb141860a1b599eb6e53
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 603fde43ec110ee42bf61c41ca21a1fb
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@ -2151,8 +2151,8 @@
"y": 1.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0
"x": -1.0,
"y": 1.0
},
"m_Labels": []
}
@ -2924,8 +2924,8 @@
"y": 1.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0
"x": 1.0,
"y": 1.0
},
"m_Labels": []
}
@ -5091,7 +5091,7 @@
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0
"y": 1.0
},
"m_Labels": []
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 8f16ff0e59234ef45b2fe65b282f6ff7
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}

View File

@ -238694,7 +238694,7 @@ Material:
- _OutlineSoftness: 0
- _OutlineUVSpeedX: 0
- _OutlineUVSpeedY: 0
- _OutlineWidth: 0.4
- _OutlineWidth: 0.2
- _PerspectiveFilter: 0.875
- _Reflectivity: 10
- _ScaleRatioA: 0.8

View File

@ -70,7 +70,7 @@ Material:
- _OutlineSoftness: 0
- _OutlineUVSpeedX: 0
- _OutlineUVSpeedY: 0
- _OutlineWidth: 0.4
- _OutlineWidth: 0.2
- _PerspectiveFilter: 0.875
- _Reflectivity: 10
- _ScaleRatioA: 0.8

View File

@ -0,0 +1,24 @@
<linker>
<assembly fullname="Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
<type fullname="UnityEngine.AddressableAssets.Addressables" preserve="all" />
</assembly>
<assembly fullname="Unity.Localization, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Localization.Locale" preserve="all" />
<type fullname="UnityEngine.Localization.Tables.SharedTableData" preserve="all" />
<type fullname="UnityEngine.Localization.Tables.StringTable" preserve="all" />
<type fullname="UnityEngine.Localization.LocaleIdentifier" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Metadata.MetadataCollection" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Tables.TableEntryData" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Tables.DistributedUIDGenerator" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Tables.SharedTableData/SharedTableEntry" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.SceneProvider" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Object" preserve="all" />
</assembly>
</linker>

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: af05d21d433e1c446ab5e3f7e063df2f
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -140,7 +140,7 @@ PlayerSettings:
loadStoreDebugModeEnabled: 0
visionOSBundleVersion: 1.0
tvOSBundleVersion: 1.0
bundleVersion: 0.3.5.10
bundleVersion: 0.3.5.11
preloadedAssets:
- {fileID: -944628639613478452, guid: 4ed6540e2f7ce234888adf8deff1f241, type: 3}
- {fileID: 11400000, guid: 112e4950c7d9b7a429feb9bb058a93a7, type: 2}