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

View File

@ -10,9 +10,6 @@ namespace BlueWater.Players
public class PlayerHealthPoint : MonoBehaviour, IDamageable public class PlayerHealthPoint : MonoBehaviour, IDamageable
{ {
// Components // Components
[SerializeField]
private SpriteRenderer _spriteRenderer;
private IDashable _dashable; private IDashable _dashable;
private ISkillHandler _skillHandler; private ISkillHandler _skillHandler;
@ -29,9 +26,22 @@ namespace BlueWater.Players
[field: SerializeField] [field: SerializeField]
public bool IsInvincible { get; private set; } 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] [SerializeField]
private string heartRecoverySfxName; private string heartRecoverySfxName;
private Material _materialInstance;
private WaitForSeconds _flashWhiteWaitTime; private WaitForSeconds _flashWhiteWaitTime;
private Coroutine _flashWhiteCoroutine; private Coroutine _flashWhiteCoroutine;
private Coroutine _damageIntervalCoroutine; private Coroutine _damageIntervalCoroutine;
@ -55,8 +65,6 @@ namespace BlueWater.Players
[Button("컴포넌트 초기화")] [Button("컴포넌트 초기화")]
private void InitializeComponents() private void InitializeComponents()
{ {
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
_dashable = GetComponent<IDashable>(); _dashable = GetComponent<IDashable>();
_skillHandler = GetComponent<ISkillHandler>(); _skillHandler = GetComponent<ISkillHandler>();
} }
@ -106,12 +114,17 @@ namespace BlueWater.Players
return !isDashing && !isActivatingSkill; return !isDashing && !isActivatingSkill;
} }
[Button("데미지 테스트")]
public void TakeDamage(int damageAmount) public void TakeDamage(int damageAmount)
{ {
AudioManager.Instance.PlaySfx(attackedSfxName);
IsInvincible = true; IsInvincible = true;
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0); var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
SetCurrentHealthPoint(changeHp); SetCurrentHealthPoint(changeHp);
AudioManager.Instance.PlaySfx("CombatPlayerAttacked"); if (_isShaking)
{
VisualFeedbackManager.Instance.CameraShake(TycoonCameraManager.Instance.BaseCamera, _shakingPower, _shakingDuration);
}
// 죽었는지 체크 // 죽었는지 체크
if (changeHp == 0f) if (changeHp == 0f)
@ -120,7 +133,7 @@ namespace BlueWater.Players
return; return;
} }
if (_spriteRenderer.material.HasInt(IsHitHash)) if (_materialInstance.HasInt(IsHitHash))
{ {
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine()); Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
} }
@ -143,9 +156,9 @@ namespace BlueWater.Players
{ {
for (var i = 0; i < 5; i++) for (var i = 0; i < 5; i++)
{ {
_spriteRenderer.material.SetInt(IsHitHash, 1); _materialInstance.SetInt(IsHitHash, 1);
yield return _flashWhiteWaitTime; yield return _flashWhiteWaitTime;
_spriteRenderer.material.SetInt(IsHitHash, 0); _materialInstance.SetInt(IsHitHash, 0);
yield return _flashWhiteWaitTime; yield return _flashWhiteWaitTime;
} }
@ -160,5 +173,6 @@ namespace BlueWater.Players
public void ActivateInvincibility() => IsInvincible = true; public void ActivateInvincibility() => IsInvincible = true;
public void DeactivateInvincibility() => IsInvincible = false; 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 Sirenix.OdinInspector;
using Spine.Unity; using Spine.Unity;
using UnityEngine; using UnityEngine;
using UnityEngine.InputSystem;
namespace BlueWater.Players.Tycoons namespace BlueWater.Players.Tycoons
{ {
@ -67,6 +66,8 @@ namespace BlueWater.Players.Tycoons
[SerializeField] [SerializeField]
private Vector3 _offset = new(0f, 1.5f, 0f); private Vector3 _offset = new(0f, 1.5f, 0f);
public Material MaterialInstance { get; protected set; }
public bool IsCleaningFloor { get; set; } public bool IsCleaningFloor { get; set; }
public bool IsCleaningTable { get; set; } public bool IsCleaningTable { get; set; }
public bool IsCleaningMold { get; set; } public bool IsCleaningMold { get; set; }
@ -109,6 +110,12 @@ namespace BlueWater.Players.Tycoons
TycoonMovement.OnSucceedDash += DashSucceed; 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(); IdleState = new IdleState();
WalkingState = new WalkingState(); WalkingState = new WalkingState();
DashState = new DashState(); DashState = new DashState();
@ -167,7 +174,10 @@ namespace BlueWater.Players.Tycoons
private void Die() 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.EndGold, saveGold);
ES3.Save(SaveData.CompleteFirstGame, true); ES3.Save(SaveData.CompleteFirstGame, true);
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -122,11 +122,8 @@ namespace BlueWater.Tycoons
} }
} }
if (_isCrewInteracting)
{
OnInteractionCompleted?.Invoke(); OnInteractionCompleted?.Invoke();
OnInteractionCompleted = null; OnInteractionCompleted = null;
}
EventManager.InvokeCleaningResult(true); EventManager.InvokeCleaningResult(true);
CleanTable(); CleanTable();
@ -222,7 +219,7 @@ namespace BlueWater.Tycoons
_currentLevelData = TycoonManager.Instance.GetCurrentLevelData(); _currentLevelData = TycoonManager.Instance.GetCurrentLevelData();
Food.sprite = _emptyBeerGlass; Food.sprite = _emptyBeerGlass;
Food.enabled = true; 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; IsCleaned = false;
var crewController = TycoonManager.Instance.CrewController; var crewController = TycoonManager.Instance.CrewController;

