Merge pull request 'restaurant_world_setting' (#6) from restaurant_world_setting into develop

Reviewed-on: #6
This commit is contained in:
Jeonghyeon 2025-07-17 02:44:15 +00:00
commit d43efed5d7
127 changed files with 1581 additions and 2250 deletions

View File

@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 30e7f67fe9aaa7849a34c9b6e2bc53ae
m_currentHash:
serializedVersion: 2
Hash: afbba7cb45d674ec742903c98749be0a
Hash: 00000000000000000000000000000000
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 1
m_CatalogRequestsTimeout: 0
@ -107,6 +107,7 @@ MonoBehaviour:
- Sprite
- So
- Scene
- Material
m_SchemaTemplates: []
m_GroupTemplateObjects:
- {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}

View File

@ -21,6 +21,12 @@ MonoBehaviour:
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 84f8a3bf287dd904d9ba55d2ded55eb9
m_Address: EnvironmentDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c2be393a39588b647bacdd69f47f677d
m_Address: ItemDataSo
m_ReadOnly: 0

View File

@ -15,11 +15,16 @@ MonoBehaviour:
m_GroupName: Group
m_GUID: 30e7f67fe9aaa7849a34c9b6e2bc53ae
m_SerializeEntries:
- m_GUID: 1aad5f6adfc7c7d44b36ce007d3c0f1e
m_Address: Items
- m_GUID: 0912c3de85fd61848a41575faa2794ed
m_Address: CreateEnvironment
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0e912dc7ded8c2449bc4d0e2bbf1d2bf
m_Address: BaseRestaurantEnvironment
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
- Prefab
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 29dcda970aef9584d9b157e766b8a278
m_Address: RestaurantPlayer
@ -27,17 +32,33 @@ MonoBehaviour:
m_SerializedLabels:
- Prefab
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2e8eaba2e1fe77348b42e73f2f630fd0
m_Address: RestaurantUi
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2eb88deceda8c443db7ec557aaef30af
m_Address: Entry
m_ReadOnly: 0
m_SerializedLabels:
- Scene
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 422e501a9731145439708c6759c8c546
m_Address: Coral_SkeletonData
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 43d183a6e5f0da746b6dbe4b447caa9e
m_Address: RestaurantProps
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 47e757b9a170ab649af14c4d7b80ac41
m_Address: CreateRestaurantPlayer
m_ReadOnly: 0
m_SerializedLabels:
- So
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a60e7a432b7eb65419f3942f4f422fb4
m_Address: Voyage
@ -45,11 +66,15 @@ MonoBehaviour:
m_SerializedLabels:
- Scene
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c6d19267dabc844449cc778f2f03fb34
m_Address: SummerGrass01_SkeletonData
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ddb0db863be8f254bb8a8f07d39a960e
m_Address: RestaurantPlayerDataSo
m_ReadOnly: 0
m_SerializedLabels:
- So
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: de073d0136201ac4cbb36dbeb4b76fb2
m_Address: Restaurant
@ -57,6 +82,12 @@ MonoBehaviour:
m_SerializedLabels:
- Scene
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: efc890589b4c46948885cd750384bc6f
m_Address: BasePropSpriteMaterial
m_ReadOnly: 0
m_SerializedLabels:
- Material
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: d12ffbb6f886d48418efb0b6d15ccb88, type: 2}
m_SchemaSet:

View File

