인터렉션 서브 시스템 초안 작성

This commit is contained in:
김산 2025-08-20 15:30:08 +09:00
parent c7a4aee67d
commit 4c7d9c17e6
24 changed files with 378 additions and 54 deletions

View File

@ -99,5 +99,279 @@ PrefabInstance:
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects: []
m_AddedComponents: [] m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
insertIndex: -1
addedObject: {fileID: 8605899758048842936}
- targetCorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
insertIndex: -1
addedObject: {fileID: 6282952769554945552}
- targetCorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
insertIndex: -1
addedObject: {fileID: 4598203232635129220}
m_SourcePrefab: {fileID: 100100000, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
--- !u!1 &9211739394093953175 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
m_PrefabInstance: {fileID: 4777358697124966162}
m_PrefabAsset: {fileID: 0}
--- !u!114 &8605899758048842936
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9211739394093953175}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c0b1e0992510498b8d33d5b6094b8f4b, type: 3}
m_Name:
m_EditorClassIdentifier:
_interactionType: 4
_executionParameters:
_holdTime: 1
_displayParameters:
_messageKey:
_interactionAvailableFlows: 1
_aiInteractionPoints: []
_initialOrderInteractionType: 0
--- !u!114 &6282952769554945552
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9211739394093953175}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 888380afc233049ce9e618f9f36c8ba8, type: 3}
m_Name:
m_EditorClassIdentifier:
profile: {fileID: 0}
profileSync: 0
camerasLayerMask:
serializedVersion: 2
m_Bits: 4294967295
effectGroup: 0
effectTarget: {fileID: 0}
effectGroupLayer:
serializedVersion: 2
m_Bits: 4294967295
effectNameFilter:
effectNameUseRegEx: 0
combineMeshes: 0
alphaCutOff: 0
cullBackFaces: 1
padding: 0
ignoreObjectVisibility: 0
reflectionProbes: 0
GPUInstancing: 1
sortingPriority: 0
optimizeSkinnedMesh: 1
depthClip: 0
cameraDistanceFade: 0
cameraDistanceFadeNear: 0
cameraDistanceFadeFar: 1000
normalsOption: 0
ignore: 0
_highlighted: 0
fadeInDuration: 0
fadeOutDuration: 0
flipY: 0
constantWidth: 1
extraCoveragePixels: 0
minimumWidth: 0
subMeshMask: -1
overlay: 0
overlayMode: 0
overlayColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
overlayAnimationSpeed: 1
overlayMinIntensity: 0.5
overlayBlending: 1
overlayTexture: {fileID: 0}
overlayTextureUVSpace: 0
overlayTextureScale: 1
overlayTextureScrolling: {x: 0, y: 0}
overlayVisibility: 0
outline: 1
outlineColor: {r: 0, g: 0, b: 0, a: 1}
outlineColorStyle: 0
outlineGradient:
serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1}
key1: {r: 1, g: 1, b: 1, a: 1}
key2: {r: 0, g: 0, b: 0, a: 0}
key3: {r: 0, g: 0, b: 0, a: 0}
key4: {r: 0, g: 0, b: 0, a: 0}
key5: {r: 0, g: 0, b: 0, a: 0}
key6: {r: 0, g: 0, b: 0, a: 0}
key7: {r: 0, g: 0, b: 0, a: 0}
ctime0: 0
ctime1: 65535
ctime2: 0
ctime3: 0
ctime4: 0
ctime5: 0
ctime6: 0
ctime7: 0
atime0: 0
atime1: 65535
atime2: 0
atime3: 0
atime4: 0
atime5: 0
atime6: 0
atime7: 0
m_Mode: 0
m_ColorSpace: -1
m_NumColorKeys: 2
m_NumAlphaKeys: 2
outlineGradientInLocalSpace: 0
outlineWidth: 0.45
outlineBlurPasses: 2
outlineQuality: 3
outlineEdgeMode: 0
outlineEdgeThreshold: 0.995
outlineSharpness: 1
outlineDownsampling: 1
outlineVisibility: 0
glowBlendMode: 0
outlineBlitDebug: 0
outlineIndependent: 0
outlineContourStyle: 0
outlineMaskMode: 0
glow: 0
glowWidth: 0.4
glowQuality: 3
glowBlurMethod: 0
glowDownsampling: 2
glowHQColor: {r: 0.64, g: 1, b: 0, a: 1}
glowDithering: 1
glowDitheringStyle: 0
glowMagicNumber1: 0.75
glowMagicNumber2: 0.5
glowAnimationSpeed: 1
glowVisibility: 0
glowBlitDebug: 0
glowBlendPasses: 1
glowPasses:
- offset: 4
alpha: 0.1
color: {r: 0.64, g: 1, b: 0, a: 1}
- offset: 3
alpha: 0.2
color: {r: 0.64, g: 1, b: 0, a: 1}
- offset: 2
alpha: 0.3
color: {r: 0.64, g: 1, b: 0, a: 1}
- offset: 1
alpha: 0.4
color: {r: 0.64, g: 1, b: 0, a: 1}
glowMaskMode: 0
innerGlow: 0
innerGlowWidth: 1
innerGlowColor: {r: 1, g: 1, b: 1, a: 1}
innerGlowBlendMode: 0
innerGlowVisibility: 0
targetFX: 0
targetFXTexture: {fileID: 0}
targetFXColor: {r: 1, g: 1, b: 1, a: 1}
targetFXCenter: {fileID: 0}
targetFXRotationSpeed: 50
targetFXInitialScale: 4
targetFXEndScale: 1.5
targetFXScaleToRenderBounds: 1
targetFXUseEnclosingBounds: 0
targetFXAlignToGround: 0
targetFXOffset: {x: 0, y: 0, z: 0}
targetFXFadePower: 32
targetFXGroundMaxDistance: 10
targetFXGroundLayerMask:
serializedVersion: 2
m_Bits: 4294967295
targetFXTransitionDuration: 0.5
targetFXStayDuration: 1.5
targetFXVisibility: 1
iconFX: 0
iconFXMesh: {fileID: 0}
iconFXLightColor: {r: 1, g: 1, b: 1, a: 1}
iconFXDarkColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
iconFXCenter: {fileID: 0}
iconFXRotationSpeed: 50
iconFXAnimationOption: 0
iconFXAnimationAmount: 0.1
iconFXAnimationSpeed: 3
iconFXScale: 1
iconFXScaleToRenderBounds: 0
iconFXOffset: {x: 0, y: 1, z: 0}
iconFXTransitionDuration: 0.5
iconFXStayDuration: 1.5
seeThrough: 2
seeThroughOccluderMask:
serializedVersion: 2
m_Bits: 4294967295
seeThroughOccluderThreshold: 0.3
seeThroughOccluderMaskAccurate: 0
seeThroughOccluderCheckInterval: 1
seeThroughOccluderCheckIndividualObjects: 0
seeThroughDepthOffset: 0
seeThroughMaxDepth: 0
seeThroughIntensity: 0.8
seeThroughTintAlpha: 0.5
seeThroughTintColor: {r: 1, g: 0, b: 0, a: 1}
seeThroughNoise: 1
seeThroughBorder: 0
seeThroughBorderColor: {r: 0, g: 0, b: 0, a: 1}
seeThroughBorderOnly: 0
seeThroughBorderWidth: 0.45
seeThroughOrdered: 0
seeThroughTexture: {fileID: 0}
seeThroughTextureUVSpace: 0
seeThroughTextureScale: 1
seeThroughChildrenSortingMode: 0
rmsCount: 1
hitFxInitialIntensity: 0
hitFxMode: 0
hitFxFadeOutDuration: 0.25
hitFxColor: {r: 1, g: 1, b: 1, a: 1}
hitFxRadius: 0.5
--- !u!114 &4598203232635129220
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9211739394093953175}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0feb22ab60a4d1885271637838f43b9, type: 3}
m_Name:
m_EditorClassIdentifier:
_availableStyle:
Color: {r: 1, g: 1, b: 1, a: 1}
Width: 1
Opacity: 1
_focusedStyle:
Color: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
Width: 1
Opacity: 1
_unavailableStyle:
Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
Width: 0.5
Opacity: 1
_objectiveStyle:
Color: {r: 0, g: 1, b: 1, a: 1}
Width: 1
Opacity: 1
_breathingSpeed: 2
_breathingRange: 0.3
_enableBreathingEffect: 1
_alphaCutOff: 0.5
_combineMeshes: 1
_constantWidth: 1
_outlineQuality: 2
_outlineIndependent: 1
_outlineBlurPasses: 1
_outlineSharpness: 8
_currentOutlineType: 0
_currentOpacityMultiplier: 1