View File

@ -1,4 +1,5 @@
using BlueWater.Audios; using BlueWater.Audios;
using BlueWater.Interfaces;
using BlueWater.Items; using BlueWater.Items;
using BlueWater.Players; using BlueWater.Players;
using UnityEngine; using UnityEngine;
@ -199,10 +200,17 @@ namespace BlueWater.Tycoons
private void ChangeRandomCocktail() 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); EventManager.InvokeChangedRandomCocktail(randomCocktail);
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Waiting, 0, EventManager.InvokeCocktailCompleted(randomCocktail, false);
TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime); InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime);
HoldingElapsedTime = 0f; HoldingElapsedTime = 0f;
_canInteraction = false; _canInteraction = false;

View File

@ -102,7 +102,7 @@ namespace BlueWater.Tycoons
public void Initialize() 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; var crewController = TycoonManager.Instance.CrewController;
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance, Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance,
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this))); crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this)));
@ -134,11 +134,9 @@ namespace BlueWater.Tycoons
{ {
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false; GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
} }
if (_isCrewInteracting)
{
OnInteractionCompleted?.Invoke(); OnInteractionCompleted?.Invoke();
OnInteractionCompleted = null; OnInteractionCompleted = null;
}
Destroy(gameObject); Destroy(gameObject);
} }

View File