@ -54,8 +54,7 @@ MonoBehaviour:
groupTemplate: {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}
groupTemplateApplicationMode: 0
labelRefs: []
dynamicLabels:
- So
dynamicLabels: []
LabelMode: 1
simplified: 0
addressReplacement: ${asset}
@ -70,3 +69,14 @@ MonoBehaviour:
LabelMode: 1
simplified: 0
addressReplacement: ${asset}
- path: Assets/_DDD/_Addressables/(?<category>[^/]+)/(?<asset>.*)\.mat
matchType: 1
groupName:
groupTemplate: {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}
groupTemplateApplicationMode: 0
labelRefs: []
dynamicLabels:
- Material
LabelMode: 1
simplified: 0
addressReplacement: ${asset}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 190b0dbdbdc29b2459a7d0eae707f531
guid: 7ac4d180d9525cd489a18ee6f9dacd1f
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -21,7 +21,7 @@ TextureImporter:
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
@ -39,15 +39,15 @@ TextureImporter:
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 7
spritePivot: {x: 0.5, y: 0.5}
spriteExtrude: 2
spriteMeshType: 0
alignment: 9
spritePivot: {x: 0.5, y: 0}
spritePixelsToUnits: 1024
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
@ -72,7 +72,7 @@ TextureImporter:
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ba3a9fb25b878f647b1df9cfebb30f5b
guid: bbf56907cb6795b42bb7fb0e4c697c82
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 010680a99335d304b8c3fc7dbf0b3a38
guid: 1f5eb8866868e3b499fa1790caab5bf6
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -0,0 +1,144 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-591478386224688156
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
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: BasePropSpriteMaterial
m_Shader: {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AlphaTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
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}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- PixelSnap: 0
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnableExternalAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Flip: {r: 1, g: 1, b: 1, a: 1}
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

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

View File

@ -0,0 +1,115 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1990305567131579549
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3613361427611658652}
- component: {fileID: 2122400432313491485}
- component: {fileID: 2663904775254336141}
- component: {fileID: 5618831404245800085}
m_Layer: 0
m_Name: BaseRestaurantEnvironment
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3613361427611658652
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1990305567131579549}
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: 1
m_Children:
- {fileID: 7183279171644403880}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!136 &2122400432313491485
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1990305567131579549}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.1
m_Height: 1
m_Direction: 0
m_Center: {x: 0, y: 0, z: 0.1}
--- !u!210 &2663904775254336141
SortingGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1990305567131579549}
m_Enabled: 1
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 5
m_SortAtRoot: 0
--- !u!114 &5618831404245800085
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1990305567131579549}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ca3054addaa7fb4a86dfb3ad8241452, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &5437234773579157443
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7183279171644403880}
m_Layer: 0
m_Name: VisualLook
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7183279171644403880
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5437234773579157443}
serializedVersion: 2
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 3613361427611658652}
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}

View File

@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 5a1f5fa4ff4feee4e91087c012fd82bf
TextScriptImporter:
guid: 0e912dc7ded8c2449bc4d0e2bbf1d2bf
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 419e829d5eec9544e94be59817cdb69c, type: 3}
m_Name: CreateEnvironment
m_EditorClassIdentifier:

View File

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

View File

@ -1,6 +1,7 @@
fileFormatVersion: 2
guid: 34736dc9e04421b48a5a6f1f16fb1768
TextScriptImporter:
guid: 95e1b8ef62a14ee4c9382c769cec7837
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b16c797aa0ede8947b35fd354145121e
guid: 43d183a6e5f0da746b6dbe4b447caa9e
SpriteAtlasImporter:
externalObjects: {}
textureSettings:

View File

@ -11,8 +11,6 @@ SpriteAtlasAsset:
m_MasterAtlas: {fileID: 0}
m_ImporterData:
packables:
- {fileID: 21300000, guid: 189d780f1507008429f2cdd1a2b4c9e8, type: 3}
- {fileID: 21300000, guid: e15933f76da90e742866563b5cd9e45f, type: 3}
- {fileID: 21300000, guid: 0db84c35b16f34681b0309b33d8760fe, type: 3}
m_IsVariant: 0
m_ScriptablePacker: {fileID: 0}

View File

