Ver 0.3.0.2 업데이트

This commit is contained in:
NTG_Lenovo 2024-09-24 19:35:49 +09:00
parent 9bee0a9b74
commit 9af080fda2
36 changed files with 1155 additions and 980 deletions

File diff suppressed because it is too large Load Diff

View File

@ -18,13 +18,13 @@ MonoBehaviour:
m_Value: 1
threshold:
m_OverrideState: 1
m_Value: 1.5
m_Value: 1.3
intensity:
m_OverrideState: 1
m_Value: 2
m_Value: 50
scatter:
m_OverrideState: 0
m_Value: 0.7
m_OverrideState: 1
m_Value: 0.3
clamp:
m_OverrideState: 0
m_Value: 65472

View File

@ -81,6 +81,8 @@ namespace BlueWater.Npcs.Customers
[field: SerializeField]
public float InteractionRadius { get; private set; } = 2f;
public string InteractionMessage { get; private set; }
private IAstarAI _astarAi;
public TableSeat TableSeat { get; private set; }
public ItemData ItemData { get; private set; }

View File

@ -9,10 +9,17 @@ namespace BlueWater
// Global events
#region Global events
// Ui
public static Action<float, float, Color?, float> FadeInOut;
// Player
public static Action<int> OnMaxHealthChanged;
public static Action<int> OnHealthChanged;
public static Action OnDead;
// 상호작용
public static Action<string> OnShowInteractionUi;
public static Action OnHideInteractionUi;
#endregion

View File