@ -91,7 +91,21 @@ MonoBehaviour:
<Clip>k__BackingField: {fileID: 8300000, guid: 9778d97789d1ea245a9d31c2ff915bb7, type: 3} <Clip>k__BackingField: {fileID: 8300000, guid: 9778d97789d1ea245a9d31c2ff915bb7, type: 3}
- <SfxName>k__BackingField: GainGold - <SfxName>k__BackingField: GainGold
<Clip>k__BackingField: {fileID: 8300000, guid: f556df27b6add5a49979cc7a158f6110, type: 3} <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} <Clip>k__BackingField: {fileID: 8300000, guid: 3f98ecaf35492e744bb4dc943e1a39b1, type: 3}
- <SfxName>k__BackingField: SelectedButton01 - <SfxName>k__BackingField: SelectedButton01
<Clip>k__BackingField: {fileID: 8300000, guid: 80adc41542bc901439938907231717a8, type: 3} <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 <Type>k__BackingField: 1
<Amount>k__BackingField: 99999 <Amount>k__BackingField: 99999
<Sprite>k__BackingField: {fileID: 21300000, guid: a8c45767f0a3ec245a47087c7ada2b50, type: 3} <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 - <Key>k__BackingField: LiquidB
<Value>k__BackingField: <Value>k__BackingField:
<Idx>k__BackingField: LiquidB <Idx>k__BackingField: LiquidB
@ -28,7 +28,7 @@ MonoBehaviour:
<Type>k__BackingField: 1 <Type>k__BackingField: 1
<Amount>k__BackingField: 2000 <Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 216cb30d7010e95499c22161ccfde634, type: 3} <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 - <Key>k__BackingField: LiquidC
<Value>k__BackingField: <Value>k__BackingField:
<Idx>k__BackingField: LiquidC <Idx>k__BackingField: LiquidC
@ -36,7 +36,7 @@ MonoBehaviour:
<Type>k__BackingField: 1 <Type>k__BackingField: 1
<Amount>k__BackingField: 2000 <Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 404e93e2e77f60b49bbcbf1df18904d3, type: 3} <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 - <Key>k__BackingField: LiquidD
<Value>k__BackingField: <Value>k__BackingField:
<Idx>k__BackingField: LiquidD <Idx>k__BackingField: LiquidD
@ -44,7 +44,7 @@ MonoBehaviour:
<Type>k__BackingField: 1 <Type>k__BackingField: 1
<Amount>k__BackingField: 2000 <Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: a575a803ef0529e43bcbbe8ccdbb34b2, type: 3} <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 - <Key>k__BackingField: LiquidE
<Value>k__BackingField: <Value>k__BackingField:
<Idx>k__BackingField: LiquidE <Idx>k__BackingField: LiquidE
@ -52,7 +52,7 @@ MonoBehaviour:
<Type>k__BackingField: 1 <Type>k__BackingField: 1
<Amount>k__BackingField: 2000 <Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 2fc24dca6ce6ac94da0187dfce24fa3a, type: 3} <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 - <Key>k__BackingField: Garnish1
<Value>k__BackingField: <Value>k__BackingField:
<Idx>k__BackingField: Garnish1 <Idx>k__BackingField: Garnish1
@ -60,7 +60,7 @@ MonoBehaviour:
<Type>k__BackingField: 2 <Type>k__BackingField: 2
<Amount>k__BackingField: 2000 <Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: ddde5976023f9be4e83dc3d867c2dc30, type: 3} <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 - <Key>k__BackingField: Garnish2
<Value>k__BackingField: <Value>k__BackingField:
<Idx>k__BackingField: Garnish2 <Idx>k__BackingField: Garnish2
@ -68,4 +68,4 @@ MonoBehaviour:
<Type>k__BackingField: 2 <Type>k__BackingField: 2
<Amount>k__BackingField: 2000 <Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 1506abfb2ff26fa4aacdeb4b0efc9663, type: 3} <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; } public Sprite Waiting { get; private set; }
[field: SerializeField] [field: SerializeField]
public Sprite Cleaning { get; private set; } public Sprite Dirty { get; private set; }
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -92,7 +92,6 @@ namespace BlueWater.Uis
private void SetEmpty() private void SetEmpty()
{ {
SetItemSprite(null);
OrderCocktailData = null; OrderCocktailData = null;
_fillTween?.Kill(); _fillTween?.Kill();
} }
@ -131,6 +130,16 @@ namespace BlueWater.Uis
SetTween(waitTime, hurryTime, isReverse); 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) public void SetTween(float waitTime, float hurryTime, bool isReverse = false)
{ {
float startValue = isReverse ? 1f : 0f; float startValue = isReverse ? 1f : 0f;

View File

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

View File

@ -70,6 +70,16 @@ namespace BlueWater.Uis
private void Awake() 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; EventManager.OnLevelUp += UpdateManualBook;
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale; LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
} }
@ -85,16 +95,6 @@ namespace BlueWater.Uis
_openManualBookAction.performed += OnOpen; _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); uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject); EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
} }
@ -124,7 +124,7 @@ namespace BlueWater.Uis
if (_selectedCocktailRecipeButton != null) if (_selectedCocktailRecipeButton != null)
{ {
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx); _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 stringBuilder = new StringBuilder();
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description"); stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString()); _selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());
@ -229,7 +229,7 @@ namespace BlueWater.Uis
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx); _selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
_selectedCocktailImage.sprite = _selectedCocktailRecipeButton.CocktailData.Sprite; _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 stringBuilder = new StringBuilder();
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description"); stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString()); _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); private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
[SerializeField] [SerializeField]
private string _openSfxName = "RareRewardBox"; private string _openSfxName = "OpenRareRewardBox";
[SerializeField] [SerializeField]
private Button allOpenCardButton; private Button allOpenCardButton;
@ -61,8 +61,8 @@ namespace BlueWater.Uis
public override void Open() public override void Open()
{ {
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true); AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi); PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
PopupUiController.RegisterPopup(this); PopupUiController.RegisterPopup(this);
_panel.SetActive(true); _panel.SetActive(true);

View File

@ -1,7 +1,6 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using BlueWater.Npcs.Customers;
using BlueWater.Tycoons; using BlueWater.Tycoons;
using BlueWater.Utility; using BlueWater.Utility;
using UnityEngine; using UnityEngine;
@ -417,7 +416,12 @@ namespace BlueWater.Uis
_tipGainedText.text = _tipGained.ToString("N0"); _tipGainedText.text = _tipGained.ToString("N0");
_goldSpentText.text = _goldSpent.ToString("N0"); _goldSpentText.text = _goldSpent.ToString("N0");
_totalGoldText.text = $"{Utils.GetLocalizedString("TotalGold")} : {ES3.Load(SaveData.EndGold, 0):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("결과 즉시 테스트")] [Button("결과 즉시 테스트")]

View File

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

View File

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

View File