@ -1,12 +1,12 @@
fileFormatVersion: 2
guid: 1aad5f6adfc7c7d44b36ce007d3c0f1e
guid: 2e8eaba2e1fe77348b42e73f2f630fd0
SpriteAtlasImporter:
externalObjects: {}
textureSettings:
serializedVersion: 2
anisoLevel: 1
compressionQuality: 50
maxTextureSize: 2048
anisoLevel: 0
compressionQuality: 0
maxTextureSize: 0
textureCompression: 0
filterMode: 1
generateMipMaps: 0
@ -17,10 +17,10 @@ SpriteAtlasImporter:
packingSettings:
serializedVersion: 2
padding: 4
blockOffset: 1
blockOffset: 0
allowAlphaSplitting: 0
enableRotation: 1
enableTightPacking: 1
enableRotation: 0
enableTightPacking: 0
enableAlphaDilation: 0
secondaryTextureSettings: {}
variantMultiplier: 1

BIN
Assets/_DDD/_Raw/Sprites/Items/Gold01.png (Stored with Git LFS)

Binary file not shown.

View File

@ -1,143 +0,0 @@
fileFormatVersion: 2
guid: 0db84c35b16f34681b0309b33d8760fe
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: 1
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: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 2
spriteMeshType: 0
alignment: 9
spritePivot: {x: 0.5, y: 0.16796875}
spritePixelsToUnits: 512
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
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: 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: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

@ -48,7 +48,7 @@ MonoBehaviour:
_isAccessGoogleSheet: 1
_googleSheetUrl: https://script.google.com/macros/s/AKfycbw8TRSl_OuY2S-RX0yvOJi1SqNqoflG0R3pWxk9GC9u_wvGQeuABZc0VH7YJ5lMrAl4/exec
_namespace: DDD
_availSheets: FoodData/ItemData
_availSheets: ItemData/FoodData/EnvironmentData/SpriteData
_generateFolderPath: /_DDD/_Scripts/GenerateGoogleSheet/AutoCreated
_currentVersion: "1 - 2025-07-04 16:18:02 by \uB0A8\uD0DC\uAC74"
_restoreIndex: 0

View File

@ -69,7 +69,7 @@ MonoBehaviour:
Unity.Addressables]], mscorlib
- Name:
Entry: 12
Data: 1
Data: 2
- Name:
Entry: 7
Data: 4|UnityEngine.AddressableAssets.AssetReference, Unity.Addressables
@ -91,6 +91,27 @@ MonoBehaviour:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 5|UnityEngine.AddressableAssets.AssetReference, Unity.Addressables
- Name: m_AssetGUID
Entry: 1
Data: 0912c3de85fd61848a41575faa2794ed
- Name: m_SubObjectName
Entry: 6
Data:
- Name: m_SubObjectType
Entry: 6
Data:
- Name: m_SubObjectGUID
Entry: 1
Data:
- Name: m_EditorAssetChanged
Entry: 5
Data: true
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:

View File