@ -1,4 +1,5 @@
using UnityEngine;
using System;
using UnityEngine;
namespace BlueWater.Interfaces
{
@ -9,6 +10,7 @@ namespace BlueWater.Interfaces
Transform InteractionUi { get; }
bool EnableInteraction { get; }
float InteractionRadius { get; }
string InteractionMessage { get; }
void Interaction();
void CancelInteraction();

View File

@ -5,6 +5,13 @@ using UnityEngine;
namespace BlueWater.Items
{
public enum LiquidType
{
None = 0,
Liquid = 1,
Garnish = 2
}
[Serializable]
public class LiquidData : IIdx
{
@ -15,6 +22,9 @@ namespace BlueWater.Items
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; }
[field: SerializeField, Tooltip("종류"), BoxGroup("Json 데이터 영역")]
public LiquidType Type { get; set; }
[field: SerializeField, Tooltip("총량"), BoxGroup("Json 데이터 영역")]
public int Amount { get; set; }

View File

@ -38,6 +38,8 @@ namespace BlueWater.Items
[field: SerializeField]
public float InteractionRadius { get; private set; } = 2f;
public string InteractionMessage { get; private set; }
[SerializeField]
protected bool UseAutoDestroy = true;
@ -212,16 +214,19 @@ namespace BlueWater.Items
public void ShowInteractionUi()
{
if (!InteractionCanvas) return;
InteractionCanvas.gameObject.SetActive(true);
InteractionMessage = $"{ItemData.Name} 줍기";
EventManager.OnShowInteractionUi?.Invoke(InteractionMessage);
// if (!InteractionCanvas) return;
//
// InteractionCanvas.gameObject.SetActive(true);
}
public void HideInteractionUi()
{
if (!InteractionCanvas) return;
InteractionCanvas.gameObject.SetActive(false);
EventManager.OnHideInteractionUi?.Invoke();
// if (!InteractionCanvas) return;
//
// InteractionCanvas.gameObject.SetActive(false);
}
private void DestroySelf() => Destroy(gameObject);

View File

@ -1,52 +0,0 @@
using UnityEngine;
using UnityEngine.Pool;
namespace BlueWater
{
public class Liquid : MonoBehaviour
{
[SerializeField]
private SpriteRenderer _spriteRenderer;
[SerializeField]
private Rigidbody2D _rigidbody2D;
[SerializeField, Range(0f, 2f)]
private float _distanceThreshold = 0.5f;
private IObjectPool<Liquid> _managedPool;
private LiquidController _liquidController;
private Collider2D _targetCollider;
public void SetManagedPool(IObjectPool<Liquid> pool) => _managedPool = pool;
public void Destroy() => _managedPool.Release(this);
public void Initialize(LiquidController liquidController, Collider2D targetCollider, Color color, Vector3 pushForce)
{
_liquidController = liquidController;
_targetCollider = targetCollider;
_spriteRenderer.color = color;
_rigidbody2D.linearVelocity = Vector2.zero;
_rigidbody2D.AddForce(pushForce, ForceMode2D.Impulse);
}
private void Update()
{
if (!_targetCollider) return;
var closestPoint = _targetCollider.ClosestPoint(transform.position);
var distance = Vector2.Distance(transform.position, closestPoint);
if (distance < _distanceThreshold)
{
OnReached();
}
}
private void OnReached()
{
Destroy();
_liquidController.OnLiquidReached();
}
}
}

View File

@ -29,6 +29,8 @@ namespace BlueWater.Tycoons
private Material _instanceMaterial;
public event Action<int> OnAmountChanged;
public static event Action<Barrel> OnBarrelInteracted;
public static event Action OnBarrelCancelInteracted;
// Hashes
private static readonly int LiquidAmountHash = Shader.PropertyToID("_LiquidAmount");
@ -47,6 +49,7 @@ namespace BlueWater.Tycoons
{
_liquidData = ItemManager.Instance.LiquidDataSo.GetDataByIdx(_idx);
InteractionMessage = $"{_liquidData.Name} 따르기";
_liquidImage.sprite = _liquidData.Sprite;
_instanceMaterial.SetColor(LiquidColorHash, _liquidData.Color * _colorIntensity);
SetCurrentAmount(_liquidData.GetMaxAmount());
@ -54,12 +57,14 @@ namespace BlueWater.Tycoons
public override void Interaction()
{
_liquidController.ActiveIsPouring(this);
OnBarrelInteracted?.Invoke(this);
//_liquidController.ActiveIsPouring(this);
}
public override void CancelInteraction()
{
_liquidController.InActiveIsPouring();
OnBarrelCancelInteracted?.Invoke();
//_liquidController.InActiveIsPouring();
}
/// <summary>
@ -67,7 +72,7 @@ namespace BlueWater.Tycoons
/// </summary>
public override bool CanInteraction()
{
return !CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpItem();
return !CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpItem() && CanConsume(1);
}
public bool CanConsume(int amount)

View File

@ -1,3 +1,4 @@
using System;
using BlueWater.Interfaces;
using BlueWater.Players.Tycoons;
using Sirenix.OdinInspector;
@ -29,7 +30,10 @@ namespace BlueWater.Tycoons
[field: SerializeField, BoxGroup("변수")]
public float InteractionRadius { get; private set; } = 2f;
[field: SerializeField, BoxGroup("변수")]
public string InteractionMessage { get; protected set; }
[Title("실시간 데이터")]
[SerializeField]
protected bool IsOpened;
@ -100,18 +104,21 @@ namespace BlueWater.Tycoons
public virtual void ShowInteractionUi()
{
if (!InteractionCanvas) return;
// if (!InteractionCanvas) return;
//
// InteractionCanvas.gameObject.SetActive(true);
InteractionCanvas.gameObject.SetActive(true);
VisualLook.material = OutlineMaterial;
EventManager.OnShowInteractionUi?.Invoke(InteractionMessage);
}
public virtual void HideInteractionUi()
{
if (!InteractionCanvas) return;
InteractionCanvas.gameObject.SetActive(false);
// if (!InteractionCanvas) return;
//
// InteractionCanvas.gameObject.SetActive(false);
VisualLook.material = OriginalMaterial;
EventManager.OnHideInteractionUi?.Invoke();
}
protected void RegisterPlayerInteraction()

View File

@ -12,6 +12,7 @@ namespace BlueWater.Tycoons
[SerializeField]
private BalloonUi _balloonUi;
// 서빙 테이블 기준 아이템이 있는지 없는지
private IPickup _currentPickupItem;
private Material _originalCocktailGlassMaterial;
@ -56,17 +57,16 @@ namespace BlueWater.Tycoons
public override void ShowInteractionUi()
{
if (!InteractionCanvas) return;
InteractionMessage = _currentPickupItem != null ? "음료 들기" : "음료 내려놓기";
base.ShowInteractionUi();
VisualLook.material = OutlineMaterial;
_cocktailGlassImage.material = OutlineMaterial;
}
public override void HideInteractionUi()
{
if (!InteractionCanvas) return;
base.HideInteractionUi();
VisualLook.material = OriginalMaterial;
_cocktailGlassImage.material = _originalCocktailGlassMaterial;
}
}

View File

@ -17,6 +17,7 @@ MonoBehaviour:
<Value>k__BackingField:
<Idx>k__BackingField: LiquidA
<Name>k__BackingField: "\uC220 \uC6D0\uC561A"
<Type>k__BackingField: 1
<Amount>k__BackingField: 99999
<Sprite>k__BackingField: {fileID: 21300000, guid: a8c45767f0a3ec245a47087c7ada2b50, type: 3}
<Color>k__BackingField: {r: 1, g: 0, b: 0, a: 1}
@ -24,6 +25,7 @@ MonoBehaviour:
<Value>k__BackingField:
<Idx>k__BackingField: LiquidB
<Name>k__BackingField: "\uC220 \uC6D0\uC561B"
<Type>k__BackingField: 1
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 216cb30d7010e95499c22161ccfde634, type: 3}
<Color>k__BackingField: {r: 1, g: 0.5019608, b: 0, a: 1}
@ -31,6 +33,7 @@ MonoBehaviour:
<Value>k__BackingField:
<Idx>k__BackingField: LiquidC
<Name>k__BackingField: "\uC220 \uC6D0\uC561C"
<Type>k__BackingField: 1
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: 404e93e2e77f60b49bbcbf1df18904d3, type: 3}
<Color>k__BackingField: {r: 1, g: 1, b: 0, a: 1}
@ -38,6 +41,7 @@ MonoBehaviour:
<Value>k__BackingField:
<Idx>k__BackingField: LiquidD
<Name>k__BackingField: "\uC220 \uC6D0\uC561D"
<Type>k__BackingField: 1
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 21300000, guid: a575a803ef0529e43bcbbe8ccdbb34b2, type: 3}
<Color>k__BackingField: {r: 0, g: 1, b: 0, a: 1}
@ -45,6 +49,7 @@ MonoBehaviour:
<Value>k__BackingField:
<Idx>k__BackingField: LiquidE
<Name>k__BackingField: "\uC220 \uC6D0\uC561E"
<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: 1, a: 1}
@ -52,13 +57,15 @@ MonoBehaviour:
<Value>k__BackingField:
<Idx>k__BackingField: Garnish1
<Name>k__BackingField: "\uAC00\uB098\uC26C1"
<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
<Name>k__BackingField: "\uAC00\uB098\uC26C2"
<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