@ -1,6 +1,8 @@
using System.Collections.Generic;
using DG.Tweening; using DG.Tweening;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI; using UnityEngine.UI;
namespace BlueWater.Uis namespace BlueWater.Uis
@ -19,6 +21,16 @@ namespace BlueWater.Uis
[SerializeField] [SerializeField]
private Image _fadeImage; private Image _fadeImage;
[Title("테스트")]
[SerializeField]
private bool _isUiClickTest;
[SerializeField]
private GraphicRaycaster _raycaster;
[SerializeField]
private EventSystem _eventSystem;
#endregion #endregion
// Unity events // Unity events
@ -34,6 +46,46 @@ namespace BlueWater.Uis
EventManager.OnFadeInOut += FadeInOut; 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() private void OnDestroy()
{ {
EventManager.OnFadeInOut -= FadeInOut; EventManager.OnFadeInOut -= FadeInOut;

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 - _Glossiness: 0
- _GlossyReflections: 0 - _GlossyReflections: 0
- _ISCORNER: 0 - _ISCORNER: 0
- _IsCorner: 0 - _IsCorner: 1
- _Metallic: 0 - _Metallic: 0
- _OcclusionStrength: 1 - _OcclusionStrength: 1
- _OutlineMipLevel: 0 - _OutlineMipLevel: 0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -194,7 +194,7 @@ MonoBehaviour:
_liquidText: {fileID: 6864126811145481680} _liquidText: {fileID: 6864126811145481680}
_ratioText: {fileID: 373231903261848343} _ratioText: {fileID: 373231903261848343}
_liquidTypeSprite: {fileID: -2003835345, guid: ee35006156d5e234c9769b6b6c2f5b1f, type: 3} _liquidTypeSprite: {fileID: -2003835345, guid: ee35006156d5e234c9769b6b6c2f5b1f, type: 3}
_garnishTypeSprite: {fileID: 0} _garnishTypeSprite: {fileID: -299706786, guid: fd7c7a3fb4faf594787e004138691965, type: 3}
--- !u!1 &2225133626707228621 --- !u!1 &2225133626707228621
GameObject: GameObject:
m_ObjectHideFlags: 0 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 "y": 1.0
}, },
"m_DefaultValue": { "m_DefaultValue": {
"x": 0.0, "x": -1.0,
"y": 0.0 "y": 1.0
}, },
"m_Labels": [] "m_Labels": []
} }
@ -2924,8 +2924,8 @@
"y": 1.0 "y": 1.0
}, },
"m_DefaultValue": { "m_DefaultValue": {
"x": 0.0, "x": 1.0,
"y": 0.0 "y": 1.0
}, },
"m_Labels": [] "m_Labels": []
} }
@ -5091,7 +5091,7 @@
}, },
"m_DefaultValue": { "m_DefaultValue": {
"x": 0.0, "x": 0.0,
"y": 0.0 "y": 1.0
}, },
"m_Labels": [] "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 - _OutlineSoftness: 0
- _OutlineUVSpeedX: 0 - _OutlineUVSpeedX: 0
- _OutlineUVSpeedY: 0 - _OutlineUVSpeedY: 0
- _OutlineWidth: 0.4 - _OutlineWidth: 0.2
- _PerspectiveFilter: 0.875 - _PerspectiveFilter: 0.875
- _Reflectivity: 10 - _Reflectivity: 10
- _ScaleRatioA: 0.8 - _ScaleRatioA: 0.8

View File

@ -70,7 +70,7 @@ Material:
- _OutlineSoftness: 0 - _OutlineSoftness: 0
- _OutlineUVSpeedX: 0 - _OutlineUVSpeedX: 0
- _OutlineUVSpeedY: 0 - _OutlineUVSpeedY: 0
- _OutlineWidth: 0.4 - _OutlineWidth: 0.2
- _PerspectiveFilter: 0.875 - _PerspectiveFilter: 0.875
- _Reflectivity: 10 - _Reflectivity: 10
- _ScaleRatioA: 0.8 - _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 loadStoreDebugModeEnabled: 0
visionOSBundleVersion: 1.0 visionOSBundleVersion: 1.0
tvOSBundleVersion: 1.0 tvOSBundleVersion: 1.0
bundleVersion: 0.3.5.10 bundleVersion: 0.3.5.11
preloadedAssets: preloadedAssets:
- {fileID: -944628639613478452, guid: 4ed6540e2f7ce234888adf8deff1f241, type: 3} - {fileID: -944628639613478452, guid: 4ed6540e2f7ce234888adf8deff1f241, type: 3}
- {fileID: 11400000, guid: 112e4950c7d9b7a429feb9bb058a93a7, type: 2} - {fileID: 11400000, guid: 112e4950c7d9b7a429feb9bb058a93a7, type: 2}