Merge remote-tracking branch 'origin/develop' into feature/DisplayUiComponent

This commit is contained in:
김산 2025-08-28 18:59:27 +09:00
commit 7527803a73
40 changed files with 2070 additions and 1013 deletions

BIN
Assets/Editor/SpineSettings.asset (Stored with Git LFS)

Binary file not shown.

View File

@ -100,6 +100,9 @@ GameObject:
- component: {fileID: 4456475204957017828} - component: {fileID: 4456475204957017828}
- component: {fileID: 7969024827453302529} - component: {fileID: 7969024827453302529}
- component: {fileID: -6672057808015107341} - component: {fileID: -6672057808015107341}
- component: {fileID: 2950132940454135295}
- component: {fileID: 29040892075516248}
- component: {fileID: 1332098886975329103}
m_Layer: 7 m_Layer: 7
m_Name: RestaurantOrder m_Name: RestaurantOrder
m_TagString: Untagged m_TagString: Untagged
@ -158,6 +161,28 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_currentRestaurantOrderType: 0 _currentRestaurantOrderType: 0
--- !u!114 &7969024827453302529 --- !u!114 &7969024827453302529
--- !u!135 &2950132940454135295
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4103096974375017811}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 0.2
m_Center: {x: -0.4, y: 0, z: 0}
--- !u!114 &29040892075516248
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -231,6 +256,199 @@ MonoBehaviour:
Data: Data:
--- !u!212 &-6672057808015107341 --- !u!212 &-6672057808015107341
SpriteRenderer: SpriteRenderer:
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.5
cullBackFaces: 0
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: 2
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: 2
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 &1332098886975329103
MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
@ -284,3 +502,36 @@ SpriteRenderer:
m_WasSpriteAssigned: 1 m_WasSpriteAssigned: 1
m_MaskInteraction: 0 m_MaskInteraction: 0
m_SpriteSortPoint: 0 m_SpriteSortPoint: 0
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

@ -220,6 +220,10 @@ PrefabInstance:
propertyPath: m_Center.z propertyPath: m_Center.z
value: 0.14 value: 0.14
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8516969404588314361, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
propertyPath: m_IsTrigger
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: m_AddedGameObjects:

View File

@ -10,15 +10,15 @@ PrefabInstance:
m_Modifications: m_Modifications:
- target: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} - target: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
propertyPath: m_LocalScale.x propertyPath: m_LocalScale.x
value: 4 value: 2
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} - target: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
propertyPath: m_LocalScale.y propertyPath: m_LocalScale.y
value: 4 value: 2
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} - target: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
propertyPath: m_LocalScale.z propertyPath: m_LocalScale.z
value: 4 value: 2
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} - target: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x

View File

