Merge branch 'feature/Exit_Subtree' into develop

This commit is contained in:
김산 2025-09-02 09:59:19 +09:00
commit bef345610e
18 changed files with 74 additions and 19 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -94,7 +94,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 0, b: 0, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0 m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 0 m_Maskable: 0
@ -245,7 +245,7 @@ MonoBehaviour:
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 1 m_Transition: 1
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 0, b: 0, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
@ -2372,13 +2372,16 @@ MonoBehaviour:
Assembly-CSharp]], System.Core Assembly-CSharp]], System.Core
- Name: - Name:
Entry: 12 Entry: 12
Data: 3
- Name:
Entry: 3
Data: 2 Data: 2
- Name: - Name:
Entry: 3 Entry: 3
Data: 4 Data: 4
- Name: - Name:
Entry: 3 Entry: 3
Data: 2 Data: 16
- Name: - Name:
Entry: 13 Entry: 13
Data: Data:

View File

@ -43,7 +43,7 @@ TextureImporter:
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 2 spriteMode: 1
spriteExtrude: 2 spriteExtrude: 2
spriteMeshType: 0 spriteMeshType: 0
alignment: 0 alignment: 0

View File

@ -43,7 +43,7 @@ TextureImporter:
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 2 spriteMode: 1
spriteExtrude: 2 spriteExtrude: 2
spriteMeshType: 0 spriteMeshType: 0
alignment: 0 alignment: 0

View File

@ -43,7 +43,7 @@ TextureImporter:
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 2 spriteMode: 1
spriteExtrude: 2 spriteExtrude: 2
spriteMeshType: 0 spriteMeshType: 0
alignment: 0 alignment: 0

View File

@ -43,7 +43,7 @@ TextureImporter:
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 2 spriteMode: 1
spriteExtrude: 2 spriteExtrude: 2
spriteMeshType: 0 spriteMeshType: 0
alignment: 0 alignment: 0

View File

@ -1,8 +1,17 @@
// <auto-generated> // <auto-generated>
using System.Linq;
using UnityEngine; using UnityEngine;
namespace DDD namespace DDD
{ {
[CreateAssetMenu(fileName = "LevelDataAsset", menuName = "GoogleSheet/LevelDataAsset")] [CreateAssetMenu(fileName = "LevelDataAsset", menuName = "GoogleSheet/LevelDataAsset")]
public class LevelDataAsset : DataAsset<LevelDataEntry> { } public class LevelDataAsset : DataAsset<LevelDataEntry>
{
public LevelDataEntry GetLevelDataEntryByLevel()
{
var currentLevel = GameState.Instance.LevelState.Level;
return _datas.Where(x => x.Level == currentLevel).FirstOrDefault();
}
}
} }

View File