@ -0,0 +1,32 @@
using UnityEngine;
using UnityEngine.Pool;
namespace BlueWater.Tycoons
{
public class Garnish : LiquidIngredient
{
private IObjectPool<Garnish> _managedPool;
public void Initialize(Vector3 spawnPosition, Quaternion rotation, Collider2D targetCollider, Vector3 pushForce, Sprite sprite)
{
transform.position = spawnPosition;
transform.rotation = rotation;
TargetCollider = targetCollider;
SpriteRenderer.sprite = sprite;
Rigidbody2D.linearVelocity = Vector2.zero;
CanInteraction = true;
gameObject.SetActive(true);
Rigidbody2D.AddForce(pushForce, ForceMode2D.Impulse);
}
public void SetManagedPool(IObjectPool<Garnish> pool) => _managedPool = pool;
public void Destroy() => _managedPool.Release(this);
public override void ReachedObject()
{
CanInteraction = false;
Destroy();
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3abf680e4b23d8b4f9c511a1ca85eead

View File

@ -0,0 +1,32 @@
using UnityEngine;
using UnityEngine.Pool;
namespace BlueWater.Tycoons
{
public class Liquid : LiquidIngredient
{
private IObjectPool<Liquid> _managedPool;
public void Initialize(Vector3 spawnPosition, Quaternion rotation, Collider2D targetCollider, Vector3 pushForce, Color color)
{
transform.position = spawnPosition;
transform.rotation = rotation;
TargetCollider = targetCollider;
SpriteRenderer.color = color;
Rigidbody2D.linearVelocity = Vector2.zero;
CanInteraction = true;
gameObject.SetActive(true);
Rigidbody2D.AddForce(pushForce, ForceMode2D.Impulse);
}
public void SetManagedPool(IObjectPool<Liquid> pool) => _managedPool = pool;
public void Destroy() => _managedPool.Release(this);
public override void ReachedObject()
{
CanInteraction = false;
Destroy();
}
}
}

View File

@ -1,3 +1,4 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
@ -54,9 +55,12 @@ namespace BlueWater
[SerializeField]
private float _pushPower;
[Title("액체")]
[SerializeField, Required, Tooltip(" 프리팹")]
[Title("Liquid / Garnish")]
[SerializeField, Required, Tooltip("액 프리팹")]
private Liquid _liquidObject;
[SerializeField, Required, Tooltip("가니쉬 프리팹")]
private Garnish _garnishObject;
[SerializeField, Tooltip("초당 생성되는 액체 수(ml)")]
private int _liquidsPerSecond = 80;
@ -77,13 +81,15 @@ namespace BlueWater
[Title("패널")]
[SerializeField]
private float _moveDuration = 0.5f;
[Title("실시간 정보")]
[SerializeField]
private Vector3 endPosition = new(-230f, 23f, 0f);
private Barrel _currentBarrel;
private IObjectPool<Liquid> _objectPool;
private List<Liquid> _activeLiquids = new();
private IObjectPool<Liquid> _liquidObjectPool;
private IObjectPool<Garnish> _garnishObjectPool;
private List<Liquid> _activeLiquidDatas = new();
private List<Garnish> _activeGarnishDatas = new();
private Dictionary<LiquidData, int> _liquidDataCounts = new(7);
private Material _instanceMaterial;
private Tween _showTween;
@ -110,12 +116,13 @@ namespace BlueWater
private void Awake()
{
_objectPool = new ObjectPool<Liquid>(CreateObject, OnGetObject, OnReleaseObject, OnDestroyObject, maxSize: _objectPoolCount);
_liquidObjectPool = new ObjectPool<Liquid>(CreateLiquidObject, OnGetLiquidObject, OnReleaseLiquidObject, OnDestroyLiquidObject, maxSize: _objectPoolCount);
_garnishObjectPool = new ObjectPool<Garnish>(CreateGarnishObject, OnGetGarnishObject, OnReleaseGarnishObject, OnDestroyGarnishObject, maxSize: _objectPoolCount);
_hideTween = _liquidPanel.transform.DOMoveX(-150f, _moveDuration).Pause()
_hideTween = _liquidPanel.transform.DOMoveX(endPosition.x + 100f, _moveDuration).Pause()
.SetAutoKill(false);
_showTween = _liquidPanel.transform.DOMoveX(-250f, _moveDuration).Pause()
_showTween = _liquidPanel.transform.DOMoveX(endPosition.x, _moveDuration).Pause()
.SetAutoKill(false);
}
@ -125,6 +132,9 @@ namespace BlueWater
EventManager.OnLiquidRegionExited += HidePanel;
EventManager.OnCocktailDiscarded += ReleaseAllObject;
EventManager.OnPlaceOnServingTable += ReleaseAllObject;
LiquidIngredient.OnReachedTarget += OnTargetReached;
Barrel.OnBarrelInteracted += HandleBarrelInteraction;
Barrel.OnBarrelCancelInteracted += HandleBarrelCancelInteraction;
_instanceMaterial = Instantiate(_liquidRenderer.material);
_liquidRenderer.material = _instanceMaterial;
@ -143,12 +153,7 @@ namespace BlueWater
{
if (_isPouring)
{
// 현재 술의 재고가 없을 때
if (!_currentBarrel.CanConsume(1))
{
InActiveIsPouring();
return;
}
var currentBarrel = _currentBarrel;
// 술이 완성되었을 때
if (_instanceLiquidCount >= _maxLiquidCount)
@ -159,14 +164,27 @@ namespace BlueWater
if (Time.time - _startTime >= _timeInterval)
{
_objectPool.Get();
if (!_liquidDataCounts.TryAdd(_currentBarrel.GetLiquidData(), 1))
switch (currentBarrel.GetLiquidData().Type)
{
_liquidDataCounts[_currentBarrel.GetLiquidData()] += 1;
case LiquidType.None:
Debug.LogError("원액 종류 None 오류");
break;
case LiquidType.Liquid:
_liquidObjectPool.Get();
break;
case LiquidType.Garnish:
_garnishObjectPool.Get();
break;
default:
throw new ArgumentOutOfRangeException();
}
_currentBarrel.Consume(1);
if (!_liquidDataCounts.TryAdd(currentBarrel.GetLiquidData(), 1))
{
_liquidDataCounts[currentBarrel.GetLiquidData()] += 1;
}
currentBarrel.Consume(1);
_startTime = Time.time;
}
}
@ -184,6 +202,10 @@ namespace BlueWater
EventManager.OnLiquidRegionExited -= HidePanel;
EventManager.OnCocktailDiscarded -= ReleaseAllObject;
EventManager.OnPlaceOnServingTable -= ReleaseAllObject;
LiquidIngredient.OnReachedTarget -= OnTargetReached;
Barrel.OnBarrelInteracted -= HandleBarrelInteraction;
Barrel.OnBarrelCancelInteracted -= HandleBarrelCancelInteraction;
}
#endregion
@ -191,34 +213,60 @@ namespace BlueWater
// Object pooling system
#region Object pooling system
private Liquid CreateObject()
// 원액 오브젝트 풀
private Liquid CreateLiquidObject()
{
var instance = Instantiate(_liquidObject, _spawnTransform.position, Quaternion.identity, _spawnLocation);
instance.SetManagedPool(_objectPool);
instance.SetManagedPool(_liquidObjectPool);
return instance;
}
private void OnGetObject(Liquid liquid)
private void OnGetLiquidObject(Liquid liquid)
{
liquid.transform.position = _spawnTransform.position;
liquid.transform.rotation = Quaternion.identity;
liquid.gameObject.SetActive(true);
_instanceLiquidCount++;
var liquidColor = _currentBarrel.GetLiquidData().Color;
liquid.Initialize(this, _reachedCollider, liquidColor, _pushDirection.normalized * _pushPower);
_activeLiquids.Add(liquid);
liquid.Initialize(_spawnTransform.position, Quaternion.identity, _reachedCollider, _pushDirection.normalized * _pushPower, liquidColor);
_activeLiquidDatas.Add(liquid);
}
private void OnReleaseObject(Liquid liquid)
private void OnReleaseLiquidObject(Liquid liquid)
{
liquid.gameObject.SetActive(false);
_activeLiquids.Remove(liquid);
_activeLiquidDatas.Remove(liquid);
}
private void OnDestroyObject(Liquid liquid)
private void OnDestroyLiquidObject(Liquid liquid)
{
Destroy(liquid.gameObject);
_activeLiquids.Remove(liquid);
_activeLiquidDatas.Remove(liquid);
}
// 가니쉬 오브젝트 풀
private Garnish CreateGarnishObject()
{
var instance = Instantiate(_garnishObject, _spawnTransform.position, Quaternion.identity, _spawnLocation);
instance.SetManagedPool(_garnishObjectPool);
return instance;
}
private void OnGetGarnishObject(Garnish garnish)
{
_instanceLiquidCount++;
var liquidSprite = _currentBarrel.GetLiquidData().Sprite;
garnish.Initialize(_spawnTransform.position, Quaternion.identity, _reachedCollider, _pushDirection.normalized * _pushPower, liquidSprite);
_activeGarnishDatas.Add(garnish);
}
private void OnReleaseGarnishObject(Garnish garnish)
{
garnish.gameObject.SetActive(false);
_activeGarnishDatas.Remove(garnish);
}
private void OnDestroyGarnishObject(Garnish garnish)
{
Destroy(garnish.gameObject);
_activeGarnishDatas.Remove(garnish);
}
#endregion
@ -232,9 +280,9 @@ namespace BlueWater
public void ReleaseAllObject()
{
// 리스트 삭제는 뒤에서부터 해야 오류가 없음
for (var i = _activeLiquids.Count - 1; i >= 0; i--)
for (var i = _activeLiquidDatas.Count - 1; i >= 0; i--)
{
_activeLiquids[i].Destroy();
_activeLiquidDatas[i].Destroy();
}
_liquidDataCounts.Clear();
@ -243,8 +291,8 @@ namespace BlueWater
SetCurrentAmount(0f);
HidePanel();
}
public void ActiveIsPouring(Barrel barrel)
public void HandleBarrelInteraction(Barrel barrel)
{
_currentBarrel = barrel;
if (_instanceLiquidCount == 0)
@ -254,7 +302,7 @@ namespace BlueWater
_amountText.enabled = true;
_completeCocktailImage.enabled = false;
_completeText.enabled = false;
_currentMixedColor = _currentBarrel.GetLiquidData().Color;
_currentMixedColor = barrel.GetLiquidData().Color;
_instanceMaterial.SetColor(LiquidColorHash, _currentMixedColor * _colorIntensity);
EventManager.OnCocktailStarted?.Invoke();
}
@ -262,12 +310,36 @@ namespace BlueWater
_startTime = Time.time;
_isPouring = true;
}
public void InActiveIsPouring()
public void HandleBarrelCancelInteraction()
{
_isPouring = false;
}
// public void ActiveIsPouring(Barrel barrel)
// {
// _currentBarrel = barrel;
// if (_instanceLiquidCount == 0)
// {
// ShowPanelFast();
// _shaker.SetActive(true);
// _amountText.enabled = true;
// _completeCocktailImage.enabled = false;
// _completeText.enabled = false;
// _currentMixedColor = _currentBarrel.GetLiquidData().Color;
// _instanceMaterial.SetColor(LiquidColorHash, _currentMixedColor * _colorIntensity);
// EventManager.OnCocktailStarted?.Invoke();
// }
//
// _startTime = Time.time;
// _isPouring = true;
// }
// public void InActiveIsPouring()
// {
// _isPouring = false;
// }
private void SetCurrentAmount(float value)
{
_currentLiquidAmount = value;
@ -291,7 +363,7 @@ namespace BlueWater
/// </summary>
private IEnumerator CompleteCocktail()
{
InActiveIsPouring();
HandleBarrelCancelInteraction();
yield return new WaitUntil(() => _currentLiquidAmount >= _maxLiquidCount);
@ -405,7 +477,7 @@ namespace BlueWater
/// <summary>
/// 액체가 특정 오브젝트에 충돌했을 때, 실행해야하는 과정
/// </summary>
public void OnLiquidReached()
public void OnTargetReached()
{
_liquidReachedTime = Time.time;
SetCurrentAmount(++_currentLiquidAmount);
@ -415,7 +487,7 @@ namespace BlueWater
if (liquidAmount >= 1f)
{
InActiveIsPouring();
HandleBarrelCancelInteraction();
}
}
@ -423,7 +495,7 @@ namespace BlueWater
{
if (_isShowingPanel) return;
_liquidPanel.transform.position = new Vector3(-250f, 0f, 0f);
_liquidPanel.transform.position = endPosition;
_liquidPanel.SetActive(true);
_isShowingPanel = true;
_hideTween.Pause();

View File

@ -0,0 +1,41 @@
using System;
using UnityEngine;
using UnityEngine.Serialization;
namespace BlueWater.Tycoons
{
public abstract class LiquidIngredient : MonoBehaviour
{
[FormerlySerializedAs("_spriteRenderer")]
[SerializeField]
protected SpriteRenderer SpriteRenderer;
[FormerlySerializedAs("_rigidbody2D")]
[SerializeField]
protected Rigidbody2D Rigidbody2D;
[SerializeField, Range(0f, 2f)]
protected float _distanceThreshold = 0.5f;
protected bool CanInteraction;
protected Collider2D TargetCollider;
public static event Action OnReachedTarget;
private void Update()
{
if (!TargetCollider || !CanInteraction) return;
var closestPoint = TargetCollider.ClosestPoint(transform.position);
var distance = Vector2.Distance(transform.position, closestPoint);
if (distance < _distanceThreshold)
{
OnReachedTarget?.Invoke();
ReachedObject();
}
}
public abstract void ReachedObject();
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 277380dc389c51d429f006371e4d246f

View File

@ -5,8 +5,6 @@ using BlueWater.Utility;
using Sirenix.OdinInspector;
using Unity.Cinemachine;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
using UnityEngine.Serialization;
namespace BlueWater
@ -14,7 +12,7 @@ namespace BlueWater
public enum TycoonCameraType
{
Base = 0,
Bar
Storage
}
public class TycoonCameraManager : Singleton<TycoonCameraManager>
@ -26,10 +24,6 @@ namespace BlueWater
[field: SerializeField]
public Camera MainCamera { get; private set; }
[field: SerializeField]
public Camera UiCamera { get; private set; }
[FormerlySerializedAs("_cinemachineCameras")]
[SerializeField]
private Transform cameraLocation;
@ -37,15 +31,12 @@ namespace BlueWater
public CinemachineCamera BaseCamera { get; private set; }
[field: SerializeField]
public CinemachineCamera BarCamera { get; private set; }
public CinemachineCamera StorageCamera { get; private set; }
// Variables
private CinemachineBrain _cinemachineBrain;
private List<CinemachineCamera> _cinemachineCameras = new();
private Vignette _vignette;
private Coroutine _lowHpVignetteCoroutine;
#endregion
// Unity events
@ -82,16 +73,12 @@ namespace BlueWater
MainCamera = GetComponent<Camera>();
_cinemachineBrain = GetComponent<CinemachineBrain>();
//UiCamera = MainCamera.transform.Find("UiCamera").GetComponent<Camera>();
BaseCamera = cameraLocation.Find("BaseCamera").GetComponent<CinemachineCamera>();
BarCamera = cameraLocation.Find("BarCamera").GetComponent<CinemachineCamera>();
_vignette = GetEffect<Vignette>();
_vignette.active = false;
StorageCamera = cameraLocation.Find("StorageCamera").GetComponent<CinemachineCamera>();
_cinemachineCameras.Add(BaseCamera);
_cinemachineCameras.Add(BarCamera);
_cinemachineCameras.Add(StorageCamera);
SetMainCamera(TycoonCameraType.Base);
}
@ -117,7 +104,7 @@ namespace BlueWater
var newMainCamera = tycoonCameraType switch
{
TycoonCameraType.Base => BaseCamera,
TycoonCameraType.Bar => BarCamera,
TycoonCameraType.Storage => StorageCamera,
_ => throw new ArgumentOutOfRangeException(nameof(tycoonCameraType), tycoonCameraType, null)
};
@ -129,68 +116,7 @@ namespace BlueWater
//_cinemachineBrain.DefaultBlend.Style = styles;
newMainCamera.Priority = 1;
}
#endregion
// PostProcessing
#region PostProcessing
public void ToggleEffect<T>(bool value) where T : VolumeComponent
{
var effect = GetEffect<T>();
if (effect == null)
{
print(typeof(T) + "효과가 없습니다.");
return;
}
effect.active = value;
}
private T GetEffect<T>() where T : VolumeComponent
{
var postProcessVolume = FindAnyObjectByType<Volume>();
if (postProcessVolume == null)
{
print("Volume 컴포넌트를 가진 오브젝트가 없습니다.");
return null;
}
postProcessVolume.profile.TryGet(out T effect);
return effect;
}
public void LowHpVignette()
{
_lowHpVignetteCoroutine ??= StartCoroutine(LowHpVignetteCoroutine());
}
public void DefaultHpVignette()
{
Utils.EndUniqueCoroutine(this, ref _lowHpVignetteCoroutine);
_vignette.active = false;
}
private IEnumerator LowHpVignetteCoroutine()
{
var startValue = 0.2f;
var endValue = 0.3f;
var time = 0f;
_vignette.intensity.value = startValue;
_vignette.active = true;
while (true)
{
time += Time.deltaTime * 2f;
_vignette.intensity.value = Mathf.Lerp(startValue, endValue, time);
if (time >= 1f)
{
(startValue, endValue) = (endValue, startValue);
time = 0f;
}
yield return null;
}
}
#endregion
}
}

View File

@ -0,0 +1,40 @@
using TMPro;
using UnityEngine;
namespace BlueWater.Uis
{
public class InteractionUi : MonoBehaviour
{
[SerializeField]
private GameObject _panel;
[SerializeField]
private TMP_Text _keyText;
[SerializeField]
private TMP_Text _interactionText;
private void Start()
{
EventManager.OnShowInteractionUi += ShowUi;
EventManager.OnHideInteractionUi += HideUi;
}
private void OnDestroy()
{
EventManager.OnShowInteractionUi -= ShowUi;
EventManager.OnHideInteractionUi -= HideUi;
}
public void ShowUi(string message)
{
_interactionText.text = message;
_panel.SetActive(true);
}
public void HideUi()
{
_panel.SetActive(false);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 10de0d138ea1afc4f9eaf86af55076ff

View File

@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4182144982868500803
--- !u!1 &8577553974540900224
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -8,39 +8,40 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7412895653495447626}
- component: {fileID: 2516316322156046459}
- component: {fileID: 8452260105535798107}
- component: {fileID: 8043191264785836122}
m_Layer: 8
m_Name: Ice
- component: {fileID: 6150662252133649813}
- component: {fileID: 3772201455671009312}
- component: {fileID: 7204670366666436681}
- component: {fileID: 3470010340248184897}
- component: {fileID: 5803694563079548352}
m_Layer: 18
m_Name: GarnishObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7412895653495447626
--- !u!4 &6150662252133649813
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4182144982868500803}
m_GameObject: {fileID: 8577553974540900224}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 330.7, y: 17.7, z: 0}
m_LocalScale: {x: 5, y: 5, z: 5}
m_LocalPosition: {x: 296.1, y: 16.4, z: 0}
m_LocalScale: {x: 3, y: 3, z: 3}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2516316322156046459
--- !u!212 &3772201455671009312
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4182144982868500803}
m_GameObject: {fileID: 8577553974540900224}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
@ -75,54 +76,27 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 2
m_Sprite: {fileID: 21300000, guid: 5317214c6c3a1d74c97c68e6ba525593, type: 3}
m_SortingLayerID: -403788685
m_SortingLayer: 1
m_SortingOrder: 12
m_Sprite: {fileID: 21300000, guid: ddde5976023f9be4e83dc3d867c2dc30, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_Size: {x: 1.4, y: 1.4}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!50 &8452260105535798107
Rigidbody2D:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4182144982868500803}
m_BodyType: 0
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 50
m_LinearDamping: 0
m_AngularDamping: 0.05
m_GravityScale: 3
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 0
--- !u!58 &8043191264785836122
--- !u!58 &7204670366666436681
CircleCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4182144982868500803}
m_GameObject: {fileID: 8577553974540900224}
m_Enabled: 1
serializedVersion: 3
m_Density: 1
@ -151,4 +125,46 @@ CircleCollider2D:
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0, y: 0}
m_Radius: 0.45
m_Radius: 0.2
--- !u!50 &3470010340248184897
Rigidbody2D:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8577553974540900224}
m_BodyType: 0
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 10
m_LinearDamping: 0
m_AngularDamping: 0
m_GravityScale: 3
m_Material: {fileID: 6200000, guid: 98be3277bd162b947a951461d0862c30, type: 2}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 0
--- !u!114 &5803694563079548352
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8577553974540900224}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3abf680e4b23d8b4f9c511a1ca85eead, type: 3}
m_Name:
m_EditorClassIdentifier:
SpriteRenderer: {fileID: 3772201455671009312}
Rigidbody2D: {fileID: 3470010340248184897}
_distanceThreshold: 0.5

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c5e5fa01b84c9f64ba05b7c9f481acc1
guid: f051d09e1e3043d4285ae8e0ff4c4f12
PrefabImporter:
externalObjects: {}
userData:

View File

@ -496,42 +496,6 @@ Transform:
- {fileID: 3381794055646013358}
m_Father: {fileID: 2700294535905665279}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &3683421095321577965
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7679049083161624399}
m_Layer: 0
m_Name: Barrels
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &7679049083161624399
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3683421095321577965}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8405745420066320434}
- {fileID: 8717973323817189148}
- {fileID: 766412411975822558}
- {fileID: 2633566611002910380}
- {fileID: 2976063118053674263}
m_Father: {fileID: 1402113424960589398}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &3763383041433937158
GameObject:
m_ObjectHideFlags: 0
@ -2683,7 +2647,6 @@ Transform:
m_Children:
- {fileID: 1582116343231843844}
- {fileID: 1829148020791446333}
- {fileID: 7679049083161624399}
- {fileID: 4798925548635759970}
- {fileID: 3032369304281183765}
- {fileID: 1031605920973182729}
@ -3070,76 +3033,6 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1061695247072719575, guid: d4d2c09313763694785f13d2ff8c1303, type: 3}
m_PrefabInstance: {fileID: 14371358608898358}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &117039659876036668
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 7679049083161624399}
m_Modifications:
- target: {fileID: 223172209862223209, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: _idx
value: LiquidC
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.x
value: -10
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.z
value: -1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Name
value: LiquidC
objectReference: {fileID: 0}
- target: {fileID: 6817574259189873408, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: 404e93e2e77f60b49bbcbf1df18904d3, type: 3}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
--- !u!4 &766412411975822558 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
m_PrefabInstance: {fileID: 117039659876036668}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &128984391524895884
PrefabInstance:
m_ObjectHideFlags: 0
@ -3260,7 +3153,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 224465767a13abb44b0d3adb16ca76c1, type: 3}
propertyPath: m_Name
value: LiquidBarrel01 (4)
value: Garnish1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@ -3466,7 +3359,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 224465767a13abb44b0d3adb16ca76c1, type: 3}
propertyPath: m_Name
value: LiquidBarrel01 (2)
value: LiquidD
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@ -3850,7 +3743,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: a95c8459c64ddc0429e25ed5876f2120, type: 3}
propertyPath: m_Name
value: LiquidStatue
value: LiquidA
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@ -3862,76 +3755,6 @@ Transform:
m_CorrespondingSourceObject: {fileID: 809828747251277026, guid: a95c8459c64ddc0429e25ed5876f2120, type: 3}
m_PrefabInstance: {fileID: 2014178616186210549}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2481500261763568117
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 7679049083161624399}
m_Modifications:
- target: {fileID: 223172209862223209, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: _idx
value: LiquidE
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.x
value: -7
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.z
value: -1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Name
value: LiquidE
objectReference: {fileID: 0}
- target: {fileID: 6817574259189873408, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: 2fc24dca6ce6ac94da0187dfce24fa3a, type: 3}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
--- !u!4 &2976063118053674263 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
m_PrefabInstance: {fileID: 2481500261763568117}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2688904294653212210
PrefabInstance:
m_ObjectHideFlags: 0
@ -4184,76 +4007,6 @@ Transform:
m_CorrespondingSourceObject: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
m_PrefabInstance: {fileID: 3244279087710839214}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &3436624839453424206
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 7679049083161624399}
m_Modifications:
- target: {fileID: 223172209862223209, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: _idx
value: LiquidD
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.x
value: -8.5
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.z
value: -1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Name
value: LiquidD
objectReference: {fileID: 0}
- target: {fileID: 6817574259189873408, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: a575a803ef0529e43bcbbe8ccdbb34b2, type: 3}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
--- !u!4 &2633566611002910380 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
m_PrefabInstance: {fileID: 3436624839453424206}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &4008788609714014428
PrefabInstance:
m_ObjectHideFlags: 0
@ -4902,7 +4655,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 224465767a13abb44b0d3adb16ca76c1, type: 3}
propertyPath: m_Name
value: LiquidBarrel01 (1)
value: LiquidC
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@ -5294,7 +5047,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 224465767a13abb44b0d3adb16ca76c1, type: 3}
propertyPath: m_Name
value: LiquidBarrel01
value: LiquidB
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@ -5818,7 +5571,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 224465767a13abb44b0d3adb16ca76c1, type: 3}
propertyPath: m_Name
value: LiquidBarrel01 (3)
value: LiquidE
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@ -6082,7 +5835,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 224465767a13abb44b0d3adb16ca76c1, type: 3}
propertyPath: m_Name
value: LiquidBarrel01 (5)
value: Garnish2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@ -6156,76 +5909,6 @@ Transform:
m_CorrespondingSourceObject: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
m_PrefabInstance: {fileID: 8043172050540613190}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &8341054054180037630
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 7679049083161624399}
m_Modifications:
- target: {fileID: 223172209862223209, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: _idx
value: LiquidB
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.x
value: -11.5
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.z
value: -1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Name
value: LiquidB
objectReference: {fileID: 0}
- target: {fileID: 6817574259189873408, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: 216cb30d7010e95499c22161ccfde634, type: 3}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
--- !u!4 &8717973323817189148 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
m_PrefabInstance: {fileID: 8341054054180037630}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &8371898322285731839
PrefabInstance:
m_ObjectHideFlags: 0
@ -6436,73 +6119,3 @@ Transform:
m_CorrespondingSourceObject: {fileID: 809828747251277026, guid: 8d99c5b5242b8da41ba9b1410a70cd1d, type: 3}
m_PrefabInstance: {fileID: 8672589958834113685}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &9194699079792504016
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 7679049083161624399}
m_Modifications:
- target: {fileID: 223172209862223209, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: _idx
value: LiquidA
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.x
value: -13
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalPosition.z
value: -1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5897095096647521783, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Name
value: LiquidA
objectReference: {fileID: 0}
- target: {fileID: 6817574259189873408, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: a8c45767f0a3ec245a47087c7ada2b50, type: 3}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
--- !u!4 &8405745420066320434 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 809828747251277026, guid: 7787d3d2cd258714d816e70592966cb3, type: 3}
m_PrefabInstance: {fileID: 9194699079792504016}
m_PrefabAsset: {fileID: 0}