@ -291,6 +291,10 @@ PrefabInstance:
propertyPath: 'm_Materials.Array.data[0]' propertyPath: 'm_Materials.Array.data[0]'
value: value:
objectReference: {fileID: 2100000, guid: 0b7b4b1e7d5c44399b30003072025e14, type: 2} objectReference: {fileID: 2100000, guid: 0b7b4b1e7d5c44399b30003072025e14, type: 2}
- target: {fileID: 8516969404588314361, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
propertyPath: m_IsTrigger
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: m_AddedGameObjects:

BIN
Assets/_DDD/Restaurant/Environments/Props/Window2/Sky1.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 96afc645decd69640932e405f7246774
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
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: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
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: 0
spriteTessellationDetail: -1
textureType: 0
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:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/_DDD/Restaurant/Environments/Props/Window2/Sky2.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 1516a3a9dacf71d4690b6ed40db45434
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
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: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
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: 0
spriteTessellationDetail: -1
textureType: 0
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:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -76,6 +76,10 @@ Material:
m_Texture: {fileID: 0} m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _OpacityMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap: - _ParallaxMap:
m_Texture: {fileID: 0} m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
@ -101,6 +105,7 @@ Material:
- _AddPrecomputedVelocity: 0 - _AddPrecomputedVelocity: 0
- _AlphaClip: 1 - _AlphaClip: 1
- _AlphaToMask: 1 - _AlphaToMask: 1
- _ApplyGI: 1
- _Blend: 0 - _Blend: 0
- _BlendModePreserveSpecular: 1 - _BlendModePreserveSpecular: 1
- _BumpScale: 1 - _BumpScale: 1
@ -115,6 +120,7 @@ Material:
- _DstBlendAlpha: 0 - _DstBlendAlpha: 0
- _EMISSION: 0 - _EMISSION: 0
- _EnvironmentReflections: 1 - _EnvironmentReflections: 1
- _GlobalIlluminationIntensity: 1
- _GlossMapScale: 0 - _GlossMapScale: 0
- _Glossiness: 0 - _Glossiness: 0
- _GlossyReflections: 0 - _GlossyReflections: 0
@ -134,6 +140,7 @@ Material:
- _SrcBlend: 1 - _SrcBlend: 1
- _SrcBlendAlpha: 1 - _SrcBlendAlpha: 1
- _Surface: 0 - _Surface: 0
- _UseOpacityMask: 0
- _WorkflowMode: 1 - _WorkflowMode: 1
- _XRMotionVectorsPass: 1 - _XRMotionVectorsPass: 1
- _ZTest: 4 - _ZTest: 4

View File

@ -28,7 +28,7 @@ Material:
serializedVersion: 3 serializedVersion: 3
m_TexEnvs: m_TexEnvs:
- _BaseMap: - _BaseMap:
m_Texture: {fileID: 2800000, guid: f943d31b839274f03b7d85b72706feea, type: 3} m_Texture: {fileID: 2800000, guid: 96afc645decd69640932e405f7246774, type: 3}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _BumpMap: - _BumpMap:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c9e29468f02a6c74da61351562ff5cce
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,69 @@
OpenSwitch.png
size:1992,1408
filter:Linear,Linear
Eyelight
bounds:650,841,182,115
Fire01
bounds:834,865,106,79
rotate:90
Fire02
bounds:473,816,175,140
Fire03
bounds:1642,42,210,201
rotate:90
Fire04
bounds:1761,262,221,240
Fire05
bounds:1761,504,223,277
Fire06
bounds:1519,463,240,318
Fire07
bounds:847,8,284,368
Fire08
bounds:1727,998,263,408
Fire09
bounds:430,2,332,415
rotate:90
Fire10
bounds:788,973,317,433
Fire11
bounds:592,378,303,436
Fire12
bounds:1417,982,308,424
Fire13
bounds:897,432,303,431
Fire14
bounds:2,13,318,426
rotate:90
Fire15
bounds:1133,2,308,428
Fire16
bounds:1202,456,315,426
Fire17
bounds:1107,978,308,428
Fire18
bounds:298,336,292,451
Fire19
bounds:2,333,294,454
Fire20
bounds:473,958,313,448
ribbon01
bounds:915,871,100,57
rotate:90
ribbon02
bounds:1642,254,74,207
ribbon03
bounds:974,879,92,171
rotate:90
ribbon04
bounds:1147,884,92,171
rotate:90
switch01
bounds:2,789,469,617
switch02
bounds:1593,783,397,197
switch03
bounds:1443,57,397,197
rotate:90
switchknob
bounds:1320,886,271,90

View File

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

Binary file not shown.

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 5527cfe7bf173524b9f8da67f9b6c6c0
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: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
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: 0
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: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

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

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f0526b46b8123f94aabee69711470684
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,43 @@
%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: OpenSwitch_Material
m_Shader: {fileID: 4800000, guid: b2f45941d9f4fe9479ce1aebb9d63fbf, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _STRAIGHT_ALPHA_INPUT
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 2800000, guid: 5527cfe7bf173524b9f8da67f9b6c6c0, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _Cutoff: 0.1
- _StencilComp: 8
- _StencilRef: 1
- _StraightAlphaInput: 1
- _TintBlack: 0
- _ZWrite: 0
m_Colors:
- _Black: {r: 0, g: 0, b: 0, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d89793e4ce0651c4885db355edd439d1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -71,7 +71,7 @@ PrefabInstance:
- target: {fileID: 8467019391491472137, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} - target: {fileID: 8467019391491472137, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
propertyPath: 'm_Materials.Array.data[0]' propertyPath: 'm_Materials.Array.data[0]'
value: value:
objectReference: {fileID: 2100000, guid: 57b8c50dcc17d23488ae2f49e6ae0195, type: 2} objectReference: {fileID: 2100000, guid: 8735f3d63bc14e74da558970523bd1bd, type: 2}
- target: {fileID: 8516969404588314361, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} - target: {fileID: 8516969404588314361, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
propertyPath: m_Size.x propertyPath: m_Size.x
value: 1 value: 1
@ -383,4 +383,3 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_managementType: 0 _managementType: 0
_cookwareType: 0

File diff suppressed because it is too large Load Diff

View File

@ -2614,63 +2614,6 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1061695247072719575, guid: 70f56d7d65d2e7842b5bd517ae7fe7fe, type: 3} m_CorrespondingSourceObject: {fileID: 1061695247072719575, guid: 70f56d7d65d2e7842b5bd517ae7fe7fe, type: 3}
m_PrefabInstance: {fileID: 382965435} m_PrefabInstance: {fileID: 382965435}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &504708576
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalPosition.x
value: 1.1149255
objectReference: {fileID: 0}
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalPosition.y
value: -0.0020017624
objectReference: {fileID: 0}
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalPosition.z
value: 15.02
objectReference: {fileID: 0}
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6577997723757283174, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8667998208725006723, guid: fa353764662051b4aa59a202b194039b, type: 3}
propertyPath: m_Name
value: Prop_MenuBoard2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: fa353764662051b4aa59a202b194039b, type: 3}
--- !u!1 &531027749 --- !u!1 &531027749
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -5230,63 +5173,6 @@ Transform:
m_CorrespondingSourceObject: {fileID: 6689525833630355058, guid: 1ef128dbba722ec48bfa4bf6b9ddbdcf, type: 3} m_CorrespondingSourceObject: {fileID: 6689525833630355058, guid: 1ef128dbba722ec48bfa4bf6b9ddbdcf, type: 3}
m_PrefabInstance: {fileID: 1458281794} m_PrefabInstance: {fileID: 1458281794}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &852575416
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalPosition.x
value: -0.52
objectReference: {fileID: 0}
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalPosition.y
value: -0.0020017624
objectReference: {fileID: 0}
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalPosition.z
value: 15.017
objectReference: {fileID: 0}
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5128816417539280562, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7218816355439079511, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
propertyPath: m_Name
value: Prop_MenuBoard4
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 46e838cd9b314dd478d6bf5657e73760, type: 3}
--- !u!4 &876101440 stripped --- !u!4 &876101440 stripped
Transform: Transform:
m_CorrespondingSourceObject: {fileID: 1061695247072719575, guid: 70f56d7d65d2e7842b5bd517ae7fe7fe, type: 3} m_CorrespondingSourceObject: {fileID: 1061695247072719575, guid: 70f56d7d65d2e7842b5bd517ae7fe7fe, type: 3}
@ -8521,63 +8407,6 @@ Transform:
- {fileID: 1974926907} - {fileID: 1974926907}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1311760301
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1937249609879987263, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_Name
value: Prop_MenuBoard3
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalPosition.x
value: -5.38
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalPosition.y
value: -0.01
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalPosition.z
value: 14.977709
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4170661048175434458, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6c5f62a4d64c9414293b15564d852f18, type: 3}
--- !u!4 &1347266305 stripped --- !u!4 &1347266305 stripped
Transform: Transform:
m_CorrespondingSourceObject: {fileID: 1061695247072719575, guid: 70f56d7d65d2e7842b5bd517ae7fe7fe, type: 3} m_CorrespondingSourceObject: {fileID: 1061695247072719575, guid: 70f56d7d65d2e7842b5bd517ae7fe7fe, type: 3}
@ -11965,7 +11794,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
serializedBakingSet: {fileID: 11400000, guid: 96e9384b8a77642bdad451a41500e01e, type: 2} serializedBakingSet: {fileID: 11400000, guid: 96e9384b8a77642bdad451a41500e01e, type: 2}
sceneGUID: de073d0136201ac4cbb36dbeb4b76fb2 sceneGUID: a0c945032a37e9943b011332a893d18f
obsoleteAsset: {fileID: 0} obsoleteAsset: {fileID: 0}
obsoleteCellSharedDataAsset: {fileID: 0} obsoleteCellSharedDataAsset: {fileID: 0}
obsoleteCellSupportDataAsset: {fileID: 0} obsoleteCellSupportDataAsset: {fileID: 0}
@ -15143,6 +14972,3 @@ SceneRoots:
- {fileID: 612992553} - {fileID: 612992553}
- {fileID: 761682093} - {fileID: 761682093}
- {fileID: 549344125} - {fileID: 549344125}
- {fileID: 852575416}
- {fileID: 1311760301}
- {fileID: 504708576}