@ -23,7 +23,6 @@ public interface IEmotionVisual
//이를 파생해서 기본값을 주거나, 바로 사용하면 될 듯 //이를 파생해서 기본값을 주거나, 바로 사용하면 될 듯
[SerializeField] protected T _emotionBlackboardKey; [SerializeField] protected T _emotionBlackboardKey;
private IEmotionVisual _emotionVisual; private IEmotionVisual _emotionVisual;
public override void OnStart() public override void OnStart()
@ -47,6 +46,11 @@ public override void OnStart()
_emotionVisual.ShowEmotion(currentEmotion); _emotionVisual.ShowEmotion(currentEmotion);
} }
public override TaskStatus OnUpdate()
{
return TaskStatus.Success;
}
public override void OnEnd() public override void OnEnd()
{ {
_emotionVisual?.EndEmotion(); _emotionVisual?.EndEmotion();

View File

@ -0,0 +1,13 @@
using Opsive.BehaviorDesigner.Runtime.Tasks;
using Opsive.BehaviorDesigner.Runtime.Tasks.Actions;
namespace DDD.Restaurant
{
public class ReturnRunning : Action
{
public override TaskStatus OnUpdate()
{
return TaskStatus.Running;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a74d335850254c098cac2ab9a275a32b
timeCreated: 1756721079

View File

@ -16,6 +16,7 @@ public class SatisfactionEvaluator : Action
{ {
[SerializeField] private RestaurantCustomerBlackboardKey _satisfactionBlackboardKey; [SerializeField] private RestaurantCustomerBlackboardKey _satisfactionBlackboardKey;
[SerializeField] private EvaluationStep _evaluationStep; [SerializeField] private EvaluationStep _evaluationStep;
[SerializeField] private EmotionType _satisfactionType;
public override void OnStart() public override void OnStart()
{ {
var currentSatisfaction = CalculateSatisfaction(); var currentSatisfaction = CalculateSatisfaction();
@ -26,7 +27,7 @@ public override void OnStart()
//TODO 만족도 계산? //TODO 만족도 계산?
private EmotionType CalculateSatisfaction() private EmotionType CalculateSatisfaction()
{ {
return EmotionType.Satisfied; return _satisfactionType;
} }
} }
} }

View File

@ -10,8 +10,9 @@ public enum RestaurantOrderType : uint
Reserved = 1u, Reserved = 1u,
Order = 1u << 1, Order = 1u << 1,
Serve = 1u << 2, Serve = 1u << 2,
Busy = 1u << 3, Reaction = 1u << 3,
Dirty = 1u << 4, Busy = 1u << 4,
Dirty = 1u << 5,
} }
public class RestaurantOrderObjectState public class RestaurantOrderObjectState
@ -113,7 +114,8 @@ private RestaurantOrderType GetNextState(RestaurantOrderType state)
case RestaurantOrderType.Wait: return RestaurantOrderType.Reserved; case RestaurantOrderType.Wait: return RestaurantOrderType.Reserved;
case RestaurantOrderType.Reserved: return RestaurantOrderType.Order; case RestaurantOrderType.Reserved: return RestaurantOrderType.Order;
case RestaurantOrderType.Order: return RestaurantOrderType.Serve; case RestaurantOrderType.Order: return RestaurantOrderType.Serve;
case RestaurantOrderType.Serve: return RestaurantOrderType.Busy; case RestaurantOrderType.Serve: return RestaurantOrderType.Reaction;
case RestaurantOrderType.Reaction: return RestaurantOrderType.Busy;
case RestaurantOrderType.Busy: return RestaurantOrderType.Dirty; case RestaurantOrderType.Busy: return RestaurantOrderType.Dirty;
case RestaurantOrderType.Dirty: return RestaurantOrderType.Wait; case RestaurantOrderType.Dirty: return RestaurantOrderType.Wait;
default: return RestaurantOrderType.Wait; default: return RestaurantOrderType.Wait;

View File

@ -10,6 +10,7 @@ public class RestaurantOrderSolver : RestaurantSubsystemSolver<RestaurantOrderTy
{ {
{ RestaurantOrderType.Wait, typeof(RestaurantOrderSolver_Wait) }, { RestaurantOrderType.Wait, typeof(RestaurantOrderSolver_Wait) },
{ RestaurantOrderType.Reserved, typeof(RestaurantOrderSolver_Reserved) }, { RestaurantOrderType.Reserved, typeof(RestaurantOrderSolver_Reserved) },
{ RestaurantOrderType.Reaction, typeof(RestaurantOrderSolver_Reaction) },
{ RestaurantOrderType.Busy, typeof(RestaurantOrderSolver_Busy) }, { RestaurantOrderType.Busy, typeof(RestaurantOrderSolver_Busy) },
}; };
protected override Dictionary<RestaurantOrderType, Type> GetSubsystemSolverTypeMappings() protected override Dictionary<RestaurantOrderType, Type> GetSubsystemSolverTypeMappings()

View File

@ -0,0 +1,13 @@
using UnityEngine;
namespace DDD.Restaurant
{
public class RestaurantOrderSolver_Reaction : RestaurantOrderSolverBase
{
public override bool CanExecuteInteractionSubsystem(IInteractor interactor = null, IInteractable interactable = null,
ScriptableObject payload = null)
{
return true;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0b6c08c28584491d8f6895542d4a9327
timeCreated: 1756723014

View File

@ -88,6 +88,9 @@ private void SetPatience()
_prevOrderType = _currentOrderType; _prevOrderType = _currentOrderType;
_patienceSlider.maxValue = _blackboard.GetBlackboardValue<float>(RestaurantCustomerBlackboardKey.MaxPatienceTime); _patienceSlider.maxValue = _blackboard.GetBlackboardValue<float>(RestaurantCustomerBlackboardKey.MaxPatienceTime);
_patienceSlider.value = _patienceSlider.maxValue; _patienceSlider.value = _patienceSlider.maxValue;
ColorBlock colors = _patienceSlider.colors;
colors.normalColor = _currentOrderType == RestaurantOrderType.Busy ? Color.green : Color.red;
_patienceSlider.colors = colors;
_patienceSlider.gameObject.SetActive(true); _patienceSlider.gameObject.SetActive(true);
} }
} }