@ -0,0 +1,43 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 6d9bb690776b59d40a1cc2e7036d78bd, type: 3}
m_Name: RestaurantEnvironmentDataSo
m_EditorClassIdentifier:
serializationData:
SerializedFormat: 2
SerializedBytes:
ReferencedUnityObjects: []
SerializedBytesString:
Prefab: {fileID: 0}
PrefabModificationsReferencedUnityObjects: []
PrefabModifications: []
SerializationNodes:
- Name: RestaurantEnvironmentDatas
Entry: 7
Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.List`1[[DDD.RestaurantEnvironmentData,
Assembly-CSharp]], mscorlib]], mscorlib
- Name: comparer
Entry: 7
Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String,
mscorlib]], mscorlib
- Name:
Entry: 8
Data:
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:

View File

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

View File

@ -1,7 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
#if UNITY_EDITOR
using UnityEditor.AddressableAssets;
#endif
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
@ -59,6 +62,18 @@ public static async Task<T> LoadAsset<T>(AssetReference reference) where T : Uni
return null;
}
public static async Task<List<T>> LoadAssetsByLabel<T>(string label) where T : UnityEngine.Object
{
var handle = Addressables.LoadAssetsAsync<T>(label, null);
await handle.Task;
if (handle.Status == AsyncOperationStatus.Succeeded)
return handle.Result.ToList();
Debug.LogError($"[AssetManager] Failed to load assets with label: {label}");
return new List<T>();
}
public static async Task<SceneInstance> LoadScene(string key, LoadSceneMode mode = LoadSceneMode.Additive)
{
var handle = Addressables.LoadSceneAsync(key, mode);

View File

@ -17,7 +17,7 @@ private void OnPreprocessTexture()
// {
// AssetPostprocessorModel.OnPreprocessTexture(importer);
// }
Debug.Log(upperPath);
if (upperPath.Contains("ASSETS/_DDD/_RAW/SPRITES/"))
{
AssetPostprocessorSprite.OnPreprocessTexture(importer);
@ -31,9 +31,10 @@ public static void OnPostprocessAllAssets(string[] importedAssets, string[] dele
{
string fromPath = movedFromAssetPaths[i];
string toPath = movedAssets[i];
var upperPath = toPath.ToUpper();
// 특정 폴더일 때만 작동
if (toPath.StartsWith("Assets/_DDD/_Raw/Sprites/"))
if (upperPath.Contains("ASSETS/_DDD/_RAW/SPRITES/"))
{
if (AssetDatabase.LoadAssetAtPath<Sprite>(toPath) == null)
{

View File

@ -91,8 +91,6 @@ private static void TryApplyPivotAfterImport(string path)
settings.spritePivot = new Vector2(0.5f, pivotY);
importer.SetTextureSettings(settings);
Debug.Log($"[SpritePivot] {path} → pivotY = {pivotY:F2}");
// ✅ 재임포트 플래그 설정 후 실행 (한 번만)
SessionState.SetBool(sessionKey, true);
AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate);
@ -145,7 +143,7 @@ public static void CreateAtlas(string path, string destPath)
var maxSize = sprite.rect.size.x > sprite.rect.size.y ? sprite.rect.size.x : sprite.rect.size.y;
if (maxSize > 1024)
{
CreateSingleAtlas(filePath, path.Replace("/_Raw/", "/Addressables/") + $"_{fileName}.spriteatlasv2");
CreateSingleAtlas(filePath, path.Replace("/_Raw/", "/_Addressables/") + $"_{fileName}.spriteatlasv2");
continue;
}
@ -341,8 +339,8 @@ public static void BuildTarget()
foreach (var path in TargetPaths)
{
CreateAtlas(Utils.FolderPath(path),
Utils.FolderPath(path).Replace("/_Raw/", "/Addressables/") + ".spriteatlasv2");
//CreatePrefab(path, (path.Replace("/Raw/Sprites/", "/Addressables/") + ".prefab").Replace(".png", ""));
Utils.FolderPath(path).Replace("/_Raw/", "/_Addressables/") + ".spriteatlasv2");
//CreatePrefab(path, (path.Replace("/Raw/Sprites/", "/_Addressables/") + ".prefab").Replace(".png", ""));
}

View File

@ -1,12 +1,20 @@
using System;
using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.U2D;
namespace DDD
{
public class DataManager : Singleton<DataManager>, IManager
{
public ItemDataSo ItemDataSo { get; private set; }
public FoodDataSo FoodDataSo { get; private set; }
public EnvironmentDataSo EnvironmentDataSo { get; private set; }
private Dictionary<string, Sprite> _spriteAtlas;
public bool IsInitialized { get; private set; }
public void Init()
{
@ -18,22 +26,52 @@ public async void PostInit()
try
{
ItemDataSo = await AssetManager.LoadAsset<ItemDataSo>(DataConstants.ItemDataSo);
FoodDataSo = await AssetManager.LoadAsset<FoodDataSo>(DataConstants.FoodDataSo);
EnvironmentDataSo = await AssetManager.LoadAsset<EnvironmentDataSo>(DataConstants.EnvironmentDataSo);
List<SpriteAtlas> spriteAtlases = await AssetManager.LoadAssetsByLabel<SpriteAtlas>(DataConstants.AtlasLabel);
_spriteAtlas = new Dictionary<string, Sprite>(spriteAtlases.Count);
foreach (var atlas in spriteAtlases)
{
if (atlas == null) continue;
var count = atlas.spriteCount;
if (count == 0) continue;
var sprites = new Sprite[count];
atlas.GetSprites(sprites);
foreach (var sprite in sprites)
{
if (sprite == null) continue;
var key = sprite.name.Replace("(Clone)", "").Trim();
_spriteAtlas.TryAdd(key, sprite);
}
}
IsInitialized = true;
}
catch (Exception e)
{
Debug.LogError($"So bind failed\n{e.Message}");
}
}
public async Task WaitUntilInitialized()
{
while (!IsInitialized)
{
await Task.Yield();
}
}
public Sprite GetSprite(string key) => _spriteAtlas.GetValueOrDefault(key);
// TODO : So가 늘어나는 경우 관리 방법 변경 필요성이 있음
// GetItemType(id)
// GetItemImage
// GetItemName
public ItemType GetItemType(string key)
{
ItemData itemData = ItemDataSo.ItemDataList.FirstOrDefault(item => item.Id == key);
return itemData?.ItemType ?? ItemType.None;
}
}
}

View File

@ -1,116 +0,0 @@
{
"$개요": [
{
"": "시트 생성"
}
],
"Food": [
{
"Id:string": "식별ID",
"Name:string": "이름",
"Cookware_Enum": "요리도구",
"Ingredient1:string": "재료1",
"Ingredient2:string": "재료2",
"Taste1:Taste_Enum": "맛1",
"Taste2:Taste_Enum": "맛2",
"Sprite:Sprite": "Addressable 이미지 이름"
},
{
"Id:string": "Food001",
"Name:string": "햇빛수프",
"Cookware_Enum": "Pot",
"Ingredient1:string": "극락쌀",
"Ingredient2:string": "햇빛당근",
"Taste1:Taste_Enum": "Bitter",
"Taste2:Taste_Enum": "Sweet",
"Sprite:Sprite": "Gold"
},
{
"Id:string": "Food002",
"Name:string": "B",
"Cookware_Enum": "FryingPan",
"Ingredient1:string": 1,
"Ingredient2:string": 1,
"Taste1:Taste_Enum": "Spicy",
"Taste2:Taste_Enum": "Bitter",
"Sprite:Sprite": ""
},
{
"Id:string": "Food003",
"Name:string": "C",
"Cookware_Enum": "Pot",
"Ingredient1:string": 2,
"Ingredient2:string": 2,
"Taste1:Taste_Enum": "Fresh",
"Taste2:Taste_Enum": "None",
"Sprite:Sprite": ""
},
{
"Id:string": "Food004",
"Name:string": "D",
"Cookware_Enum": "Plating",
"Ingredient1:string": 3,
"Ingredient2:string": 3,
"Taste1:Taste_Enum": " ",
"Taste2:Taste_Enum": "Salty",
"Sprite:Sprite": "Gold"
}
],
"Monster": [
{
"Id": "식별번호",
"Name": "이름",
"T1": "테스트1"
},
{
"Id": "Test001",
"Name": "A",
"T1": 1
},
{
"Id": "Test002",
"Name": "B",
"T1": 2
},
{
"Id": "Test003",
"Name": "C",
"T1": 3
},
{
"Id": "Test004",
"Name": "D",
"T1": 4
}
],
"Item": [
{
"Id": "식별번호",
"Name": "이름",
"ItemType_Enum": "아이템타입",
"CellSizeX:int": "셀크기X",
"CellSizeY:int": "셀크기Y"
},
{
"Id": "Item001",
"Name": "나무장판",
"ItemType_Enum": "Floor",
"CellSizeX:int": 1,
"CellSizeY:int": 1
},
{
"Id": "Item002",
"Name": "테이블",
"ItemType_Enum": "Furniture",
"CellSizeX:int": 2,
"CellSizeY:int": 2
},
{
"Id": "Item003",
"Name": "전등",
"ItemType_Enum": "WallMount",
"CellSizeX:int": 3,
"CellSizeY:int": 3
}
]
}

View File

@ -1,116 +0,0 @@
{
"$개요": [
{
"": "시트 생성"
}
],
"Food": [
{
"Id:string": "식별ID",
"Name:string": "이름",
"Cookware_Enum": "요리도구",
"Ingredient1:string": "재료1",
"Ingredient2:string": "재료2",
"Taste1:Taste_Enum": "맛1",
"Taste2:Taste_Enum": "맛2",
"Sprite:Sprite": "Addressable 이미지 이름"
},
{
"Id:string": "Food001",
"Name:string": "햇빛수프",
"Cookware_Enum": "Pot",
"Ingredient1:string": "극락쌀",
"Ingredient2:string": "햇빛당근",
"Taste1:Taste_Enum": "Bitter",
"Taste2:Taste_Enum": "Sweet",
"Sprite:Sprite": "Gold"
},
{
"Id:string": "Food002",
"Name:string": "B",
"Cookware_Enum": "FryingPan",
"Ingredient1:string": 1,
"Ingredient2:string": 1,
"Taste1:Taste_Enum": "Spicy",
"Taste2:Taste_Enum": "Bitter",
"Sprite:Sprite": ""
},
{
"Id:string": "Food003",
"Name:string": "C",
"Cookware_Enum": "Pot",
"Ingredient1:string": 2,
"Ingredient2:string": 2,
"Taste1:Taste_Enum": "Fresh",
"Taste2:Taste_Enum": "None",
"Sprite:Sprite": ""
},
{
"Id:string": "Food004",
"Name:string": "D",
"Cookware_Enum": "Plating",
"Ingredient1:string": 3,
"Ingredient2:string": 3,
"Taste1:Taste_Enum": " ",
"Taste2:Taste_Enum": "Salty",
"Sprite:Sprite": "Gold"
}
],
"Monster": [
{
"Id": "식별번호",
"Name": "이름",
"T1": "테스트1"
},
{
"Id": "Test001",
"Name": "A",
"T1": 1
},
{
"Id": "Test002",
"Name": "B",
"T1": 2
},
{
"Id": "Test003",
"Name": "C",
"T1": 3
},
{
"Id": "Test004",
"Name": "D",
"T1": 4
}
],
"Item": [
{
"Id": "식별번호",
"Name": "이름",
"ItemType_Enum": "아이템타입",
"CellSizeX:int": "셀크기X",
"CellSizeY:int": "셀크기Y"
},
{
"Id": "Item001",
"Name": "나무장판",
"ItemType_Enum": "Floor",
"CellSizeX:int": 1,
"CellSizeY:int": 1
},
{
"Id": "Item002",
"Name": "테이블",
"ItemType_Enum": "Furniture",
"CellSizeX:int": 2,
"CellSizeY:int": 2
},
{
"Id": "Item003",
"Name": "전등",
"ItemType_Enum": "WallMount",
"CellSizeX:int": "",
"CellSizeY:int": ""
}
]
}

View File

@ -1,77 +0,0 @@
{
"$개요": [
{
"": "시트 생성"
}
],
"FoodData": [
{
"Id:string": "식별ID",
"Name:string": "이름",
"Cookware_Enum": "요리도구",
"Ingredient1:string": "재료1",
"Ingredient2:string": "재료2",
"Taste1:Taste_Enum": "맛1",
"Taste2:Taste_Enum": "맛2",
"Sprite:Sprite": "Addressable 이미지 이름"
},
{
"Id:string": "Food001",
"Name:string": "햇빛수프",
"Cookware_Enum": "Pot",
"Ingredient1:string": "극락쌀",
"Ingredient2:string": "햇빛당근",
"Taste1:Taste_Enum": "Bitter",
"Taste2:Taste_Enum": "Sweet",
"Sprite:Sprite": "Gold"
},
{
"Id:string": "Food002",
"Name:string": "B",
"Cookware_Enum": "FryingPan",
"Ingredient1:string": 1,
"Ingredient2:string": 1,
"Taste1:Taste_Enum": "Spicy",
"Taste2:Taste_Enum": "Bitter",
"Sprite:Sprite": ""
},
{
"Id:string": "Food003",
"Name:string": "C",
"Cookware_Enum": "Pot",
"Ingredient1:string": 2,
"Ingredient2:string": 2,
"Taste1:Taste_Enum": "Fresh",
"Taste2:Taste_Enum": "None",
"Sprite:Sprite": ""
},
{
"Id:string": "Food004",
"Name:string": "D",
"Cookware_Enum": "Plating",
"Ingredient1:string": 3,
"Ingredient2:string": 3,
"Taste1:Taste_Enum": " ",
"Taste2:Taste_Enum": "Salty",
"Sprite:Sprite": "Gold"
}
],
"ItemData": [
{
"Id": "식별번호",
"ItemType_Enum": "아이템타입"
},
{
"Id": "Item001",
"ItemType_Enum": "Food"
},
{
"Id": "Item002",
"ItemType_Enum": "Prop"
},
{
"Id": "Item003",
"ItemType_Enum": "Interactable"
}
]
}

View File

@ -0,0 +1,157 @@
{
"$개요": [
{
"": "시트 생성"
}
],
"ItemData": [
{
"Id": "식별번호",
"ItemType:Enum": "아이템타입"
},
{
"Id": "Item_Food_001",
"ItemType:Enum": "Food"
},
{
"Id": "Item_Environment_001",
"ItemType:Enum": "Environment"
},
{
"Id": "Item_Environment_002",
"ItemType:Enum": "Environment"
},
{
"Id": "Item_Environment_003",
"ItemType:Enum": "Environment"
},
{
"Id": "Item_Environment_004",
"ItemType:Enum": "Environment"
},
{
"Id": "Item_Environment_005",
"ItemType:Enum": "Environment"
}
],
"FoodData": [
{
"Id:string": "식별ID",
"Name:string": "이름",
"Cookware:Enum": "요리도구",
"Ingredient1:string": "재료1",
"Ingredient2:string": "재료2",
"Taste1:Taste_Enum": "맛1",
"Taste2:Taste_Enum": "맛2",
"SpriteKey:string": "SpriteAtlas 키 값"
},
{
"Id:string": "Item_Food_001",
"Name:string": "햇빛수프",
"Cookware:Enum": "Pot",
"Ingredient1:string": "극락쌀",
"Ingredient2:string": "햇빛당근",
"Taste1:Taste_Enum": "Bitter",
"Taste2:Taste_Enum": "Sweet",
"SpriteKey:string": "Gold"
},
{
"Id:string": "Item_Food_002",
"Name:string": "B",
"Cookware:Enum": "FryingPan",
"Ingredient1:string": 1,
"Ingredient2:string": 1,
"Taste1:Taste_Enum": "Spicy",
"Taste2:Taste_Enum": "Bitter",
"SpriteKey:string": ""
},
{
"Id:string": "Item_Food_003",
"Name:string": "C",
"Cookware:Enum": "Pot",
"Ingredient1:string": 2,
"Ingredient2:string": 2,
"Taste1:Taste_Enum": "Fresh",
"Taste2:Taste_Enum": "None",
"SpriteKey:string": ""
},
{
"Id:string": "Item_Food_004",
"Name:string": "D",
"Cookware:Enum": "Plating",
"Ingredient1:string": 3,
"Ingredient2:string": 3,
"Taste1:Taste_Enum": " ",
"Taste2:Taste_Enum": "Salty",
"SpriteKey:string": ""
}
],
"EnvironmentData": [
{
"Id": "식별번호",
"EnvironmentType:Enum": "오브젝트 타입",
"RendererType:Enum": "렌더러 타입",
"IsTrigger:int": "트리거 여부",
"SkeletonDataName:string": "스켈레톤 애니메이션 에셋 이름",
"SkinName:string": "스파인 스킨 이름",
"DefaultAnimationName:string": "",
"SpriteKey:string": "SpriteAtlas 키 값",
"Size:float": "유니티 내의 이미지 크기"
},
{
"Id": "Item_Environment_001",
"EnvironmentType:Enum": "Prop",
"RendererType:Enum": "Sprite",
"IsTrigger:int": 1,
"SkeletonDataName:string": "",
"SkinName:string": "",
"DefaultAnimationName:string": "",
"SpriteKey:string": "Barrel01",
"Size:float": 1
},
{
"Id": "Item_Environment_002",
"EnvironmentType:Enum": "Prop",
"RendererType:Enum": "Spine",
"IsTrigger:int": 1,
"SkeletonDataName:string": "Coral_SkeletonData",
"SkinName:string": "Coral01",
"DefaultAnimationName:string": "Coral01/Idle",
"SpriteKey:string": "",
"Size:float": 1
},
{
"Id": "Item_Environment_003",
"EnvironmentType:Enum": "Prop",
"RendererType:Enum": "Spine",
"IsTrigger:int": 1,
"SkeletonDataName:string": "Coral_SkeletonData",
"SkinName:string": "Coral02",
"DefaultAnimationName:string": "Coral02/Idle",
"SpriteKey:string": "",
"Size:float": 1
},
{
"Id": "Item_Environment_004",
"EnvironmentType:Enum": "Prop",
"RendererType:Enum": "Spine",
"IsTrigger:int": 1,
"SkeletonDataName:string": "SummerGrass01_SkeletonData",
"SkinName:string": "default",
"DefaultAnimationName:string": "Normal",
"SpriteKey:string": "",
"Size:float": 0.2
},
{
"Id": "Item_Environment_005",
"EnvironmentType:Enum": "Interactable",
"RendererType:Enum": "Spine",
"IsTrigger:int": 0,
"SkeletonDataName:string": "",
"SkinName:string": "",
"DefaultAnimationName:string": "",
"SpriteKey:string": "",
"Size:float": 1
}
]
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8bb3a518e5321c149b1909292ea8def4
guid: 42c6cc66b5bf7734da0f1ab7002a6450
TextScriptImporter:
externalObjects: {}
userData:

View File

@ -0,0 +1,46 @@
// <auto-generated>
using System;
using UnityEngine;
namespace DDD
{
[Serializable]
public class EnvironmentData : IId
{
/// <summary>식별번호</summary>
[Tooltip("식별번호")]
[field: SerializeField]
public string Id { get; set; }
/// <summary>오브젝트 타입</summary>
[Tooltip("오브젝트 타입")]
public EnvironmentType EnvironmentType;
/// <summary>렌더러 타입</summary>
[Tooltip("렌더러 타입")]
public RendererType RendererType;
/// <summary>트리거 여부</summary>
[Tooltip("트리거 여부")]
public int IsTrigger;
/// <summary>스켈레톤 애니메이션 에셋 이름</summary>
[Tooltip("스켈레톤 애니메이션 에셋 이름")]
public string SkeletonDataName;
/// <summary>스파인 스킨 이름</summary>
[Tooltip("스파인 스킨 이름")]
public string SkinName;
public string DefaultAnimationName;
/// <summary>SpriteAtlas 키 값</summary>
[Tooltip("SpriteAtlas 키 값")]
public string SpriteKey;
/// <summary>유니티 내의 이미지 크기</summary>
[Tooltip("유니티 내의 이미지 크기")]
public float Size;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 9791e57a663431e46992cd14d9eb1017

View File

@ -0,0 +1,9 @@
// <auto-generated> File: EnvironmentDataSo.cs
using System.Collections.Generic;
using UnityEngine;
namespace DDD
{
[CreateAssetMenu(fileName = "EnvironmentDataSo", menuName = "GoogleSheet/EnvironmentDataSo")]
public class EnvironmentDataSo : DataSo<EnvironmentData> { }
}

Some files were not shown because too many files have changed in this diff Show More