View File

@ -103,7 +103,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!4 &3246572212746126634
Transform:
m_ObjectHideFlags: 0
@ -163,7 +163,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 5
m_Sprite: {fileID: 21300000, guid: 9f7d82fbc664fbb4d98842fc46db319d, type: 3}
m_Sprite: {fileID: 21300000, guid: dc898802dffd29648918e86867a22ee9, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
@ -190,10 +190,6 @@ PrefabInstance:
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2234961990804426782, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Size.x
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 2301048832536013177, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalScale.x
value: 1
@ -213,7 +209,7 @@ PrefabInstance:
- target: {fileID: 3580758810857167321, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: 76cc7f947fec33b488919688cf130e73, type: 3}
objectReference: {fileID: 21300000, guid: dc898802dffd29648918e86867a22ee9, type: 3}
- target: {fileID: 3580758810857167321, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_WasSpriteAssigned
value: 1
@ -222,6 +218,10 @@ PrefabInstance:
propertyPath: m_Name
value: LiquidBarrel01
objectReference: {fileID: 0}
- target: {fileID: 4011269187381704965, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalPosition.x
value: -0.17
objectReference: {fileID: 0}
- target: {fileID: 4011269187381704965, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalPosition.z
value: 0
@ -254,14 +254,6 @@ PrefabInstance:
propertyPath: m_LocalScale.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalPosition.y
value: 0.034091078
objectReference: {fileID: 0}
- target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalPosition.z
value: -0.1814631
objectReference: {fileID: 0}
- target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalRotation.w
value: 0.9396927
@ -386,9 +378,10 @@ MonoBehaviour:
<VisualLook>k__BackingField: {fileID: 6077686033771388879}
<InteractionCanvas>k__BackingField: {fileID: 8975593228546502023}
<InteractionUi>k__BackingField: {fileID: 8793236136028073839}
<OutlineMaterial>k__BackingField: {fileID: 2100000, guid: 9bce0db68fc4c4d428fa601508de489d, type: 2}
<OutlineMaterial>k__BackingField: {fileID: 2100000, guid: 9db92b3ac1f276e42ae7d7bcfbbca549, type: 2}
<EnableInteraction>k__BackingField: 1
<InteractionRadius>k__BackingField: 0.8
<InteractionMessage>k__BackingField:
IsOpened: 0
_liquidImage: {fileID: 6817574259189873408}
_fill: {fileID: 7052380446467937511}
@ -397,6 +390,7 @@ MonoBehaviour:
_liquidData:
<Idx>k__BackingField:
<Name>k__BackingField:
<Type>k__BackingField: 0
<Amount>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}

View File

@ -240,6 +240,14 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1180174675498993111, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_SizeDelta.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1180174675498993111, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_SizeDelta.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1180174675498993111, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 40
@ -282,7 +290,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 7624213675240184438, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalScale.x

View File

@ -136,6 +136,7 @@ MonoBehaviour:
<OutlineMaterial>k__BackingField: {fileID: 2100000, guid: 9db92b3ac1f276e42ae7d7bcfbbca549, type: 2}
<EnableInteraction>k__BackingField: 1
<InteractionRadius>k__BackingField: 0.7
<InteractionMessage>k__BackingField: "\uC4F0\uB808\uAE30 \uBC84\uB9AC\uAE30"
IsOpened: 0
--- !u!4 &5927803667513949971 stripped
Transform:

View File

@ -140,16 +140,16 @@ RectTransform:
m_GameObject: {fileID: 5611097802189151736}
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.01069167, y: 0.01069167, z: 0.01069167}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 5695967080072346038}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 800, y: 600}
m_SizeDelta: {x: 1, y: 1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &5297442833789713246
Canvas:

View File

@ -2,36 +2,43 @@
{
"Idx": "LiquidA",
"Name": "술 원액A",
"Type": 1,
"Amount": 99999
},
{
"Idx": "LiquidB",
"Name": "술 원액B",
"Type": 1,
"Amount": 2000
},
{
"Idx": "LiquidC",
"Name": "술 원액C",
"Type": 1,
"Amount": 2000
},
{
"Idx": "LiquidD",
"Name": "술 원액D",
"Type": 1,
"Amount": 2000
},
{
"Idx": "LiquidE",
"Name": "술 원액E",
"Type": 1,
"Amount": 2000
},
{
"Idx": "Garnish1",
"Name": "가나쉬1",
"Type": 2,
"Amount": 2000
},
{
"Idx": "Garnish2",
"Name": "가나쉬2",
"Type": 2,
"Amount": 2000
}
]