View File

@ -34,7 +34,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -21,7 +21,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -21,7 +21,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -34,7 +34,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -21,7 +21,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -34,7 +34,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -21,7 +21,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -34,7 +34,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -21,7 +21,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -21,7 +21,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -34,7 +34,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -21,7 +21,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -34,7 +34,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -34,7 +34,7 @@ Material:
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: -1 m_CustomRenderQueue: 2450
stringTagMap: stringTagMap:
RenderType: TransparentCutout RenderType: TransparentCutout
disabledShaderPasses: disabledShaderPasses:

View File

@ -423,7 +423,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 81e01dd8c1cc3404d805400eba1bb4ae, type: 3} m_Script: {fileID: 11500000, guid: 81e01dd8c1cc3404d805400eba1bb4ae, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_interactionType: 4294967295 _interactionType: 4294967287
_nearColliders: _nearColliders:
- {fileID: 0} - {fileID: 0}
- {fileID: 0} - {fileID: 0}

View File

@ -1,4 +1,16 @@
using System;
using UnityEngine;
namespace DDD namespace DDD
{ {
public interface IInteractionSubsystemObject<T> where T : Enum
{
T GetInteractionSubsystemType();
}
public interface IInteractionSubsystemSolver<T> where T : Enum
{
bool ExecuteInteractionSubsystem(IInteractor interactor, IInteractable interactable, ScriptableObject payloadSo = null);
bool CanExecuteInteractionSubsystem(IInteractor interactor = null, IInteractable interactable = null,
ScriptableObject payloadSo = null);
}
} }

View File

@ -0,0 +1,16 @@
using System;
namespace DDD
{
[Flags]
public enum RestaurantManagementType : uint
{
OpenRestaurantMenu = 0,
StartRestaurant = 1,
}
//public class RestaurantManagementInteraction : RestaurantInteractionComponent, IInteractionSubsystemObject<RestaurantManagementType>
//{
//
//}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1235f6bde9304d8f85079f2777bd4b3c
timeCreated: 1755671037

View File

@ -3,29 +3,12 @@
namespace DDD namespace DDD
{ {
public interface IInteractionSubsystemObject<T> where T : Enum
{
T GetInteractionSubsystemType();
}
public interface IInteractionSubsystemSolver<T> where T : Enum
{
bool ExecuteInteractionSubsystem(IInteractor interactor, IInteractable interactable, ScriptableObject payloadSo = null);
bool CanExecuteInteractionSubsystem(IInteractor interactor = null, IInteractable interactable = null,
ScriptableObject payloadSo = null);
}
public interface IInteractionSubsystemSubject<T> where T : Enum
{
bool CanSolveInteractionType(T interactionSubsystemType);
bool CanInteractTo(IInteractionSubsystemObject<T> interactableSubsystemObject,
ScriptableObject payloadSo = null);
}
[Flags] [Flags]
public enum RestaurantOrderInteractionType : uint public enum RestaurantOrderInteractionType : uint
{ {
// None = 0u, // None = 0u,
WaitCustomer = 1u << 0, WaitCustomer = 0,
// WaitCustomer = 1u << 0,
// WaitOrder = 1u << 1, // WaitOrder = 1u << 1,
// WaitServe = 1u << 2, // WaitServe = 1u << 2,
// All = 0xFFFFFFFFu // All = 0xFFFFFFFFu
@ -48,26 +31,46 @@ private void OnValidate()
private void Start() private void Start()
{ {
_currentRestaurantOrderInteractionType = _initialOrderInteractionType;
} }
private void SetInteractionTypeToRestaurantOrder() private void SetInteractionTypeToRestaurantOrder()
{ {
_interactionType = InteractionType.RestaurantOrder; _interactionType = InteractionType.RestaurantOrder;
} }
InteractionType GetInteractionType() public override InteractionType GetInteractionType()
{ {
return InteractionType.RestaurantOrder; return InteractionType.RestaurantOrder;
} }
bool CanInteract() public override bool CanInteract()
{ {
return TODO_IMPLEMENT_ME; // 현재 RestaurantOrderInteractionType를 수행할 수 있는지?
if (GetInteractionSubsystemType() == RestaurantOrderInteractionType.WaitCustomer)
{
// Check WaitCustomer
return true;
}
return false;
} }
bool OnInteracted(IInteractor interactor, ScriptableObject payloadSo = null);
void InitializeInteraction(InteractionType interactionType);
InteractionExecutionParameters GetExecutionParameters();
InteractionDisplayParameters GetDisplayParameters();
public override bool OnInteracted(IInteractor interactor, ScriptableObject payloadSo = null)
{
// _currentRestaurantOrderInteractionType에 따라 동작이 달라지겠지
if (GetInteractionSubsystemType() == RestaurantOrderInteractionType.WaitCustomer)
{
// DO WAIT CUSTOMER
}
return base.OnInteracted(interactor, payloadSo);
}
public override void InitializeInteraction(InteractionType interactionType)
{
// RestaurantOrderInteractionType에 따른 동작들을 초기화
// Initialize WaitCustomer actions
base.InitializeInteraction(interactionType);
}
public RestaurantOrderInteractionType GetInteractionSubsystemType() public RestaurantOrderInteractionType GetInteractionSubsystemType()
{ {
return _currentRestaurantOrderInteractionType; return _currentRestaurantOrderInteractionType;

View File

@ -11,19 +11,19 @@ public class RestaurantInteractionComponent : MonoBehaviour, IInteractable
[SerializeField] protected GameFlowState _interactionAvailableFlows; [SerializeField] protected GameFlowState _interactionAvailableFlows;
[SerializeField] private Transform[] _aiInteractionPoints; [SerializeField] private Transform[] _aiInteractionPoints;
public bool CanInteract() public virtual bool CanInteract()
{ {
return !IsInteractionHidden(); return !IsInteractionHidden();
} }
public bool IsInteractionHidden() public virtual bool IsInteractionHidden()
{ {
var currentGameFlowState = GameFlowManager.Instance.GameFlowDataSo.CurrentGameState; var currentGameFlowState = GameFlowManager.Instance.GameFlowDataSo.CurrentGameState;
var flowDisabled = (currentGameFlowState & _interactionAvailableFlows) == 0; var flowDisabled = (currentGameFlowState & _interactionAvailableFlows) == 0;
return flowDisabled; return flowDisabled;
} }
public bool OnInteracted(IInteractor interactor, ScriptableObject payloadSo = null) public virtual bool OnInteracted(IInteractor interactor, ScriptableObject payloadSo = null)
{ {
if (CanInteract() == false) if (CanInteract() == false)
{ {
@ -34,7 +34,7 @@ public bool OnInteracted(IInteractor interactor, ScriptableObject payloadSo = nu
return interactionResult; return interactionResult;
} }
public InteractionType GetInteractionType() public virtual InteractionType GetInteractionType()
{ {
return _interactionType; return _interactionType;
} }
@ -44,18 +44,18 @@ public GameObject GetInteractableGameObject()
return gameObject; return gameObject;
} }
public void InitializeInteraction(InteractionType interactionType) public virtual void InitializeInteraction(InteractionType interactionType)
{ {
_interactionType = interactionType; _interactionType = interactionType;
} }
// 새로운 스트럭트 기반 메서드들 // 새로운 스트럭트 기반 메서드들
public InteractionExecutionParameters GetExecutionParameters() public virtual InteractionExecutionParameters GetExecutionParameters()
{ {
return _executionParameters; return _executionParameters;
} }
public InteractionDisplayParameters GetDisplayParameters() public virtual InteractionDisplayParameters GetDisplayParameters()
{ {
return _displayParameters; return _displayParameters;
} }

View File

@ -17,7 +17,17 @@ public bool CanExecuteInteraction(IInteractor interactor = null, IInteractable i
public bool ExecuteInteractionSubsystem(IInteractor interactor, IInteractable interactable, ScriptableObject payloadSo = null) public bool ExecuteInteractionSubsystem(IInteractor interactor, IInteractable interactable, ScriptableObject payloadSo = null)
{ {
TODO_IMPLEMENT_ME if (interactable is IInteractionSubsystemObject<RestaurantOrderInteractionType> subsystem)
{
RestaurantOrderInteractionType interactionType = subsystem.GetInteractionSubsystemType();
// Can I solve this interaction type?
if (interactionType == RestaurantOrderInteractionType.WaitCustomer)
{
// DO SOMETHING!!!
return true;
}
}
return false;
} }
public bool CanExecuteInteractionSubsystem(IInteractor interactor = null, IInteractable interactable = null, public bool CanExecuteInteractionSubsystem(IInteractor interactor = null, IInteractable interactable = null,
@ -27,7 +37,10 @@ public bool CanExecuteInteractionSubsystem(IInteractor interactor = null, IInter
{ {
RestaurantOrderInteractionType interactionType = subsystem.GetInteractionSubsystemType(); RestaurantOrderInteractionType interactionType = subsystem.GetInteractionSubsystemType();
// Can I solve this interaction type? // Can I solve this interaction type?
TODO_IMPLEMENT_ME if (interactionType == RestaurantOrderInteractionType.WaitCustomer)
{
return true;
}
} }
return false; return false;
} }

BIN
ProjectSettings/EditorBuildSettings.asset (Stored with Git LFS)

Binary file not shown.

BIN
ProjectSettings/EntitiesClientSettings.asset (Stored with Git LFS) Normal file

Binary file not shown.