View File

@ -39,7 +39,7 @@ public InteractionDisplayParameters(string messageKey = "")
public interface IInteractable public interface IInteractable
{ {
bool CanInteract(); bool CanInteract();
bool IsInteractionHidden(); bool IsInteractionAvailable();
void OnInteracted(IInteractor interactor, ScriptableObject causerPayload = null); void OnInteracted(IInteractor interactor, ScriptableObject causerPayload = null);
InteractionType GetInteractionType(); InteractionType GetInteractionType();
GameObject GetInteractableGameObject(); GameObject GetInteractableGameObject();
@ -54,6 +54,7 @@ public interface IInteractor
GameObject GetInteractorGameObject(); GameObject GetInteractorGameObject();
IInteractable GetFocusedInteractable(); IInteractable GetFocusedInteractable();
bool CanSolveInteractionType(InteractionType interactionType); bool CanSolveInteractionType(InteractionType interactionType);
bool IsInteractionHidden(IInteractable interactable);
bool CanInteractTo(IInteractable interactable, bool CanInteractTo(IInteractable interactable,
ScriptableObject payloadSo = null); ScriptableObject payloadSo = null);
} }
@ -62,5 +63,6 @@ public interface IInteractionSolver
{ {
bool ExecuteInteraction(IInteractor interactor, IInteractable interactable, ScriptableObject payload = null); bool ExecuteInteraction(IInteractor interactor, IInteractable interactable, ScriptableObject payload = null);
bool CanExecuteInteraction(IInteractor interactor = null, IInteractable interactable = null, ScriptableObject payload = null); bool CanExecuteInteraction(IInteractor interactor = null, IInteractable interactable = null, ScriptableObject payload = null);
bool CanSolveInteraction(IInteractor interactor, IInteractable interactable);
} }
} }

