2025-moty
reng 3 weeks ago
parent 30f8e83a6a
commit 99fb779515
  1. 1395
      Assets/Fonts/UDKakugoC80Pro-B SDF.asset
  2. 8
      Assets/Fonts/UDKakugoC80Pro-B SDF.asset.meta
  3. BIN
      Assets/Fonts/UDKakugoC80Pro-B.otf
  4. 21
      Assets/Fonts/UDKakugoC80Pro-B.otf.meta
  5. BIN
      Assets/Postcard/discard.png
  6. 114
      Assets/Postcard/discard.png.meta
  7. BIN
      Assets/Postcard/postcard.png
  8. 114
      Assets/Postcard/postcard.png.meta
  9. 302
      Assets/Scenes/Scene-MOTY.unity
  10. 2
      Assets/Scripts/GoogleDriveUtils.cs
  11. 20
      Assets/Scripts/MotyOscHandler.cs
  12. 256
      Assets/Scripts/MotyUploadToGoogleDrive.cs
  13. 11
      Assets/Scripts/MotyUploadToGoogleDrive.cs.meta
  14. 1
      Assets/Scripts/OscHandler.cs
  15. 2
      Material/token.json/Google.Apis.Auth.OAuth2.Responses.TokenResponse-user

File diff suppressed because one or more lines are too long

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

Binary file not shown.

@ -0,0 +1,21 @@
fileFormatVersion: 2
guid: b83a75b4d73f9744bbe92ddde8f63a7d
TrueTypeFontImporter:
externalObjects: {}
serializedVersion: 4
fontSize: 16
forceTextureCase: -2
characterSpacing: 0
characterPadding: 1
includeFontData: 1
fontNames:
- FOT-UDKakugoC80 Pro
fallbackFontReferences: []
customCharacters:
fontRenderingMode: 0
ascentCalculationMode: 1
useLegacyBoundsCalculation: 0
shouldRoundAdvanceValue: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: f1e3bdbdd173a1d4897aecd4ee95cc56
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: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
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: 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: 3
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: 3
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
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: 90ad5726d91685f409926f9a6bb7ccd7
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: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
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: 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: 3
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: 3
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
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

