Merge branch 'develop' of http://gitea.capers.co.kr:3000/iwnc2020/ProjectDDD into develop
This commit is contained in:
commit
e0764fb752
@ -68,6 +68,10 @@ PrefabInstance:
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: a43de73b23f496546a3ea8ccc5166d97, type: 2}
|
||||
- target: {fileID: 8516969404588314361, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
|
||||
propertyPath: m_IsTrigger
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
|
@ -358,33 +358,10 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 7159781468411195695}
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5123936106469897444}
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
|
||||
--- !u!4 &6689525833630355058 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2204914584875671904, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
|
||||
m_PrefabInstance: {fileID: 4777358697124966162}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &9211739394093953175 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
|
||||
m_PrefabInstance: {fileID: 4777358697124966162}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &5123936106469897444
|
||||
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: 201f9e6d7ca7404baa9945950292a392, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_interactionType: 1
|
||||
_holdTime: 1
|
||||
_interactionMessageKey: Test
|
||||
|
@ -1,5 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2934089024452419919
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -34,7 +34,7 @@ Material:
|
||||
m_LightmapFlags: 2
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
m_CustomRenderQueue: 2450
|
||||
stringTagMap:
|
||||
RenderType: TransparentCutout
|
||||
disabledShaderPasses:
|
||||
@ -64,6 +64,10 @@ Material:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OpacityMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
|
@ -21,7 +21,7 @@ Material:
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
m_CustomRenderQueue: 2450
|
||||
stringTagMap:
|
||||
RenderType: TransparentCutout
|
||||
disabledShaderPasses:
|
||||
@ -99,3 +99,16 @@ Material:
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &1139994344471946735
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
|
@ -80,6 +80,7 @@ Material:
|
||||
m_Floats:
|
||||
- _AlphaClip: 1
|
||||
- _AlphaToMask: 1
|
||||
- _ApplyGI: 1
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 0
|
||||
- _BumpScale: 1
|
||||
@ -89,6 +90,7 @@ Material:
|
||||
- _DstBlend: 0
|
||||
- _EMISSION: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlobalIlluminationIntensity: 1
|
||||
- _METALLICSPECGLOSSMAP: 1
|
||||
- _Metallic: 0
|
||||
- _NORMALMAP: 1
|
||||
|
@ -1,5 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-1560185840723167012
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -1,5 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-7049800244634892890
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -67,6 +67,7 @@ Material:
|
||||
m_Floats:
|
||||
- _AlphaClip: 1
|
||||
- _AlphaToMask: 1
|
||||
- _ApplyGI: 1
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 0
|
||||
- _BumpScale: 1
|
||||
@ -76,6 +77,7 @@ Material:
|
||||
- _DstBlend: 0
|
||||
- _EMISSION: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlobalIlluminationIntensity: 1
|
||||
- _METALLICSPECGLOSSMAP: 1
|
||||
- _Metallic: 0
|
||||
- _NORMALMAP: 1
|
||||
|
@ -1,5 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-4704719621919823047
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -67,6 +67,7 @@ Material:
|
||||
m_Floats:
|
||||
- _AlphaClip: 1
|
||||
- _AlphaToMask: 1
|
||||
- _ApplyGI: 1
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 0
|
||||
- _BumpScale: 1
|
||||
@ -76,6 +77,7 @@ Material:
|
||||
- _DstBlend: 0
|
||||
- _EMISSION: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlobalIlluminationIntensity: 1
|
||||
- _METALLICSPECGLOSSMAP: 1
|
||||
- _Metallic: 0
|
||||
- _NORMALMAP: 1
|
||||
|
@ -99,3 +99,16 @@ Material:
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &3881987407042613178
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
|
@ -80,6 +80,7 @@ Material:
|
||||
m_Floats:
|
||||
- _AlphaClip: 1
|
||||
- _AlphaToMask: 1
|
||||
- _ApplyGI: 1
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 0
|
||||
- _BumpScale: 1
|
||||
@ -89,6 +90,7 @@ Material:
|
||||
- _DstBlend: 0
|
||||
- _EMISSION: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlobalIlluminationIntensity: 1
|
||||
- _METALLICSPECGLOSSMAP: 1
|
||||
- _Metallic: 0
|
||||
- _NORMALMAP: 1
|
||||
|
@ -99,3 +99,16 @@ Material:
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &8889278963061015058
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
|
@ -67,6 +67,7 @@ Material:
|
||||
m_Floats:
|
||||
- _AlphaClip: 1
|
||||
- _AlphaToMask: 1
|
||||
- _ApplyGI: 1
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 0
|
||||
- _BumpScale: 1
|
||||
@ -76,6 +77,7 @@ Material:
|
||||
- _DstBlend: 0
|
||||
- _EMISSION: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlobalIlluminationIntensity: 1
|
||||
- _METALLICSPECGLOSSMAP: 1
|
||||
- _Metallic: 0
|
||||
- _NORMALMAP: 1
|
||||
|
@ -1,5 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-4952507056208060248
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -99,3 +99,16 @@ Material:
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &8366194481093407114
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
|
@ -1,5 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-4761601518904654232
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -71,5 +71,30 @@ PrefabInstance:
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 2285326470091144097}
|
||||
addedObject: {fileID: 8104602334973352575}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
|
||||
--- !u!1 &580268897300907643 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3}
|
||||
m_PrefabInstance: {fileID: 3861763275173960190}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &2285326470091144097
|
||||
--- !u!114 &8104602334973352575
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 580268897300907643}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 201f9e6d7ca7404baa9945950292a392, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_interactionType: 1
|
||||
_holdTime: 1
|
||||
_interactionMessageKey: Test
|
||||
|
@ -1,5 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-4192404767597481094
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -44,6 +44,7 @@ GameObject:
|
||||
- component: {fileID: 5176902543201676162}
|
||||
- component: {fileID: 732677841941379807}
|
||||
- component: {fileID: 3365694194251356714}
|
||||
- component: {fileID: 8736963048629680089}
|
||||
- component: {fileID: 127430239903465757}
|
||||
- component: {fileID: 3095965496140440094}
|
||||
- component: {fileID: 7606279200344222219}
|
||||
@ -131,6 +132,19 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 061fa444069fcd74c884c1b3379c41b8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_interactionType: 0
|
||||
--- !u!114 &8736963048629680089
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5259510642736920361}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ae2637d1ed321b945af3815436c11226, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &127430239903465757
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
@ -58,7 +58,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8683566178618629536, guid: 3db3fc62639929c4ba6031ca4ae6600c, type: 3}
|
||||
propertyPath: m_Materials.Array.size
|
||||
value: 4
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8683566178618629536, guid: 3db3fc62639929c4ba6031ca4ae6600c, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
|
@ -417,6 +417,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 2d4266c194d3fd346be961b537c811f1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_interactionType: 4294967295
|
||||
--- !u!114 &4956037093100801085
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -19038,75 +19038,6 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 04cb72fe661fd534b950283199ac4a83, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1001 &1804444097
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4476251547817182662, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6237816563216546680, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: GoogleSheetManager
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6289760680591803305, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: _editorName
|
||||
value: "\uB0A8\uD0DC\uAC74"
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6289760680591803305, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: _currentVersion
|
||||
value: "6 - 2025-07-30 16:48:31 by \uB0A8\uD0DC\uAC74"
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6289760680591803305, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
propertyPath: _refreshTrigger
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
|
||||
--- !u!114 &1804718565
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -94092,7 +94023,6 @@ SceneRoots:
|
||||
- {fileID: 1949741092}
|
||||
- {fileID: 1041959416}
|
||||
- {fileID: 45031421}
|
||||
- {fileID: 1804444097}
|
||||
- {fileID: 5280945432206803416}
|
||||
- {fileID: 1625822452}
|
||||
- {fileID: 1932987510}
|
||||
|
BIN
Assets/_DDD/_Addressables/So/GameStateSo.asset
(Stored with Git LFS)
Normal file
BIN
Assets/_DDD/_Addressables/So/GameStateSo.asset
(Stored with Git LFS)
Normal file
Binary file not shown.
8
Assets/_DDD/_Addressables/So/GameStateSo.asset.meta
Normal file
8
Assets/_DDD/_Addressables/So/GameStateSo.asset.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 094ff53715c99c54ea7e6702a6933228
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/RestaurantCustomerStateSo.asset
(Stored with Git LFS)
Normal file
BIN
Assets/_DDD/_Addressables/So/RestaurantCustomerStateSo.asset
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6a8ae0a4b68a9b94889b9889b63ebacd
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/RestaurantPlayerDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Addressables/So/RestaurantPlayerDataSo.asset
(Stored with Git LFS)
Binary file not shown.
@ -93,6 +93,45 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
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: []
|
||||
|
@ -93,6 +93,45 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
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: []
|
||||
|
@ -119,6 +119,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
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: []
|
||||
|
@ -93,6 +93,45 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
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: []
|
||||
|
@ -119,6 +119,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
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: []
|
||||
|
@ -119,6 +119,19 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
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: []
|
||||
|
@ -93,6 +93,45 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
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: []
|
||||
|
@ -1,33 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &6237816563216546680
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4476251547817182662}
|
||||
m_Layer: 0
|
||||
m_Name: GoogleSheetManager
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4476251547817182662
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6237816563216546680}
|
||||
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: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
BIN
Assets/_DDD/_ScriptAssets/So/GoogleSheetManager.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_ScriptAssets/So/GoogleSheetManager.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_ScriptAssets/So/GoogleSheetSettingsSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_ScriptAssets/So/GoogleSheetSettingsSo.asset
(Stored with Git LFS)
Binary file not shown.
@ -78,8 +78,8 @@ private void Awake()
|
||||
|
||||
#endregion
|
||||
|
||||
// Initialize methods
|
||||
#region Initialize methods
|
||||
// InitializeRunRestaurant methods
|
||||
#region InitializeRunRestaurant methods
|
||||
|
||||
private void InitializeComponents()
|
||||
{
|
||||
|
@ -1,34 +1,95 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public class DataSo<T> : ScriptableObject where T : IId
|
||||
{
|
||||
[SerializeField]
|
||||
protected List<T> Datas = new();
|
||||
[FormerlySerializedAs("Datas")] [SerializeField] protected List<T> _datas = new();
|
||||
|
||||
public T GetDataById(string id) => Datas.FirstOrDefault(x => x.Id == id);
|
||||
private static readonly char[] _defaultSeparators = { ',', '|' };
|
||||
|
||||
public bool ContainsData(string id) => Datas.Any(x => x.Id == id);
|
||||
private void OnEnable()
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
private void OnValidate()
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
protected virtual void Initialize() { }
|
||||
|
||||
public T GetDataById(string id) => _datas.FirstOrDefault(x => x.Id == id);
|
||||
|
||||
public bool ContainsData(string id) => _datas.Any(x => x.Id == id);
|
||||
|
||||
public bool TryGetDataById(string id, out T data)
|
||||
{
|
||||
data = Datas.FirstOrDefault(x => x.Id == id);
|
||||
data = _datas.FirstOrDefault(x => x.Id == id);
|
||||
return data != null;
|
||||
}
|
||||
|
||||
public void SetDataList(List<T> newList)
|
||||
{
|
||||
Datas = newList;
|
||||
_datas = newList;
|
||||
}
|
||||
|
||||
public List<T> GetDataList()
|
||||
{
|
||||
return Datas;
|
||||
return _datas;
|
||||
}
|
||||
|
||||
public int GetDataCount() => Datas.Count;
|
||||
public int GetDataCount() => _datas.Count;
|
||||
|
||||
public static List<string> ParseDelimitedList(string input, List<string> buffer = null, char[] separators = null,
|
||||
bool distinct = false, bool toLower = false)
|
||||
{
|
||||
separators ??= _defaultSeparators;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(input))
|
||||
{
|
||||
if (buffer == null) return new List<string>(0);
|
||||
buffer.Clear();
|
||||
return buffer;
|
||||
}
|
||||
|
||||
IEnumerable<string> query = input
|
||||
.Split(separators, StringSplitOptions.RemoveEmptyEntries)
|
||||
.Select(s => s.Trim())
|
||||
.Where(s => !string.IsNullOrWhiteSpace(s));
|
||||
|
||||
// 소문자 정규화가 필요하면 먼저 적용
|
||||
if (toLower)
|
||||
{
|
||||
query = query.Select(s => s.ToLowerInvariant());
|
||||
}
|
||||
|
||||
// Distinct
|
||||
if (distinct)
|
||||
{
|
||||
query = query.Distinct(StringComparer.Ordinal);
|
||||
}
|
||||
|
||||
if (buffer == null) return query.ToList();
|
||||
|
||||
buffer.Clear();
|
||||
buffer.AddRange(query);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 결과 리스트(target)에 직접 채워 넣습니다. (할당 최소화)
|
||||
/// </summary>
|
||||
public static void ParseDelimitedListInPlace(string input, List<string> target, char[] separators = null,
|
||||
bool distinct = false, bool toLower = false)
|
||||
{
|
||||
ParseDelimitedList(input, target, separators, distinct, toLower);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,14 +1,17 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public enum InteractionType
|
||||
[Flags]
|
||||
public enum InteractionType : uint
|
||||
{
|
||||
None = 0,
|
||||
RestaurantManagementUi,
|
||||
OpenRestaurant,
|
||||
Count
|
||||
None = 0u,
|
||||
RestaurantManagementUi = 1u << 0,
|
||||
OpenRestaurant = 1u << 1,
|
||||
All = 0xFFFFFFFFu
|
||||
}
|
||||
|
||||
public interface IInteractable
|
||||
{
|
||||
bool CanInteract();
|
||||
|
@ -47,7 +47,7 @@ public void ChangeFlow(GameFlowState newFlowState)
|
||||
return;
|
||||
}
|
||||
|
||||
EndCurrentFlow();
|
||||
_ = EndCurrentFlow();
|
||||
|
||||
_ = ReadyNewFlow(newFlowState);
|
||||
}
|
||||
@ -57,9 +57,14 @@ private bool CanChangeFlow(GameFlowState newFlowState)
|
||||
return true;
|
||||
}
|
||||
|
||||
private void EndCurrentFlow()
|
||||
private async Task EndCurrentFlow()
|
||||
{
|
||||
var endCurrentFlowState = GameFlowDataSo.CurrentGameState;
|
||||
|
||||
foreach (var handler in FlowHandlers)
|
||||
{
|
||||
await handler.OnExitCurrentFlow(endCurrentFlowState);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ReadyNewFlow(GameFlowState newFlowState)
|
||||
|
@ -1,10 +0,0 @@
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public abstract class GameFlowTask : ScriptableObject
|
||||
{
|
||||
public abstract Task OnReadyNewFlow(GameFlowState newFlowState);
|
||||
}
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b072e73316b7d534b8ec18ffa0b8bfa2
|
@ -5,5 +5,6 @@ namespace DDD
|
||||
public interface IGameFlowHandler
|
||||
{
|
||||
public Task OnReadyNewFlow(GameFlowState newFlowState);
|
||||
public Task OnExitCurrentFlow(GameFlowState exitingFlowState);
|
||||
}
|
||||
}
|
35
Assets/_DDD/_Scripts/GameState/GameStateSo.cs
Normal file
35
Assets/_DDD/_Scripts/GameState/GameStateSo.cs
Normal file
@ -0,0 +1,35 @@
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "GameStateSo", menuName = "GameState/GameStateSo")]
|
||||
public class GameStateSo : ScriptableObject, IGameFlowHandler
|
||||
{
|
||||
[SerializeField] private int _level = 1;
|
||||
|
||||
public Task OnReadyNewFlow(GameFlowState newFlowState)
|
||||
{
|
||||
if (newFlowState is GameFlowState.None or GameFlowState.ReadyForRestaurant)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public Task OnExitCurrentFlow(GameFlowState exitingFlowState)
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private void Initialize()
|
||||
{
|
||||
// TODO : 저장된 데이터 가져오기 or 없으면 데이터 초기화
|
||||
|
||||
_level = 1;
|
||||
}
|
||||
|
||||
public int GetCurrentLevel() => _level;
|
||||
}
|
||||
}
|
2
Assets/_DDD/_Scripts/GameState/GameStateSo.cs.meta
Normal file
2
Assets/_DDD/_Scripts/GameState/GameStateSo.cs.meta
Normal file
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9b8aa6c32ff3e8b49bc8365e3a6e2218
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 05aeb8078f8dc7c489b71a0ce5bc4fac
|
||||
PrefabImporter:
|
||||
guid: 60cda962236b3914b9ff1e63dd2c75cd
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 21d0d76d7f889ce45b40db20dddf3851
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50c2a4b526b61864083332f609fde611
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d8e9bd49420826e45a28142af7e4c284
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -4,6 +4,19 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public enum CookwareType
|
||||
{
|
||||
None = 0,
|
||||
Pot = 1,
|
||||
Fryer = 2,
|
||||
FirePit = 3,
|
||||
CuttingBoard = 4,
|
||||
Griddle = 5,
|
||||
MagicOven = 6,
|
||||
JuiceMachine = 7,
|
||||
Barrel = 8,
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class CookwareData : IId
|
||||
{
|
||||
|
@ -0,0 +1,39 @@
|
||||
// <auto-generated>
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public enum CustomerType
|
||||
{
|
||||
None = 0,
|
||||
Normal,
|
||||
Special
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class CustomerData : IId
|
||||
{
|
||||
/// <summary>식별번호</summary>
|
||||
[Tooltip("식별번호")]
|
||||
[field: SerializeField]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>손님 타입</summary>
|
||||
[Tooltip("손님 타입")]
|
||||
public CustomerType CustomerType;
|
||||
|
||||
/// <summary>스파인 스킨 키 값</summary>
|
||||
[Tooltip("스파인 스킨 키 값")]
|
||||
public string SpineSkinKey;
|
||||
|
||||
/// <summary>선호 맛들</summary>
|
||||
[Tooltip("선호 맛들")]
|
||||
public string FavoriteTastes;
|
||||
|
||||
[ReadOnly] public List<string> ValidFavoriteTastes = new();
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 24a354acd91b9d944aeb01375a9e9c4e
|
@ -0,0 +1,19 @@
|
||||
// <auto-generated>
|
||||
using UnityEngine;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "CustomerDataSo", menuName = "GoogleSheet/CustomerDataSo")]
|
||||
public class CustomerDataSo : DataSo<CustomerData>
|
||||
{
|
||||
protected override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
foreach (var customerData in _datas)
|
||||
{
|
||||
ParseDelimitedListInPlace(customerData.FavoriteTastes, customerData.ValidFavoriteTastes);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 090ee4c808412044090f3281830e08f6
|
@ -0,0 +1,28 @@
|
||||
// <auto-generated>
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[Serializable]
|
||||
public class CustomerPoolData : IId
|
||||
{
|
||||
/// <summary>식별번호</summary>
|
||||
[Tooltip("식별번호")]
|
||||
[field: SerializeField]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>손님 최대 수</summary>
|
||||
[Tooltip("손님 최대 수")]
|
||||
public int CustomerLimitCount;
|
||||
|
||||
/// <summary>등장 손님들</summary>
|
||||
[Tooltip("등장 손님들")]
|
||||
public string Customers;
|
||||
|
||||
[ReadOnly] public List<string> ValidCustomers = new();
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9bad451e3ceb644459533d83a8144378
|
@ -0,0 +1,19 @@
|
||||
// <auto-generated>
|
||||
using UnityEngine;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "CustomerPoolDataSo", menuName = "GoogleSheet/CustomerPoolDataSo")]
|
||||
public class CustomerPoolDataSo : DataSo<CustomerPoolData>
|
||||
{
|
||||
protected override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
foreach (var customerPoolData in _datas)
|
||||
{
|
||||
ParseDelimitedListInPlace(customerPoolData.Customers, customerPoolData.ValidCustomers);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c31b1b5bf70f3f4e80ff11973c8eb8c
|
@ -4,6 +4,13 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public enum RendererType
|
||||
{
|
||||
None = 0,
|
||||
Sprite = 1,
|
||||
Spine = 2,
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class EnvironmentData : IId
|
||||
{
|
||||
|
@ -4,6 +4,16 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public enum ItemType
|
||||
{
|
||||
None = 0,
|
||||
Food = 1,
|
||||
Ingredient = 2,
|
||||
Environment = 3,
|
||||
Drink = 4,
|
||||
Recipe = 5,
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class ItemData : IId
|
||||
{
|
||||
|
@ -4,6 +4,13 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public enum SpawnType
|
||||
{
|
||||
None = 0,
|
||||
Random,
|
||||
Regular
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class LevelData : IId
|
||||
{
|
||||
@ -12,6 +19,10 @@ public class LevelData : IId
|
||||
[field: SerializeField]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>레벨 or 평판</summary>
|
||||
[Tooltip("레벨 or 평판")]
|
||||
public int Level;
|
||||
|
||||
/// <summary>등장 지역</summary>
|
||||
[Tooltip("등장 지역")]
|
||||
public string Area;
|
||||
@ -24,14 +35,14 @@ public class LevelData : IId
|
||||
[Tooltip("스페셜 손님 풀")]
|
||||
public string SpecialCustomerPool;
|
||||
|
||||
/// <summary>스폰 타입</summary>
|
||||
[Tooltip("스폰 타입")]
|
||||
public SpawnType SpawnType;
|
||||
|
||||
/// <summary>확정 스페셜 손님 수</summary>
|
||||
[Tooltip("확정 스페셜 손님 수")]
|
||||
public int FixSpecialCustomerCount;
|
||||
|
||||
/// <summary>추가 스페셜 손님 확률</summary>
|
||||
[Tooltip("추가 스페셜 손님 확률")]
|
||||
public int AddSpecialCustomerCount;
|
||||
|
||||
/// <summary>손님 리스폰 시간</summary>
|
||||
[Tooltip("손님 리스폰 시간")]
|
||||
public int CustomerRespawnTime;
|
||||
|
@ -4,6 +4,13 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public enum RecipeType
|
||||
{
|
||||
None = 0,
|
||||
FoodRecipe = 1,
|
||||
DrinkRecipe = 2,
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class RecipeData : IId
|
||||
{
|
||||
|
@ -3,41 +3,4 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public enum CookwareType
|
||||
{
|
||||
None = 0,
|
||||
Barrel = 1,
|
||||
CuttingBoard = 2,
|
||||
FirePit = 3,
|
||||
Fryer = 4,
|
||||
Griddle = 5,
|
||||
JuiceMachine = 6,
|
||||
MagicOven = 7,
|
||||
Pot = 8,
|
||||
}
|
||||
|
||||
public enum ItemType
|
||||
{
|
||||
None = 0,
|
||||
Drink = 1,
|
||||
Environment = 2,
|
||||
Food = 3,
|
||||
Ingredient = 4,
|
||||
Recipe = 5,
|
||||
}
|
||||
|
||||
public enum RecipeType
|
||||
{
|
||||
None = 0,
|
||||
DrinkRecipe = 1,
|
||||
FoodRecipe = 2,
|
||||
}
|
||||
|
||||
public enum RendererType
|
||||
{
|
||||
None = 0,
|
||||
Spine = 1,
|
||||
Sprite = 2,
|
||||
}
|
||||
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Logs/GoogleSheetChangeLog.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Logs/GoogleSheetChangeLog.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CookwareDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CookwareDataSo.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerDataSo.asset
(Stored with Git LFS)
Normal file
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerDataSo.asset
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 63f18758dde45c349bf1eb84a6b2b507
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerPoolDataSo.asset
(Stored with Git LFS)
Normal file
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerPoolDataSo.asset
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b2607a9819d236b418d2280c56fd3e62
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/DrinkDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/DrinkDataSo.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/EnvironmentDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/EnvironmentDataSo.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/FoodDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/FoodDataSo.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/IngredientDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/IngredientDataSo.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/ItemDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/ItemDataSo.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/LevelDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/LevelDataSo.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/RecipeDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/RecipeDataSo.asset
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/TasteDataSo.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/TasteDataSo.asset
(Stored with Git LFS)
Binary file not shown.
@ -80,7 +80,7 @@ private static async void TryRun()
|
||||
{
|
||||
// 짧은 안정화 대기 (도메인 리로드 직후 임포트 마무리용)
|
||||
await Task.Delay(100);
|
||||
await manager.ContinueSoSyncAfterReload_Public(); // ← 아래 3) 참고(퍼블릭 메서드)
|
||||
await manager.ContinueSoSyncAfterReload(); // ← 아래 3) 참고(퍼블릭 메서드)
|
||||
}
|
||||
catch (System.Exception e)
|
||||
{
|
||||
|
@ -23,6 +23,8 @@ public class GoogleSheetManager : ScriptableObject
|
||||
[LabelText("선택 버전"), ValueDropdown(nameof(GetVersionOptions))]
|
||||
[SerializeField] private int _selectedVersionIndex;
|
||||
|
||||
[SerializeField] private bool _isBusy;
|
||||
|
||||
private string _lastJsonCache;
|
||||
|
||||
private IGoogleSheetSource _source;
|
||||
@ -129,21 +131,22 @@ await RunOnMainThread(() =>
|
||||
}
|
||||
|
||||
// 6) SO 동기화
|
||||
await ContinueSoSync(json);
|
||||
await ContinueSoSync(json, true);
|
||||
}
|
||||
|
||||
public async Task ContinueSoSyncAfterReload_Public()
|
||||
public async Task ContinueSoSyncAfterReload()
|
||||
{
|
||||
if (string.IsNullOrEmpty(_lastJsonCache))
|
||||
{
|
||||
Debug.LogWarning("[GoogleSheetManager] 리로드 후 캐시 JSON 없음");
|
||||
return;
|
||||
}
|
||||
await ContinueSoSync(_lastJsonCache);
|
||||
await ContinueSoSync(_lastJsonCache, true);
|
||||
_lastJsonCache = null;
|
||||
}
|
||||
|
||||
private async Task ContinueSoSync(string json)
|
||||
// 기존 메서드 대체
|
||||
private async Task ContinueSoSync(string json, bool saveSnapshot)
|
||||
{
|
||||
var selected = new HashSet<string>(StringComparer.Ordinal);
|
||||
if (_settings.AutoCreateSheets != null) foreach (var s in _settings.AutoCreateSheets) selected.Add(s);
|
||||
@ -159,13 +162,17 @@ private async Task ContinueSoSync(string json)
|
||||
_addressablesRegistrar.BuildIfNeeded(_settings.AutoBuildAddressables);
|
||||
}
|
||||
|
||||
_versionStore.SaveSnapshot(json, _editorName, _settings.BackupsFolderAssetPath);
|
||||
_editorName = null;
|
||||
if (saveSnapshot)
|
||||
{
|
||||
_versionStore.SaveSnapshot(json, _editorName, _settings.BackupsFolderAssetPath);
|
||||
_editorName = null;
|
||||
}
|
||||
|
||||
Debug.Log(ok ? "✅ SO 동기화 완료" : "⚠️ SO 동기화 중 일부 실패");
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
|
||||
|
||||
[Button("선택 버전으로 복구")]
|
||||
public async Task RestoreWithVersionIndex()
|
||||
{
|
||||
@ -208,7 +215,7 @@ public async Task RestoreWithVersionIndex()
|
||||
return;
|
||||
}
|
||||
|
||||
await ContinueSoSync(restoreJson);
|
||||
await ContinueSoSync(restoreJson, true);
|
||||
}
|
||||
|
||||
[Button("선택 버전과 현재 비교")]
|
||||
@ -299,6 +306,143 @@ private int GetSnapshotCountSafe()
|
||||
var log = AssetDatabase.LoadAssetAtPath<GoogleSheetChangeLog>(_settings.ChangeLogAssetPath);
|
||||
return (log != null && log.Logs != null) ? log.Logs.Count : 0;
|
||||
}
|
||||
|
||||
private async Task<bool> GuardAsync(Func<Task> body, string tag, int timeoutMs = 90000)
|
||||
{
|
||||
if (_isBusy)
|
||||
{
|
||||
Debug.LogWarning($"[{tag}] 이미 실행 중입니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
_isBusy = true;
|
||||
try
|
||||
{
|
||||
// 본문과 타임아웃 중 먼저 끝나는 쪽을 기다린다
|
||||
var work = body();
|
||||
var done = await Task.WhenAny(work, Task.Delay(timeoutMs));
|
||||
if (done != work)
|
||||
throw new TimeoutException($"[{tag}] {timeoutMs}ms 타임아웃");
|
||||
|
||||
// body() 내부 예외 전파
|
||||
await work;
|
||||
return true;
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
Debug.LogWarning($"[{tag}] 취소됨");
|
||||
return false;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"[{tag}] 실행 중 예외: {e}");
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
_isBusy = false;
|
||||
}
|
||||
}
|
||||
|
||||
[Button("데이터만 가져오기 (웹앱/로컬 소스)")]
|
||||
public async Task FetchJsonOnly()
|
||||
{
|
||||
await GuardAsync(async () =>
|
||||
{
|
||||
if (_settings == null) { Debug.LogError("Settings So가 없습니다."); return; }
|
||||
BuildServices();
|
||||
|
||||
Debug.Log("[FetchJsonOnly] 1) 시작");
|
||||
var fetchTask = _source.FetchAllJsonAsync();
|
||||
|
||||
// 네트워크 대기를 한 번 더 보호 (HttpClient/UnityWebRequest가 내부 타임아웃 실패 시 대비)
|
||||
var done = await Task.WhenAny(fetchTask, Task.Delay(_settings.HttpTimeoutSeconds * 2000));
|
||||
if (done != fetchTask)
|
||||
throw new TimeoutException("[FetchJsonOnly] 소스에서 응답 지연(추가 타임아웃)");
|
||||
|
||||
var json = await fetchTask;
|
||||
Debug.Log($"[FetchJsonOnly] 2) 페치 완료 len={(json?.Length ?? 0)}");
|
||||
if (string.IsNullOrWhiteSpace(json))
|
||||
{
|
||||
Debug.LogWarning("[FetchJsonOnly] 가져온 JSON이 비어있습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log("[FetchJsonOnly] 3) 메인스레드에서 저장/임포트 예약");
|
||||
await RunOnMainThread(() =>
|
||||
{
|
||||
var full = GoogleSheetSettingsSo.AssetToFull(_settings.JsonWorkFileAssetPath);
|
||||
var dir = System.IO.Path.GetDirectoryName(full);
|
||||
if (!string.IsNullOrEmpty(dir) && !System.IO.Directory.Exists(dir))
|
||||
System.IO.Directory.CreateDirectory(dir);
|
||||
|
||||
System.IO.File.WriteAllText(full, json);
|
||||
AssetDatabase.ImportAsset(_settings.JsonWorkFileAssetPath);
|
||||
});
|
||||
|
||||
Debug.Log("[FetchJsonOnly] 4) 완료");
|
||||
}, tag: "FetchJsonOnly");
|
||||
}
|
||||
|
||||
|
||||
[Button("코드만 생성 (현재 JSON)")]
|
||||
public async Task GenerateCodeOnlyFromCurrentJson()
|
||||
{
|
||||
if (_settings == null) { Debug.LogError("Settings So가 없습니다."); return; }
|
||||
BuildServices();
|
||||
|
||||
var text = AssetDatabase.LoadAssetAtPath<TextAsset>(_settings.JsonWorkFileAssetPath);
|
||||
if (text == null)
|
||||
{
|
||||
EditorUtility.DisplayDialog(
|
||||
"코드 생성 불가",
|
||||
$"작업 JSON이 없습니다.\n{_settings.JsonWorkFileAssetPath}\n먼저 데이터 가져오기를 실행하세요.",
|
||||
"확인");
|
||||
return;
|
||||
}
|
||||
|
||||
var gen = _codeGenerator.Generate(
|
||||
text.text,
|
||||
_settings.AutoCreateSheets ?? new List<string>(),
|
||||
_settings.RootNamespace,
|
||||
_settings.GenerateAssetBasePath,
|
||||
_settings.EnumTypesAssetPath,
|
||||
_settings.ClassesFolderAssetPath
|
||||
);
|
||||
|
||||
if (gen.AnyFileCreated)
|
||||
{
|
||||
// 코드만 생성: 리로드만 기다리고 종료 (SoSync 예약 X)
|
||||
while (EditorApplication.isCompiling) await Task.Delay(150);
|
||||
AssetDatabase.Refresh();
|
||||
Debug.Log("✅ 코드만 생성 완료 (리로드됨).");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("코드 생성: 변경 없음.");
|
||||
}
|
||||
}
|
||||
|
||||
[Button("SO만 동기화 (현재 JSON)")]
|
||||
public async Task SyncSoOnlyFromCurrentJson()
|
||||
{
|
||||
if (_settings == null) { Debug.LogError("Settings So가 없습니다."); return; }
|
||||
BuildServices();
|
||||
|
||||
var text = AssetDatabase.LoadAssetAtPath<TextAsset>(_settings.JsonWorkFileAssetPath);
|
||||
if (text == null)
|
||||
{
|
||||
EditorUtility.DisplayDialog(
|
||||
"SO 동기화 불가",
|
||||
$"작업 JSON이 없습니다.\n{_settings.JsonWorkFileAssetPath}\n먼저 데이터 가져오기 또는 코드 생성 파이프라인을 실행하세요.",
|
||||
"확인");
|
||||
return;
|
||||
}
|
||||
|
||||
// 스냅샷 남기지 않음(필요하면 true로 바꾸세요)
|
||||
await ContinueSoSync(text.text, saveSnapshot: false);
|
||||
Debug.Log("✅ SO만 동기화 완료.");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
@ -0,0 +1,9 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public interface ICurrentDirection
|
||||
{
|
||||
Vector3 GetCurrentDirection();
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e2dc4bb972964f36bba4e0ccc2adbcf8
|
||||
timeCreated: 1754992211
|
@ -2,8 +2,15 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public class CustomerCharacter : MonoBehaviour
|
||||
public class CustomerCharacter : RestaurantNpcCharacter, ICustomerInitializer
|
||||
{
|
||||
private CustomerData _customerData;
|
||||
|
||||
public void Initialize(string customerDataId, CustomerData customerData)
|
||||
{
|
||||
_customerData = customerData;
|
||||
|
||||
// TODO : 손님 생성 로직 추가
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
using BehaviorDesigner.Runtime;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public class RestaurantNpcCharacter : RestaurantCharacter
|
||||
{
|
||||
protected BehaviorTree _behaviorTree;
|
||||
protected SpineController _spineController;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
|
||||
_behaviorTree = GetComponent<BehaviorTree>();
|
||||
_spineController = GetComponent<SpineController>();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cade447fb525e0c49a3c9baaa4da135f
|
@ -3,9 +3,10 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public class RestaurantNpcMovement : RestaurantCharacterMovement, IAiMovement
|
||||
public class RestaurantNpcMovement : RestaurantCharacterMovement, IAiMovement, ICurrentDirection
|
||||
{
|
||||
private IAstarAI _iAstarAi;
|
||||
private Vector3 _lastDirection = Vector3.forward;
|
||||
|
||||
private const int MaxRandomMoveAttempts = 1000;
|
||||
|
||||
@ -142,5 +143,17 @@ public bool TryMoveToRandomPositionInRange(float range, int graphIndex = 0)
|
||||
PlayMove();
|
||||
return true;
|
||||
}
|
||||
|
||||
public Vector3 GetCurrentDirection()
|
||||
{
|
||||
var currentVelocity = _iAstarAi.velocity;
|
||||
|
||||
if (currentVelocity.sqrMagnitude > 0.0001f)
|
||||
{
|
||||
_lastDirection = currentVelocity.normalized;
|
||||
}
|
||||
|
||||
return _lastDirection;
|
||||
}
|
||||
}
|
||||
}
|
@ -4,34 +4,6 @@ namespace DDD
|
||||
{
|
||||
public class RestaurantPlayerCharacter : RestaurantCharacter
|
||||
{
|
||||
private RestaurantPlayerMovement _movement;
|
||||
|
||||
private Transform _rootObject;
|
||||
private Transform _visualLook;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_movement = GetComponent<RestaurantPlayerMovement>();
|
||||
|
||||
_rootObject = transform.Find(CommonConstants.RootObject);
|
||||
_visualLook = _rootObject.Find(CommonConstants.VisualLook);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
FlipVisualLook();
|
||||
}
|
||||
|
||||
private void FlipVisualLook()
|
||||
{
|
||||
Vector3 localScale = _visualLook.localScale;
|
||||
localScale.x = _movement.GetCurrentDirection().x switch
|
||||
{
|
||||
> 0.01f => -Mathf.Abs(localScale.x),
|
||||
< -0.01f => Mathf.Abs(localScale.x),
|
||||
_ => localScale.x
|
||||
};
|
||||
_visualLook.localScale = localScale;
|
||||
}
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public class RestaurantPlayerMovement : RestaurantCharacterMovement
|
||||
public class RestaurantPlayerMovement : RestaurantCharacterMovement, ICurrentDirection
|
||||
{
|
||||
#region Fields
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user