View File

@ -16,11 +16,11 @@ public interface IInteractionSubsystemObject<T> : IInteractionSubsystemObject wh
} }
public interface IInteractionSubsystemSolver public interface IInteractionSubsystemSolver
{
}
public interface IInteractionSubsystemSolver<T> : IInteractionSubsystemSolver where T : Enum
{ {
bool ExecuteInteractionSubsystem(IInteractor interactor, IInteractable interactable, ScriptableObject payload = null); bool ExecuteInteractionSubsystem(IInteractor interactor, IInteractable interactable, ScriptableObject payload = null);
bool CanExecuteInteractionSubsystem(IInteractor interactor = null, IInteractable interactable = null, ScriptableObject payload = null); bool CanExecuteInteractionSubsystem(IInteractor interactor = null, IInteractable interactable = null, ScriptableObject payload = null);
} }
public interface IInteractionSubsystemSolver<T> : IInteractionSubsystemSolver where T : Enum
{
}
} }

View File

@ -25,7 +25,6 @@ public override TaskStatus OnUpdate()
var blackboard = gameObject.GetComponent<IAISharedBlackboard>(); var blackboard = gameObject.GetComponent<IAISharedBlackboard>();
var target = blackboard?.GetBlackboardGameObject(nameof(RestaurantCustomerBlackboardKey.CurrentInteractionTarget)); var target = blackboard?.GetBlackboardGameObject(nameof(RestaurantCustomerBlackboardKey.CurrentInteractionTarget));
IInteractable currentInteractable = target?.GetComponent<IInteractable>(); IInteractable currentInteractable = target?.GetComponent<IInteractable>();
if (_targetOrderType == RestaurantOrderType.Wait) if (_targetOrderType == RestaurantOrderType.Wait)
{ {
// 레스토랑 주문 인터랙션 후보를 가져옴 // 레스토랑 주문 인터랙션 후보를 가져옴
@ -54,7 +53,6 @@ public override TaskStatus OnUpdate()
return TaskStatus.Failure; return TaskStatus.Failure;
} }
} }
if (currentInteractable == null) if (currentInteractable == null)
{ {

View File

@ -46,11 +46,19 @@ private async Task InitializeAiInternal(CustomerDataEntry inCustomerDataEntry)
subtree = await customerState.GetOrLoadSubtree(inCustomerDataEntry.CustomerType); subtree = await customerState.GetOrLoadSubtree(inCustomerDataEntry.CustomerType);
} }
_behaviorTree.Subgraph = subtree; // 에이전트 간 상태 공유를 방지하기 위해 서브트리 에셋을 런타임 인스턴스로 복제하여 사용합니다.
// Addressables에서 로드한 원본 Subtree(ScriptableObject)를 그대로 공유하면 변수/태스크 상태가 섞일 수 있습니다.
var subtreeInstance = subtree != null ? ScriptableObject.Instantiate(subtree) : null;
if (subtreeInstance == null)
{
Debug.LogError("[CustomerAiComponent] Subtree instance is null. AI 초기화 중단.");
return;
}
_behaviorTree.Subgraph = subtreeInstance;
// 블랙보드는 이 BehaviorTree 인스턴스에 바인딩되어야 에이전트별 스코프가 분리됩니다.
_blackboardComponent.InitializeWithBehaviorTree(_behaviorTree); _blackboardComponent.InitializeWithBehaviorTree(_behaviorTree);
_blackboardComponent.SetCustomerData(inCustomerDataEntry.Id); _blackboardComponent.SetCustomerData(inCustomerDataEntry.Id);
// TODO : 1. Subtree - Action, Condition
// TODO : 2. Blackboard
_behaviorTree.StartBehavior(); _behaviorTree.StartBehavior();
} }
} }