@ -194,92 +194,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 73630329}
m_CullTransparentMesh: 1
--- !u!1 &106855359
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 106855360}
- component: {fileID: 106855362}
- component: {fileID: 106855361}
- component: {fileID: 106855363}
m_Layer: 5
m_Name: Image-Discard
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &106855360
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 106855359}
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: 453325069}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 883, y: 1245}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &106855361
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 106855359}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 2800000, guid: 53b217500b4d7fe478d05cd63b600446, type: 3}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!222 &106855362
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 106855359}
m_CullTransparentMesh: 1
--- !u!114 &106855363
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 106855359}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3e47ac129448e9f4488c01f5b7182798, type: 3}
m_Name:
m_EditorClassIdentifier:
imagePath: ./Material/Postcard/discard.png
--- !u!1 &129014402
GameObject:
m_ObjectHideFlags: 0
@ -1062,7 +976,7 @@ CanvasGroup:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 337468571}
m_Enabled: 1
m_Alpha: 0
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
@ -1205,10 +1119,10 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 364051445}
- component: {fileID: 364051447}
- component: {fileID: 364051446}
- component: {fileID: 364051447}
m_Layer: 0
m_Name: Uploader-gdrive
m_Name: Moty-Uploader-gdrive
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -1223,11 +1137,11 @@ Transform:
m_GameObject: {fileID: 364051444}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 151.6937, y: 25.384659, z: 10.578705}
m_LocalPosition: {x: 236.09372, y: 25.684647, z: 0.57870483}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 511676375}
m_Father: {fileID: 1853931822}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &364051446
MonoBehaviour:
@ -1272,7 +1186,7 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 364051447}
m_TargetAssemblyTypeName: UploadToGoogleDrive, Assembly-CSharp
m_TargetAssemblyTypeName: MotyUploadToGoogleDrive, Assembly-CSharp
m_MethodName: Save
m_Mode: 0
m_Arguments:
@ -1292,23 +1206,17 @@ MonoBehaviour:
m_GameObject: {fileID: 364051444}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 456a47e8e29ccff4b800fc02420f75ad, type: 3}
m_Script: {fileID: 11500000, guid: 671f8079c9c75074c94e282e8026d039, type: 3}
m_Name:
m_EditorClassIdentifier:
PrintBrightnessMultiplier: 1.2
renderTexture_postcard: {fileID: 8400000, guid: 35e8ac38ef95d18419a5a58ab9299adf, type: 2}
renderTexture_share: {fileID: 8400000, guid: 91633495c7c9dd040b09afd52966b6d4, type: 2}
OutputFolder: output
FirebaseUrl: https://firestore.googleapis.com/v1/projects/uc-24070-thegreattipsy/databases/(default)/documents/
TextNumber: {fileID: 1020432302}
TextNumber: {fileID: 946211683}
TextSummary: {fileID: 630451399}
BackgroundText: {fileID: 974213765}
BackgroundDefault: {fileID: 406932985}
ImageDiscard: {fileID: 106855359}
ImageGenerate: {fileID: 73630329}
ImageDiscardPostcard: {fileID: 1814244730}
ImageGeneratePostcard: {fileID: 580836533}
GoogleDriveFolderId: 19A37k7X-W2BSE989e-ejJU7b-7Bbzu89
ImageDiscardPostcard: {fileID: 1351235760}
ImageGeneratePostcard: {fileID: 73630329}
GoogleDriveFolderId: 1lZ_dJkr4qrIWG1IFd-nPCv__LHALUv0J
--- !u!1 &366298493
GameObject:
m_ObjectHideFlags: 0
@ -1345,8 +1253,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 111, y: 0}
m_SizeDelta: {x: 222, y: 0}
m_AnchoredPosition: {x: 90.75, y: 0}
m_SizeDelta: {x: 181.5, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &366298495
MonoBehaviour:
@ -1470,7 +1378,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &406932986
RectTransform:
m_ObjectHideFlags: 0
@ -1510,7 +1418,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_Texture: {fileID: 2800000, guid: 90ad5726d91685f409926f9a6bb7ccd7, type: 3}
m_UVRect:
serializedVersion: 2
x: 0
@ -1537,7 +1445,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3e47ac129448e9f4488c01f5b7182798, type: 3}
m_Name:
m_EditorClassIdentifier:
imagePath: ./Material/Postcard/frame_default.png
imagePath: ./Material/moty/postcard.png
--- !u!1 &428712009
GameObject:
m_ObjectHideFlags: 0
@ -1681,13 +1589,12 @@ RectTransform:
m_Children:
- {fileID: 1351235761}
- {fileID: 73630330}
- {fileID: 106855360}
m_Father: {fileID: 528439830}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 546.4715, y: -904.0125}
m_SizeDelta: {x: 730, y: 1245}
m_AnchoredPosition: {x: 538.9598, y: -965.5983}
m_SizeDelta: {x: 781.071, y: 1031.598}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &453325070
MonoBehaviour:
@ -2178,7 +2085,7 @@ PrefabInstance:
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c, type: 3}
propertyPath: controls.List.Array.data[11].instance
value:
objectReference: {fileID: 364051447}
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c, type: 3}
propertyPath: controls.List.Array.data[12].instance
value:
@ -2290,7 +2197,7 @@ PrefabInstance:
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c, type: 3}
propertyPath: controls.List.Array.data[11].preInstance
value:
objectReference: {fileID: 364051447}
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c, type: 3}
propertyPath: controls.List.Array.data[12].displayPath
value: GradientEnd
@ -2802,7 +2709,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!81 &511676373
AudioListener:
m_ObjectHideFlags: 0
@ -2876,7 +2783,6 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1146279348}
- {fileID: 364051445}
- {fileID: 1109170008}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -3005,7 +2911,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 453325069}
- {fileID: 974213766}
- {fileID: 406932986}
- {fileID: 1918656957}
- {fileID: 1053697756}
@ -3407,7 +3312,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -349, y: 353}
m_AnchoredPosition: {x: -349, y: 617}
m_SizeDelta: {x: 0, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!225 &611584132
@ -3439,7 +3344,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &630451397
RectTransform:
m_ObjectHideFlags: 0
@ -3592,8 +3497,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 818.125, y: -222}
m_SizeDelta: {x: 233.75, y: 0}
m_AnchoredPosition: {x: 707, y: -181.5}
m_SizeDelta: {x: 202, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &696492449
MonoBehaviour:
@ -4248,8 +4153,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 116.875, y: 0}
m_SizeDelta: {x: 222, y: 0}
m_AnchoredPosition: {x: 101, y: 0}
m_SizeDelta: {x: 181.5, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &830016229
MonoBehaviour:
@ -4446,92 +4351,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 946211681}
m_CullTransparentMesh: 1
--- !u!1 &974213765
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 974213766}
- component: {fileID: 974213768}
- component: {fileID: 974213767}
- component: {fileID: 974213769}
m_Layer: 5
m_Name: bg-text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &974213766
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 974213765}
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: 528439830}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.00030517578}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &974213767
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 974213765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!222 &974213768
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 974213765}
m_CullTransparentMesh: 1
--- !u!114 &974213769
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 974213765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3e47ac129448e9f4488c01f5b7182798, type: 3}
m_Name:
m_EditorClassIdentifier:
imagePath: ./Material/Postcard/frame_text.png
--- !u!1 &1010487597
GameObject:
m_ObjectHideFlags: 0
@ -4944,8 +4763,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 111, y: 0}
m_SizeDelta: {x: 222, y: 0}
m_AnchoredPosition: {x: 90.75, y: 0}
m_SizeDelta: {x: 181.5, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1060364296
MonoBehaviour:
@ -5447,9 +5266,9 @@ MonoBehaviour:
FirebaseUrl: https://firestore.googleapis.com/v1/projects/uc-24070-thegreattipsy/databases/(default)/documents/
TextNumber: {fileID: 1020432302}
TextSummary: {fileID: 630451399}
BackgroundText: {fileID: 974213765}
BackgroundText: {fileID: 0}
BackgroundDefault: {fileID: 406932985}
ImageDiscard: {fileID: 106855359}
ImageDiscard: {fileID: 0}
ImageGenerate: {fileID: 73630329}
ImageDiscardPostcard: {fileID: 1814244730}
ImageGeneratePostcard: {fileID: 580836533}
@ -5488,10 +5307,10 @@ RectTransform:
- {fileID: 555167254}
m_Father: {fileID: 1317646465}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 70, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 697.5, y: -50}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 1, y: 0}
--- !u!114 &1255800684
MonoBehaviour:
@ -5630,7 +5449,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 70}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1317646466
MonoBehaviour:
@ -5708,7 +5527,7 @@ RectTransform:
m_Father: {fileID: 1109170008}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -5835,7 +5654,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_Texture: {fileID: 2800000, guid: f1e3bdbdd173a1d4897aecd4ee95cc56, type: 3}
m_UVRect:
serializedVersion: 2
x: 0
@ -5862,7 +5681,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3e47ac129448e9f4488c01f5b7182798, type: 3}
m_Name:
m_EditorClassIdentifier:
imagePath: ./Material/Postcard/default.jpg
imagePath: ./Material/moty/postcard-default.png
--- !u!1 &1375475701
GameObject:
m_ObjectHideFlags: 0
@ -6593,8 +6412,8 @@ MonoBehaviour:
m_Calls: []
m_text: "\u7B49\u6211\u4E00\u4E0B\n\u63DB\u6211\u8AAA\u56C9"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 7f0534057c5fa054986287e586e6a05e, type: 2}
m_sharedMaterial: {fileID: -4566397573293869855, guid: 7f0534057c5fa054986287e586e6a05e, type: 2}
m_fontAsset: {fileID: 11400000, guid: 1d53ddfb65851cf4dbfc4a82d2922728, type: 2}
m_sharedMaterial: {fileID: -5502009795662789348, guid: 1d53ddfb65851cf4dbfc4a82d2922728, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@ -6618,21 +6437,21 @@ MonoBehaviour:
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 45
m_fontSizeBase: 45
m_fontSize: 40
m_fontSizeBase: 40
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 0
m_fontSizeMax: 0
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 8
m_characterSpacing: 2
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_paragraphSpacing: -35
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
@ -6733,7 +6552,7 @@ CanvasGroup:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1786403751}
m_Enabled: 1
m_Alpha: 0.5
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
@ -6830,7 +6649,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 70, y: 0}
m_SizeDelta: {x: 50, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!95 &1805795145
Animator:
@ -7032,8 +6851,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 467.5, y: 0}
m_SizeDelta: {x: 555, y: 0}
m_AnchoredPosition: {x: 404, y: 0}
m_SizeDelta: {x: 453.75, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1811530096
MonoBehaviour:
@ -7352,6 +7171,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 364051445}
- {fileID: 528439830}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -7370,7 +7190,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &1918656957
RectTransform:
m_ObjectHideFlags: 0
@ -7607,10 +7427,10 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u8F38\u5165\u5169\u4F4D\u6578\u865F\u78BC\n\u8F38\u5165\u5B8C\u6210\uFF0C\u8ACB\u6309\u4E95\u5B57\n\u53D6\u6D88\u8F38\u5165\uFF0C\u8ACB\u6309\u7C73\u5B57"
m_text: "\u8ACB\u8F38\u5165\u4F60\u7684\u96FB\u8A71\u865F\u78BC\n\u6309\u4E0B\uFF03\u9375\uFF0C\u5B8C\u6210\u8F38\u5165\n\u6309\u4E0B\uFF0A\u9375\uFF0C\u91CD\u65B0\u8F38\u5165"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 7f0534057c5fa054986287e586e6a05e, type: 2}
m_sharedMaterial: {fileID: -4566397573293869855, guid: 7f0534057c5fa054986287e586e6a05e, type: 2}
m_fontAsset: {fileID: 11400000, guid: 1d53ddfb65851cf4dbfc4a82d2922728, type: 2}
m_sharedMaterial: {fileID: -5502009795662789348, guid: 1d53ddfb65851cf4dbfc4a82d2922728, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@ -7634,21 +7454,21 @@ MonoBehaviour:
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 45
m_fontSizeBase: 45
m_fontSize: 40
m_fontSizeBase: 40
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 0
m_fontSizeMax: 0
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 8
m_characterSpacing: 2
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_paragraphSpacing: -35
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
@ -7732,7 +7552,7 @@ CanvasGroup:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1995476942}
m_Enabled: 1
m_Alpha: 1
m_Alpha: 0
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0