View File

@ -3,12 +3,12 @@
--- !u!19 &1
Physics2DSettings:
m_ObjectHideFlags: 0
serializedVersion: 4
serializedVersion: 6
m_Gravity: {x: 0, y: -9.81}
m_DefaultMaterial: {fileID: 0}
m_VelocityIterations: 8
m_PositionIterations: 3
m_VelocityThreshold: 1
m_BounceThreshold: 1
m_MaxLinearCorrection: 0.2
m_MaxAngularCorrection: 8
m_MaxTranslationSpeed: 100
@ -19,6 +19,7 @@ Physics2DSettings:
m_LinearSleepTolerance: 0.01
m_AngularSleepTolerance: 2
m_DefaultContactOffset: 0.01
m_ContactThreshold: 0
m_JobOptions:
serializedVersion: 2
useMultithreading: 0
@ -38,19 +39,18 @@ Physics2DSettings:
m_IslandSolverJointCostScale: 10
m_IslandSolverBodiesPerJob: 50
m_IslandSolverContactsPerJob: 50
m_AutoSimulation: 1
m_SimulationMode: 0
m_SimulationLayers:
serializedVersion: 2
m_Bits: 4294967295
m_MaxSubStepCount: 4
m_MinSubStepFPS: 30
m_UseSubStepping: 0
m_UseSubStepContacts: 0
m_QueriesHitTriggers: 1
m_QueriesStartInColliders: 1
m_CallbacksOnDisable: 1
m_ReuseCollisionCallbacks: 1
m_AutoSyncTransforms: 0
m_AlwaysShowColliders: 0
m_ShowColliderSleep: 1
m_ShowColliderContacts: 0
m_ShowColliderAABB: 0
m_ContactArrowScale: 0.2
m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_GizmoOptions: 10
m_LayerCollisionMatrix: 0000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000102000001040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

View File

@ -27,7 +27,7 @@ TagManager:
- ClickGround
- DamageableProps
- Liquid
-
- Garnish
-
-
-