View File

@ -82,9 +82,11 @@ private bool TryGetSolverForType(InteractionType type, out IInteractionSolver so
public bool CanSolveInteractionType(InteractionType type) public bool CanSolveInteractionType(InteractionType type)
{ {
if (_cachedSolvers.TryGetValue(type, out var cachedSolver)) return cachedSolver != null; if (_cachedSolvers.TryGetValue(type, out var cachedSolver))
{
if (RestaurantInteractionEventSolvers.TypeToSolver.TryGetValue(type, out var solverType) == false) return false; return cachedSolver != null;
}
if (!FetchSolverTypeForInteraction(type, out var solverType)) return false;
if (transform.TryGetComponent(solverType, out var component) == false) return false; if (transform.TryGetComponent(solverType, out var component) == false) return false;
@ -92,7 +94,25 @@ public bool CanSolveInteractionType(InteractionType type)
_cachedSolvers[type] = solver; _cachedSolvers[type] = solver;
return solver != null; return solver != null;
} }
public bool IsInteractionHidden(IInteractable interactable)
{
var interactionType = interactable.GetInteractionType();
if (GetInteractionSolver(interactionType) is var solver)
{
if (solver != null && solver.CanSolveInteraction(this, interactable))
{
return false;
}
}
return true;
}
protected virtual bool FetchSolverTypeForInteraction(InteractionType type, out Type solverType)
{
return RestaurantInteractionEventSolvers.TypeToSolver.TryGetValue(type, out solverType);
}
public bool CanInteractTo(IInteractable interactable, ScriptableObject payloadSo = null) public bool CanInteractTo(IInteractable interactable, ScriptableObject payloadSo = null)
{ {
if (interactable == null) return false; if (interactable == null) return false;

View File

@ -37,6 +37,11 @@ public bool CanSolveInteractionType(InteractionType interactionType)
return _interactionComponent.CanSolveInteractionType(interactionType); return _interactionComponent.CanSolveInteractionType(interactionType);
} }
public bool IsInteractionHidden(IInteractable interactable)
{
return _interactionComponent.IsInteractionHidden(interactable);
}
public bool CanInteractTo(IInteractable interactable, ScriptableObject payloadSo = null) public bool CanInteractTo(IInteractable interactable, ScriptableObject payloadSo = null)
{ {
return _interactionComponent.CanInteractTo(interactable, payloadSo); return _interactionComponent.CanInteractTo(interactable, payloadSo);

View File

@ -185,8 +185,9 @@ protected IInteractable GetNearestInteractable()
if (col.TryGetComponent<IInteractable>(out var interactable) == false) continue; if (col.TryGetComponent<IInteractable>(out var interactable) == false) continue;
var type = interactable.GetInteractionType(); var type = interactable.GetInteractionType();
if (interactable.IsInteractionHidden()) continue; if (!interactable.IsInteractionAvailable()) continue;
if (CanSolveInteractionType(type) == false) continue; if (CanSolveInteractionType(type) == false) continue;
if (IsInteractionHidden(interactable)) continue;
float distance = Vector3.Distance(transform.position, col.transform.position); float distance = Vector3.Distance(transform.position, col.transform.position);
if (distance < closestDistance) if (distance < closestDistance)
@ -198,5 +199,15 @@ protected IInteractable GetNearestInteractable()
return closest; return closest;
} }
protected override bool FetchSolverTypeForInteraction(InteractionType type, out Type solverType)
{
if (RestaurantInteractionEventSolvers.TypeToPlayerSolver.TryGetValue(type, out solverType))
{
return true;
}
return base.FetchSolverTypeForInteraction(type, out solverType);
}
} }
} }