@ -53,6 +53,8 @@ public class GoogleDriveUtils
{
Debug.Log("Getting/Creating folder path: " + path);
if (path.Length == 0) return parentFolderId;
List<string> folders = new List<string>(path.Split('/'));
string currentFolderId = parentFolderId;

@ -173,11 +173,15 @@ public class MotyOscHandler : MonoBehaviour
switch (status)
{
case "reset":
intro.alpha = 1.0f;
main.alpha = 0f;
// intro.alpha = 1.0f;
if (main.alpha > 0f)
StartCoroutine(FadeCanvasGroup(main, main.alpha, 0f, _fadeDuration));
// if (intro.alpha < 1f)
// StartCoroutine(FadeCanvasGroup(intro, intro.alpha, 1f, _fadeDuration));
// light_mask.alpha = 0f;
hint.alpha = 0f;
setChoiceEffect?.Reset();
// setChoiceEffect?.Reset();
ToggleVideo("standby");
@ -185,7 +189,9 @@ public class MotyOscHandler : MonoBehaviour
case "intro":
// StartCoroutine(FadeCanvasGroup(light_mask, 0f, 1f, _maskDuration));
// StartCoroutine(FadeCanvasGroup(intro, 0f, 1f, _fadeDuration, _maskDuration));
if (main.alpha > 0f)
StartCoroutine(FadeCanvasGroup(main, main.alpha, 0f, _fadeDuration));
StartCoroutine(FadeCanvasGroup(hint, hint.alpha, 1f, _hintDuration));
ToggleVideo("intro");
@ -199,7 +205,8 @@ public class MotyOscHandler : MonoBehaviour
break;
case "end":
// if (intro.alpha > 0f) StartCoroutine(FadeCanvasGroup(intro, 1f, 0f, _fadeDuration));
StartCoroutine(FadeCanvasGroup(main, 1f, 0f, _fadeDuration));
// StartCoroutine(FadeCanvasGroup(main, 1f, 0f, _fadeDuration));
main.alpha = 0f;
// StartCoroutine(FadeCanvasGroup(light_mask, 1f, 0f, _maskDuration, _fadeDuration));
if (hint.alpha > 0f)
{
@ -282,7 +289,8 @@ public class MotyOscHandler : MonoBehaviour
// hintforChat.alpha = 1f;
// if (hintforChat.alpha < 1f)
// {
StartCoroutine(FadeCanvasGroup(hintforChat, hintforChat.alpha, 1f, _hintDuration));
StartCoroutine(FadeCanvasGroup(hintforChat, hintforChat.alpha, 1f, _hintDuration));
// }
if (hint.alpha < 1f)

@ -0,0 +1,256 @@
using System.Collections;
using UnityEngine;
using TMPro;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Drive.v3;
using Google.Apis.Services;
using System;
public class MotyUploadToGoogleDrive : MonoBehaviour
{
public float PrintBrightnessMultiplier = 1.2f;
public class UploadRequestMoty
{
public string id;
public string filename;
public bool default_image;
}
public RenderTexture renderTexture_share;
public string OutputFolder = "output";
public TextMeshProUGUI TextNumber;
public TextMeshProUGUI TextSummary;
// public GameObject BackgroundDefault;
public GameObject ImageDiscardPostcard;
public GameObject ImageGeneratePostcard;
// Start is called before the first frame update
public string GoogleDriveFolderId = "1lZ_dJkr4qrIWG1IFd-nPCv__LHALUv0J";
UploadRequestMoty latest_input;
// DriveService service;
void Start()
{
setupService();
}
// Update is called once per frame
void Update()
{
}
public void Save(string input_text)
{
var parmas = input_text.Split('#');
if (parmas.Length < 2)
{
Debug.LogError("Input text must contain at least two parts separated by '#'.");
return;
}
string id = parmas[0].Trim();
// string summary = parmas[2].Trim();
string filename = id;
bool default_image = parmas[1].Trim().ToLower() == "default";
Debug.Log("/export id=" + id + " default:" + default_image);
if (default_image)
{
ImageGeneratePostcard.SetActive(false);
}
else
{
ImageGeneratePostcard.SetActive(true);
}
TextNumber.SetText(id);
// TextSummary.SetText(summary);
TextNumber.ForceMeshUpdate();
TextSummary.ForceMeshUpdate();
latest_input = new UploadRequestMoty()
{
id = id,
filename = filename,
default_image = default_image,
};
if (!this.enabled || !gameObject.activeInHierarchy){
Debug.LogError("Cannot start coroutine: Host is not active or enabled!");
return;
}
StartCoroutine(ExportAfterFrame(latest_input));
// Export(latest_input);
}
private IEnumerator ExportAfterFrame(UploadRequestMoty uploadRequest)
{
Debug.Log("Waiting for end of frame before exporting...");
// yield return new WaitForEndOfFrame();
yield return null;
Debug.Log("End of frame reached, starting export...");
Export(uploadRequest);
}
public void Export(UploadRequestMoty uploadRequest = null)
{
if (uploadRequest == null)
{
Debug.LogError("UploadRequest is null.");
return;
}
string id = uploadRequest.id;
string filename = uploadRequest.filename;
Debug.Log("Saving image to: filename=" + filename + " id=" + id);
if (string.IsNullOrEmpty(filename))
{
Debug.LogError("Filename cannot be null or empty.");
filename = "untitled_" + System.DateTime.Now.ToString("yyyyMMdd_HHmmss");
// return;
}
Debug.Log("Saving image to: filename=" + filename + " id=" + id);
// string timestamp = System.DateTime.Now.ToString("yyyyMMdd");
// if (!System.IO.Directory.Exists(OutputFolder + "/" + uploadDest))
// {
// System.IO.Directory.CreateDirectory(OutputFolder + "/" + uploadDest);
// }
SaveRenderTextureToPNG(renderTexture_share, System.IO.Path.Combine(OutputFolder, filename + ".png"));
Debug.Log("Image saved to " + filename);
string share_fullPath = System.IO.Path.Combine(OutputFolder + "/", filename + ".png");
Debug.Log("share_path: " + share_fullPath);
upload(share_fullPath, id, "share");
}
void SaveRenderTextureToPNG(RenderTexture rt, string filePath)
{
Debug.Log("Saving RenderTexture to PNG at " + filePath);
RenderTexture currentRT = RenderTexture.active;
RenderTexture.active = rt;
Texture2D tex = new Texture2D(rt.width, rt.height, TextureFormat.RGBA32, false);
tex.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);
// Apply gamma correction (sRGB conversion) to each pixel
for (int y = 0; y < tex.height; y++)
{
for (int x = 0; x < tex.width; x++)
{
Color linearColor = tex.GetPixel(x, y);
Color sRGBColor = new Color(
Mathf.LinearToGammaSpace(linearColor.r),
Mathf.LinearToGammaSpace(linearColor.g),
Mathf.LinearToGammaSpace(linearColor.b),
linearColor.a
);
sRGBColor.r *= PrintBrightnessMultiplier;
                sRGBColor.g *= PrintBrightnessMultiplier;
sRGBColor.b *= PrintBrightnessMultiplier;
tex.SetPixel(x, y, sRGBColor);
}
}
tex.Apply();
byte[] bytes = tex.EncodeToPNG();
System.IO.File.WriteAllBytes(filePath, bytes);
Debug.Log("Saved RenderTexture to PNG at " + filePath + " with size: " + bytes.Length + " bytes");
RenderTexture.active = currentRT;
Destroy(tex);
}
void setupService()
{
// Debug.Log("Setting up Google Drive service...");
// // Initialize Google Drive API service
// service = new DriveService(new BaseClientService.Initializer()
// {
// HttpClientInitializer = GoogleCredential.FromFile("../Material/tech-277909-8bd38efb7464.json").CreateScoped(DriveService.Scope.DriveFile),
// ApplicationName = "24070-Upload",
// });
GoogleDriveUtils.setupService();
}
void upload(string _uploadFile, string _fileId, string type, bool needToPrint = true)
{
if (GoogleDriveUtils.service == null)
{
Debug.Log("service is null, setting up service again.");
setupService();
}
// string path = "";
// int lastSlash = path.LastIndexOf('/');
// Debug.Log("Extracted path: " + path + ", lastSlash=" + lastSlash);
// if (lastSlash >= 0)
// {
// // path = path[..lastSlash];
// path=path.Substring(0, lastSlash);
// }
Debug.Log("Uploading file to Google Drive: " + _uploadFile);
string folderId = GoogleDriveUtils.getFolder(GoogleDriveUtils.service, "", GoogleDriveFolderId);
StartCoroutine(GoogleDriveUtils.UploadCoroutine(GoogleDriveUtils.service, _uploadFile, folderId, _fileId, type,
(response) =>
{
if (response != null)
{
var url = response;
Debug.Log("Upload successful:" + url);
// TODO: back to standby
}
else
{
Debug.LogError("Upload failed: " + response);
}
}
));
}
}

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 671f8079c9c75074c94e282e8026d039
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -65,6 +65,7 @@ public class OscHandler : MonoBehaviour
void Start()
{
setChoiceEffect = main?.GetComponent<SetChoiceEffect>();
onStatus("reset");
}
// Update is called once per frame

@ -1 +1 @@
{"access_token":"ya29.a0AQQ_BDS2nYM6KNRSPy8ekvW2klxI4l3eOqVEEZgTcJyUvqQ-wja9VCNytq1Mny7pwhyrjpxuTHZ04Ug1ekdiXc4DtfV85vI00TfZoSzqpwnyzqHcDBVFrwF84Y_UNyGONmPzGM3eYz_tGDNmzAFWtW-FB60saWpUBDKN3Q53JOpF4BmIjhpnn2lBmJjlubQU1xF_GTeKDwaCgYKAckSARESFQHGX2Mi1q-NANLVrX2jjRDuQ8FD6A0209","token_type":"Bearer","expires_in":3599,"refresh_token":"1//0e-urCtqMVSK6CgYIARAAGA4SNwF-L9IrTWfNUsKFuBn8-mJmQxbXhkBlRW8776bD9xuFk1rFTaMH0dA9yRyESXHTchyXJDAJgkU","scope":"https://www.googleapis.com/auth/drive","Issued":"2025-10-17T12:21:26.480+08:00","IssuedUtc":"2025-10-17T04:21:26.480Z"}
{"access_token":"ya29.a0ATi6K2sEweWNd1ywUv1lyK3HKGdfn5bDw6QrR5IkcW_1x8NOIQv0nAX24vcXSXMKx17Tj12cPxNdrGG76LsIc0pTHqvB5bF2uV4cBDuBlPFX5iI6amaRWBYSzXEH7E10krSuR-65MSu8f6Dfz_QaO3wBdh8nqB8aVH04eGxv5IZ6erm1LVL7k9L8E1jfQbHzzbgR0iAuBAaCgYKAS0SARESFQHGX2MiO2vOgL91oZkggBdrq28w1A0209","token_type":"Bearer","expires_in":3599,"refresh_token":"1//0e-urCtqMVSK6CgYIARAAGA4SNwF-L9IrTWfNUsKFuBn8-mJmQxbXhkBlRW8776bD9xuFk1rFTaMH0dA9yRyESXHTchyXJDAJgkU","scope":"https://www.googleapis.com/auth/drive","Issued":"2025-11-18T18:27:14.503+08:00","IssuedUtc":"2025-11-18T10:27:14.503Z"}
Loading…
Cancel
Save