View File

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
@ -157,8 +158,12 @@ private InteractionOutlineType GetCurrentOutlineType()
// IInteractable 인터페이스로 캐스팅하여 상태 확인 // IInteractable 인터페이스로 캐스팅하여 상태 확인
if (_interactionComponent is not IInteractable interactable) if (_interactionComponent is not IInteractable interactable)
return InteractionOutlineType.None; return InteractionOutlineType.None;
if (_interactionComponent.IsInteractionHidden()) if (!_interactionComponent.IsInteractionAvailable())
{
return InteractionOutlineType.None;
}
if (_interactor.IsInteractionHidden(_interactionComponent))
{ {
return InteractionOutlineType.None; return InteractionOutlineType.None;
} }

View File

@ -58,20 +58,26 @@ private static IEnumerable GetAllInteractionTypes()
public virtual bool CanInteract() public virtual bool CanInteract()
{ {
bool isInteractionVisible = !IsInteractionHidden(); bool isInteractionAvailable = IsInteractionAvailable();
bool hasValidSubsystem = true; bool hasValidSubsystem = true;
if (HasSubsystem(_interactionType)) if (HasSubsystem(_interactionType))
{ {
hasValidSubsystem = GetSubsystem(_interactionType).CanInteract(); hasValidSubsystem = GetSubsystem(_interactionType).CanInteract();
} }
return isInteractionVisible && hasValidSubsystem; return isInteractionAvailable && hasValidSubsystem;
} }
public virtual bool IsInteractionHidden() public virtual bool IsInteractionAvailable()
{ {
var currentGameFlowState = GameFlowManager.Instance.GameFlowDataSo.CurrentGameState; var currentGameFlowState = GameFlowManager.Instance.GameFlowDataSo.CurrentGameState;
var flowDisabled = (currentGameFlowState & _interactionAvailableFlows) == 0; var flowDisabled = (currentGameFlowState & _interactionAvailableFlows) == 0;
return flowDisabled; if (flowDisabled)
{
return false;
}
return true;
} }
public virtual void OnInteracted(IInteractor interactor, ScriptableObject payload = null) public virtual void OnInteracted(IInteractor interactor, ScriptableObject payload = null)
@ -119,7 +125,7 @@ private bool HasSubsystem(InteractionType interactionType)
private IInteractionSubsystemObject GetSubsystem(InteractionType interactionType) private IInteractionSubsystemObject GetSubsystem(InteractionType interactionType)
{ {
return _subsystems.GetValueOrDefault(interactionType) as IInteractionSubsystemObject; return _subsystems.GetValueOrDefault(interactionType);
} }
private bool TryGetSubsystem(InteractionType interactionType, out IInteractionSubsystemObject subsystem) private bool TryGetSubsystem(InteractionType interactionType, out IInteractionSubsystemObject subsystem)

View File

@ -30,6 +30,19 @@ public bool CanExecuteInteraction(IInteractor interactor = null, IInteractable i
solver.CanExecuteInteractionSubsystem(interactor, interactable, payload); solver.CanExecuteInteractionSubsystem(interactor, interactable, payload);
} }
public bool CanSolveInteraction(IInteractor interactor, IInteractable interactable)
{
if (interactable is IInteractionSubsystemOwner subsystemOwner)
{
if (subsystemOwner.TryGetSubsystemEnumType(out T subsystemType))
{
return _solvers.ContainsKey(subsystemType);
}
}
return false;
}
// Solver를 가져오는 공통 로직 // Solver를 가져오는 공통 로직
private bool TryGetSolver(IInteractable interactable, out IInteractionSubsystemSolver<T> solver) private bool TryGetSolver(IInteractable interactable, out IInteractionSubsystemSolver<T> solver)
{ {