diff --git a/Assets/01 - Models.meta b/Assets/01 - Models.meta new file mode 100644 index 0000000..2a71cce --- /dev/null +++ b/Assets/01 - Models.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 08bc82a42690b7a428577dda9574c0f7 +folderAsset: yes +timeCreated: 1497605441 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Controller Demo.meta b/Assets/01 - Models/Controller Demo.meta new file mode 100644 index 0000000..bb877c2 --- /dev/null +++ b/Assets/01 - Models/Controller Demo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c16a419f86e5d5741949c0ad90ba33a1 +folderAsset: yes +timeCreated: 1498478203 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Room Designer.meta b/Assets/01 - Models/Room Designer.meta new file mode 100644 index 0000000..99a44ea --- /dev/null +++ b/Assets/01 - Models/Room Designer.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 62c1a7731dddb45458f2888aeb60e91d +folderAsset: yes +timeCreated: 1498478190 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator.meta b/Assets/01 - Models/Vehicle Configurator.meta new file mode 100644 index 0000000..524514c --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cb4451af63fc39d489cd718d4d642542 +folderAsset: yes +timeCreated: 1498478183 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM.meta new file mode 100644 index 0000000..42ed123 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f9a475df782357a4081967b04c412e19 +folderAsset: yes +timeCreated: 1498478274 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials.meta new file mode 100644 index 0000000..c50dd70 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a9393c7e94378ac4d8dac001ad165fb0 +folderAsset: yes +timeCreated: 1467042497 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Backlight.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Backlight.mat new file mode 100644 index 0000000..102082f Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Backlight.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Backlight.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Backlight.mat.meta new file mode 100644 index 0000000..0a3cf74 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Backlight.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 38cf278ee46da214d8a397874fc86754 +timeCreated: 1467042497 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Chrom.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Chrom.mat new file mode 100644 index 0000000..6bdfc6f Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Chrom.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Chrom.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Chrom.mat.meta new file mode 100644 index 0000000..0da0a2b --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Chrom.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a0d3870f8f308849b76cc1c88379700 +timeCreated: 1467042497 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Dunkle_Metal.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Dunkle_Metal.mat new file mode 100644 index 0000000..0b6d311 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Dunkle_Metal.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Dunkle_Metal.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Dunkle_Metal.mat.meta new file mode 100644 index 0000000..2eb5199 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Dunkle_Metal.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 28d34d4cd1783c8469f0965a37233899 +timeCreated: 1467042497 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Frontlight.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Frontlight.mat new file mode 100644 index 0000000..d371519 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Frontlight.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Frontlight.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Frontlight.mat.meta new file mode 100644 index 0000000..5cc4f34 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Frontlight.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42a464cd206f8314d91e86b4c4b8139a +timeCreated: 1467042497 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi.mat new file mode 100644 index 0000000..88a8699 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi.mat.meta new file mode 100644 index 0000000..ae2c31b --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3198ed8a3c9998546a53df99a60c1862 +timeCreated: 1467042498 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi_2.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi_2.mat new file mode 100644 index 0000000..baf4c96 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi_2.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi_2.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi_2.mat.meta new file mode 100644 index 0000000..e58993f --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Gummi_2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c6420ce1ed2ab6f4ab2ba343ee631e8b +timeCreated: 1467042497 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Lack.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Lack.mat new file mode 100644 index 0000000..aef1154 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Lack.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Lack.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Lack.mat.meta new file mode 100644 index 0000000..7b5e4c9 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Lack.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3af002da278a2b640936ffbfe23c0f00 +timeCreated: 1467042497 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Leder.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Leder.mat new file mode 100644 index 0000000..46f4b94 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Leder.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Leder.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Leder.mat.meta new file mode 100644 index 0000000..ac7c065 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Leder.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1d3b73c5e0f89fb438041115f2163b17 +timeCreated: 1467042497 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Metal.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Metal.mat new file mode 100644 index 0000000..3a0ab53 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Metal.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Metal.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Metal.mat.meta new file mode 100644 index 0000000..b382e91 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Metal.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ec7315fe690a9e4694d472877ae73ac +timeCreated: 1467042497 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Tacho.mat b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Tacho.mat new file mode 100644 index 0000000..7d7d210 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Tacho.mat differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Tacho.mat.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Tacho.mat.meta new file mode 100644 index 0000000..932776d --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Materials/Tacho.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1238b1b334d102847aafe7895ea43736 +timeCreated: 1467042497 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Model.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Model.meta new file mode 100644 index 0000000..3c3b787 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Model.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c3cb3ec3999d29b4d803acc6911d7122 +folderAsset: yes +timeCreated: 1467042528 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Model/Vespa_MM.fbx b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Model/Vespa_MM.fbx new file mode 100644 index 0000000..200f3e7 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Model/Vespa_MM.fbx differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Model/Vespa_MM.fbx.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Model/Vespa_MM.fbx.meta new file mode 100644 index 0000000..101969a --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Model/Vespa_MM.fbx.meta @@ -0,0 +1,77 @@ +fileFormatVersion: 2 +guid: fbd7990c94ac4294e9d01709030f6de3 +timeCreated: 1467042498 +licenseType: Free +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: Vespa_50_Colored + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleRotations: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 100 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 1 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures.meta new file mode 100644 index 0000000..50302f1 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 24eecfff90a27b74baa83fa407265105 +folderAsset: yes +timeCreated: 1467042534 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_AlbedoTransparency.png new file mode 100644 index 0000000..bff546d Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_AlbedoTransparency.png.meta new file mode 100644 index 0000000..721e94c --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: c8da6ba71565ee048978b0bdfa0b7c4c +timeCreated: 1467042599 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Emission.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Emission.png new file mode 100644 index 0000000..a8a1e58 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Emission.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Emission.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Emission.png.meta new file mode 100644 index 0000000..7fdda17 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Emission.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 356b5bdcf0ace48489cc653832f04fd8 +timeCreated: 1467042586 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_MetallicSmoothness.png new file mode 100644 index 0000000..47b2bec Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_MetallicSmoothness.png.meta new file mode 100644 index 0000000..9acf683 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 5be7541ad546b80448390c9c9bfe885e +timeCreated: 1467042587 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Normal.png new file mode 100644 index 0000000..c0c066c Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Normal.png.meta new file mode 100644 index 0000000..d103798 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Backlight_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: ddfbe2befa1436d46bc182067ffc507c +timeCreated: 1467042659 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_AlbedoTransparency.png new file mode 100644 index 0000000..9ee8272 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_AlbedoTransparency.png.meta new file mode 100644 index 0000000..a97291b --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 840a128b191ee5e46b5d365b5e33ac6e +timeCreated: 1467042593 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_MetallicSmoothness.png new file mode 100644 index 0000000..327d2ae Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_MetallicSmoothness.png.meta new file mode 100644 index 0000000..599ae77 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: cb8c7be6803168645ab0a1a68677fab0 +timeCreated: 1467042600 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_Normal.png new file mode 100644 index 0000000..c0c066c Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_Normal.png.meta new file mode 100644 index 0000000..acbc8e3 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Chrom_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 6f912ea36fbd28747aa583a1fa27f3b6 +timeCreated: 1467042835 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_AlbedoTransparency.png new file mode 100644 index 0000000..3e7d80c Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_AlbedoTransparency.png.meta new file mode 100644 index 0000000..4a218da --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 2f316a79b4f33974b9003f89d3839f63 +timeCreated: 1467042581 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_MetallicSmoothness.png new file mode 100644 index 0000000..bdd6c70 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_MetallicSmoothness.png.meta new file mode 100644 index 0000000..f7d8530 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: bb48d88fec450a04c9bd8f3c5378b4d0 +timeCreated: 1467042598 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_Normal.png new file mode 100644 index 0000000..8184584 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_Normal.png.meta new file mode 100644 index 0000000..275e71d --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Dunkle_Metal_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 322bc4d2c5f7b78459a225c799e6065c +timeCreated: 1467042877 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_AlbedoTransparency.png new file mode 100644 index 0000000..71b8500 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_AlbedoTransparency.png.meta new file mode 100644 index 0000000..3e5afc0 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: dbe511b16751bfa4aa153206f09fb502 +timeCreated: 1467042601 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Emission.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Emission.png new file mode 100644 index 0000000..5b13165 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Emission.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Emission.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Emission.png.meta new file mode 100644 index 0000000..8153706 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Emission.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 63f08901bbf02c74bb76fe1e17cf6f82 +timeCreated: 1467042589 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_MetallicSmoothness.png new file mode 100644 index 0000000..47b2bec Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_MetallicSmoothness.png.meta new file mode 100644 index 0000000..28f7d46 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: f10eaf59cbdf6b94e9c572ad2c277def +timeCreated: 1467042606 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Normal.png new file mode 100644 index 0000000..c0c066c Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Normal.png.meta new file mode 100644 index 0000000..a8b2629 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Frontlight_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 6989de0c4283b27409c300d974c207d4 +timeCreated: 1467042913 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_AlbedoTransparency.png new file mode 100644 index 0000000..baf86b0 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_AlbedoTransparency.png.meta new file mode 100644 index 0000000..09165be --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: a4cea9484b2a36648aa23cea1db0b314 +timeCreated: 1467042596 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_MetallicSmoothness.png new file mode 100644 index 0000000..357f1a8 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_MetallicSmoothness.png.meta new file mode 100644 index 0000000..643381a --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 8700120c0aac5b6458ae9aeb446f2dcb +timeCreated: 1467042594 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_Normal.png new file mode 100644 index 0000000..8143f9d Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_Normal.png.meta new file mode 100644 index 0000000..1c2239e --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_2_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 97afcdf02f77a4e4a9238ffcfe903e59 +timeCreated: 1467042968 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_AlbedoTransparency.png new file mode 100644 index 0000000..ac52203 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_AlbedoTransparency.png.meta new file mode 100644 index 0000000..8bb95e3 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 07b77a1b857e79641a28da5d5609d102 +timeCreated: 1467042578 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_MetallicSmoothness.png new file mode 100644 index 0000000..1cac3e4 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_MetallicSmoothness.png.meta new file mode 100644 index 0000000..b4f21b4 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: fd84646fa97b1f54695cc8183465ff35 +timeCreated: 1467042607 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_Normal.png new file mode 100644 index 0000000..d275627 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_Normal.png.meta new file mode 100644 index 0000000..9bf3f5a --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Gummi_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: ebb3c431fd5b29a4b886e4c34bf01327 +timeCreated: 1467042944 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_AlbedoTransparency.png new file mode 100644 index 0000000..1300c61 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_AlbedoTransparency.png.meta new file mode 100644 index 0000000..8d76ea1 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 30669018db54d3444bc9a381685c9af0 +timeCreated: 1467042583 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-001_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-001_AlbedoTransparency.png new file mode 100644 index 0000000..acf2300 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-001_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-001_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-001_AlbedoTransparency.png.meta new file mode 100644 index 0000000..5f2edba --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-001_AlbedoTransparency.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 5b16107b138f1a84d8a8393246e80fba +timeCreated: 1498486598 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-002_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-002_AlbedoTransparency.png new file mode 100644 index 0000000..d9f1fd2 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-002_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-002_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-002_AlbedoTransparency.png.meta new file mode 100644 index 0000000..c7b1d30 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-002_AlbedoTransparency.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 9f0ecd61b7232c243971aa84d0819d57 +timeCreated: 1498486600 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-003_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-003_AlbedoTransparency.png new file mode 100644 index 0000000..4dd1683 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-003_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-003_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-003_AlbedoTransparency.png.meta new file mode 100644 index 0000000..e5bc433 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-003_AlbedoTransparency.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: d20e811c4c2919348aebdd978dd8731d +timeCreated: 1498486603 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-004_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-004_AlbedoTransparency.png new file mode 100644 index 0000000..5bdf56b Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-004_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-004_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-004_AlbedoTransparency.png.meta new file mode 100644 index 0000000..49792a8 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-004_AlbedoTransparency.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 2dec806092023bd458036b439393be43 +timeCreated: 1498486593 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-005_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-005_AlbedoTransparency.png new file mode 100644 index 0000000..bb839de Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-005_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-005_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-005_AlbedoTransparency.png.meta new file mode 100644 index 0000000..bdc5b33 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Alt-005_AlbedoTransparency.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 31c827ffa47e70c429c341407c48c69a +timeCreated: 1498486595 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_MetallicSmoothness.png new file mode 100644 index 0000000..47b2bec Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_MetallicSmoothness.png.meta new file mode 100644 index 0000000..25551d2 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 815e193c35db94947831eda359b0b92b +timeCreated: 1467042592 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Normal.png new file mode 100644 index 0000000..c0c066c Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Normal.png.meta new file mode 100644 index 0000000..52ba4cb --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Lack_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 0a27ad1b6425ebc4aafbafc9ae7b99c9 +timeCreated: 1467042998 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_AlbedoTransparency.png new file mode 100644 index 0000000..9562e11 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_AlbedoTransparency.png.meta new file mode 100644 index 0000000..ecea7c4 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 04fb83e85c5e0864893e5556ec4c1817 +timeCreated: 1467042577 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-001_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-001_AlbedoTransparency.png new file mode 100644 index 0000000..835c780 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-001_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-001_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-001_AlbedoTransparency.png.meta new file mode 100644 index 0000000..4bd2e33 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-001_AlbedoTransparency.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: e0f014a9b9c91ad47b4aba26c03cba54 +timeCreated: 1498516393 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-002_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-002_AlbedoTransparency.png new file mode 100644 index 0000000..9bfa516 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-002_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-002_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-002_AlbedoTransparency.png.meta new file mode 100644 index 0000000..5de12c9 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Alt-002_AlbedoTransparency.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 3f3fc0678d03852438332f650f55feaa +timeCreated: 1498516390 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_MetallicSmoothness.png new file mode 100644 index 0000000..a164c00 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_MetallicSmoothness.png.meta new file mode 100644 index 0000000..0c3b568 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: b26461f7183117b43ab17d2790781b04 +timeCreated: 1467042597 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Normal.png new file mode 100644 index 0000000..6ef1ea6 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Normal.png.meta new file mode 100644 index 0000000..28b223f --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Leder_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 37741c1aec9cd6146a13ba29de7c06dc +timeCreated: 1467043022 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_AlbedoTransparency.png new file mode 100644 index 0000000..9a7640c Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_AlbedoTransparency.png.meta new file mode 100644 index 0000000..508f672 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 2c71aef6d585897419df3b9d0b8bc2fc +timeCreated: 1467042580 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_MetallicSmoothness.png new file mode 100644 index 0000000..a29ed52 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_MetallicSmoothness.png.meta new file mode 100644 index 0000000..fa76815 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 7d6e3eb996765034c94a4df2ebe7fe69 +timeCreated: 1467042591 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_Normal.png new file mode 100644 index 0000000..6d4d919 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_Normal.png.meta new file mode 100644 index 0000000..c93ac2b --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Metal_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: c3d2cd5eb16ce294993cd73b6572a773 +timeCreated: 1467043058 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_AlbedoTransparency.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_AlbedoTransparency.png new file mode 100644 index 0000000..6384b79 Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_AlbedoTransparency.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_AlbedoTransparency.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_AlbedoTransparency.png.meta new file mode 100644 index 0000000..10b8e1c --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_AlbedoTransparency.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: cf6ebba49e9bba344a42081811a25b23 +timeCreated: 1467042600 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_MetallicSmoothness.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_MetallicSmoothness.png new file mode 100644 index 0000000..47b2bec Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_MetallicSmoothness.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_MetallicSmoothness.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_MetallicSmoothness.png.meta new file mode 100644 index 0000000..6a6e036 --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_MetallicSmoothness.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: e78873d13048ed943a4b156bf2ef1e34 +timeCreated: 1467042604 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_Normal.png b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_Normal.png new file mode 100644 index 0000000..c0c066c Binary files /dev/null and b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_Normal.png differ diff --git a/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_Normal.png.meta b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_Normal.png.meta new file mode 100644 index 0000000..62dd7ad --- /dev/null +++ b/Assets/01 - Models/Vehicle Configurator/Vespa_MM/Textures/Vespa_MM_Tacho_Normal.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: df6f69e04f6694a4b9dbcdd3f61e2734 +timeCreated: 1467043091 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/02 - Audio.meta b/Assets/02 - Audio.meta new file mode 100644 index 0000000..11100ee --- /dev/null +++ b/Assets/02 - Audio.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 25a78b96612a89d48ab2b0412f50f151 +folderAsset: yes +timeCreated: 1497605537 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/02 - Audio/9728170_inspiring-cinematic-trailer_by_alex_besss_preview.mp3 b/Assets/02 - Audio/9728170_inspiring-cinematic-trailer_by_alex_besss_preview.mp3 new file mode 100644 index 0000000..92d78df Binary files /dev/null and b/Assets/02 - Audio/9728170_inspiring-cinematic-trailer_by_alex_besss_preview.mp3 differ diff --git a/Assets/02 - Audio/9728170_inspiring-cinematic-trailer_by_alex_besss_preview.mp3.meta b/Assets/02 - Audio/9728170_inspiring-cinematic-trailer_by_alex_besss_preview.mp3.meta new file mode 100644 index 0000000..df96b26 --- /dev/null +++ b/Assets/02 - Audio/9728170_inspiring-cinematic-trailer_by_alex_besss_preview.mp3.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: a29ad1c2b97c34c4783bde0cf425896e +timeCreated: 1497628534 +licenseType: Free +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 1 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials.meta b/Assets/03 - Materials.meta new file mode 100644 index 0000000..b49ba5d --- /dev/null +++ b/Assets/03 - Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fcb5aee2279fbfc439913eadb87fc23c +folderAsset: yes +timeCreated: 1497605529 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/OutlineSelectionMaterial.mat b/Assets/03 - Materials/OutlineSelectionMaterial.mat new file mode 100644 index 0000000..11d4305 Binary files /dev/null and b/Assets/03 - Materials/OutlineSelectionMaterial.mat differ diff --git a/Assets/03 - Materials/OutlineSelectionMaterial.mat.meta b/Assets/03 - Materials/OutlineSelectionMaterial.mat.meta new file mode 100644 index 0000000..09d0b0a --- /dev/null +++ b/Assets/03 - Materials/OutlineSelectionMaterial.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 67b54269955004743995cf2f99f8035d +timeCreated: 1498133161 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/PreviewSelectionMaterial.mat b/Assets/03 - Materials/PreviewSelectionMaterial.mat new file mode 100644 index 0000000..a56b7e7 Binary files /dev/null and b/Assets/03 - Materials/PreviewSelectionMaterial.mat differ diff --git a/Assets/03 - Materials/PreviewSelectionMaterial.mat.meta b/Assets/03 - Materials/PreviewSelectionMaterial.mat.meta new file mode 100644 index 0000000..c9af053 --- /dev/null +++ b/Assets/03 - Materials/PreviewSelectionMaterial.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: be8c920c435b2b34b8a251596719b274 +timeCreated: 1498132918 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/TestingMaterial_01.mat b/Assets/03 - Materials/TestingMaterial_01.mat new file mode 100644 index 0000000..5a7c07e Binary files /dev/null and b/Assets/03 - Materials/TestingMaterial_01.mat differ diff --git a/Assets/03 - Materials/TestingMaterial_01.mat.meta b/Assets/03 - Materials/TestingMaterial_01.mat.meta new file mode 100644 index 0000000..429f0a9 --- /dev/null +++ b/Assets/03 - Materials/TestingMaterial_01.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3ee62ba0a4f30a7429c2006f6da5b0a7 +timeCreated: 1497624303 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/TestingMaterial_02.mat b/Assets/03 - Materials/TestingMaterial_02.mat new file mode 100644 index 0000000..82459b7 Binary files /dev/null and b/Assets/03 - Materials/TestingMaterial_02.mat differ diff --git a/Assets/03 - Materials/TestingMaterial_02.mat.meta b/Assets/03 - Materials/TestingMaterial_02.mat.meta new file mode 100644 index 0000000..e9a5095 --- /dev/null +++ b/Assets/03 - Materials/TestingMaterial_02.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c2b3d3f0aca5f9b4e870d3d3031d76f0 +timeCreated: 1497624318 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/TestingMaterial_03.mat b/Assets/03 - Materials/TestingMaterial_03.mat new file mode 100644 index 0000000..fbae0ba Binary files /dev/null and b/Assets/03 - Materials/TestingMaterial_03.mat differ diff --git a/Assets/03 - Materials/TestingMaterial_03.mat.meta b/Assets/03 - Materials/TestingMaterial_03.mat.meta new file mode 100644 index 0000000..ff5ea02 --- /dev/null +++ b/Assets/03 - Materials/TestingMaterial_03.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 884d04288290c744bbd533aa28211bc6 +timeCreated: 1498132861 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo.meta b/Assets/03 - Materials/Vehicle Configurator Demo.meta new file mode 100644 index 0000000..a3cfd27 --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 757bd2da629abdb46961e9b4cd5d1ec1 +folderAsset: yes +timeCreated: 1498486969 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorBox.mat b/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorBox.mat new file mode 100644 index 0000000..16f663f Binary files /dev/null and b/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorBox.mat differ diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorBox.mat.meta b/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorBox.mat.meta new file mode 100644 index 0000000..d77e5d5 --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorBox.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4bb038a842129f4469019566317d7a2f +timeCreated: 1498486713 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorSkybox.mat b/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorSkybox.mat new file mode 100644 index 0000000..feeaea6 Binary files /dev/null and b/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorSkybox.mat differ diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorSkybox.mat.meta b/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorSkybox.mat.meta new file mode 100644 index 0000000..88dc36a --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo/ConfiguratorSkybox.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dafb9964040931e44ae6463520a4eacd +timeCreated: 1498483132 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_001.mat b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_001.mat new file mode 100644 index 0000000..e21905e Binary files /dev/null and b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_001.mat differ diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_001.mat.meta b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_001.mat.meta new file mode 100644 index 0000000..b0bffb7 --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_001.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1032e4ef8d73c6f4ba2eb3653d410fac +timeCreated: 1498487083 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: -1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_002.mat b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_002.mat new file mode 100644 index 0000000..f557598 Binary files /dev/null and b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_002.mat differ diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_002.mat.meta b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_002.mat.meta new file mode 100644 index 0000000..fabb539 --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_002.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 42286ef848c4eac4bb2a422bccb12f48 +timeCreated: 1498487083 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: -1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_003.mat b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_003.mat new file mode 100644 index 0000000..7b8e407 Binary files /dev/null and b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_003.mat differ diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_003.mat.meta b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_003.mat.meta new file mode 100644 index 0000000..13ec946 --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_003.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4fe2cd63a133ffd4495ff5daf95c8890 +timeCreated: 1498487083 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: -1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_004.mat b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_004.mat new file mode 100644 index 0000000..6721570 Binary files /dev/null and b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_004.mat differ diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_004.mat.meta b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_004.mat.meta new file mode 100644 index 0000000..7873312 --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_004.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9fbd3a6ead12a774893a5e70f8abaf64 +timeCreated: 1498487083 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: -1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_005.mat b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_005.mat new file mode 100644 index 0000000..b2c2d4a Binary files /dev/null and b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_005.mat differ diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_005.mat.meta b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_005.mat.meta new file mode 100644 index 0000000..51b7348 --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo/Lack_Alt_005.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bf04a2424976c4b4999e076ca519355d +timeCreated: 1498487083 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: -1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_001.mat b/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_001.mat new file mode 100644 index 0000000..e62b737 Binary files /dev/null and b/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_001.mat differ diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_001.mat.meta b/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_001.mat.meta new file mode 100644 index 0000000..69a2922 --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_001.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c764e433edbf3c846b69146963017ddd +timeCreated: 1498516613 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_002.mat b/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_002.mat new file mode 100644 index 0000000..6dd819b Binary files /dev/null and b/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_002.mat differ diff --git a/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_002.mat.meta b/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_002.mat.meta new file mode 100644 index 0000000..e4e1ae3 --- /dev/null +++ b/Assets/03 - Materials/Vehicle Configurator Demo/Leder_Alt_002.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 22f0422547248524fbce8818fd5a9711 +timeCreated: 1498516630 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts.meta b/Assets/04 - Scripts.meta new file mode 100644 index 0000000..7f335af --- /dev/null +++ b/Assets/04 - Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 14e1a5a69e822814b8fce484e3bd7837 +folderAsset: yes +timeCreated: 1497605448 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/ApplicationManager.cs b/Assets/04 - Scripts/ApplicationManager.cs new file mode 100644 index 0000000..abf0089 --- /dev/null +++ b/Assets/04 - Scripts/ApplicationManager.cs @@ -0,0 +1,279 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ApplicationManager : MonoBehaviour { + + // create a state enum + public enum ApplicationState + { + initApplication, + checkForContentUpdate, + waitForServerResonse, + downloadContentUpdate, + installContentUpdate, + running, + changeScene, + initScene, + exitScene, + savingConfigurations, + loadingConfigurations, + enterPauseApplication, + pauseApplication, + resumeApplication, + exitApplication + } + + #region Public Attributes + // global instance of the application manager + public static ApplicationManager instance = null; + + // debug + public ApplicationState CurrentState { get { return _currentState; } } + + #endregion + + #region Private Attributes + + // private attribute for the update check URL + private string updateURL = "http://www.evolut.studio/vrapp/index.php"; + private string updateUsername = "tester@vrapp"; + private string updatePassword = "EvolutStudioVR"; + + // private attribute for tracking the current application state + private ApplicationState _currentState = ApplicationState.initApplication; + + // private attribute for the current SceneManager + private SceneManager currentSceneManager; + + // private attribute for the current SceneController + private SceneController currentSceneController; + + // private attribute for new scene name to load next + private string requestedSceneNameToLoad; + + // private attribute for the update notification + GameObject updateNotification = null; + + #endregion + + #region Public Functions + + // set the given scene manager as the current instance of SceneManager + public void registerSceneManagerAndController(SceneManager cSceneManager, SceneController cSceneController) + { + currentSceneManager = cSceneManager; + currentSceneController = cSceneController; + } + + // global function for changing scene + public void registerSceneChange(string requestedSceneName) + { + // register new scene name to load next + requestedSceneNameToLoad = requestedSceneName; + + // change current state to exitScene + _currentState = ApplicationState.exitScene; + } + + #endregion + + #region Private Functions + + // init application + void InitApplication() + { + //TODO: other things for init + + // check if the application runs for the first time + if(!PlayerPrefs.HasKey("Settings")) + { + //TODO: load default_settings.json into the new created key "Settings" + } + + //TODO: check for firsttime running and load default configuration + + // change the current state to running + _currentState = ApplicationState.checkForContentUpdate; + } + + void CheckForContentUpdate() + { + // start coroutine until response + StartCoroutine(startServerRequest()); + + // instantiate the update notification prefab + //updateNotification = Instantiate(Resources.Load("UpdateNotification", typeof(GameObject))) as GameObject; + + // change the current state to wait for server response + _currentState = ApplicationState.waitForServerResonse; + } + + IEnumerator startServerRequest() + { + // Create a Web Form + WWWForm form = new WWWForm(); + form.AddField("username", updateUsername); + form.AddField("password", updatePassword); + + // start a request to update server + WWW w = new WWW(updateURL, form); + + // wait for request + yield return w; + + // check response from server + if (!string.IsNullOrEmpty(w.error)) + { + Debug.Log(w.error); + } + else + { + // create a new update model from server response + UpdateModel update = UpdateModel.CreateModelFromJSON(w.text); + + // TODO: Antwort auswerten + //zwei fälle entweder update=true --> downloadContentUpdate + // oder update=false --> running + //currentState = ApplicationState.running; + Debug.Log(w.text); + Debug.Log(update.description); + Debug.Log(update.version); + } + } + + void InitScene() + { + // Call initScene from current SceneManager + currentSceneManager.initScene(); + + // change current State to running + _currentState = ApplicationState.running; + } + + void ExitScene() + { + // save scene data + //TODO + + // change current state to changeScene + _currentState = ApplicationState.changeScene; + } + + void ChangeScene() + { + // load scene from given name + UnityEngine.SceneManagement.SceneManager.LoadScene(requestedSceneNameToLoad); + + // change current state to initScene + _currentState = ApplicationState.initScene; + } + + void PauseApplication() + { + + } + + void ResumeApplication() + { + + } + + // set the current state depending on the given status value + private void CheckForApplicationPause(bool statusValue) + { + if (statusValue) + { + _currentState = ApplicationState.pauseApplication; + } + else + { + _currentState = ApplicationState.resumeApplication; + } + } + + #endregion + + #region Unity Events + void Awake() + { + + //Check if instance already exists + if (instance == null) + { + //if not, set instance to this + instance = this; + } + else if (instance != this) + { + //Then destroy this. This enforces our singleton pattern, meaning there can only ever be one instance of a GameManager. + Destroy(gameObject); + } + + //Sets this to not be destroyed when reloading scene + DontDestroyOnLoad(gameObject); + + // change current state to init application + _currentState = ApplicationState.initApplication; + } + + /*void OnApplicationFocus(bool hasFocus) + { + CheckForApplicationPause(!hasFocus); + } + + void OnApplicationPause(bool pauseStatus) + { + CheckForApplicationPause(pauseStatus); + }*/ + + void Update () { + // Logic depenging on current state + switch (_currentState) + { + case ApplicationState.initApplication: + Debug.Log("STATE: INIT APPLICATION"); + // call private init application function + InitApplication(); + break; + case ApplicationState.checkForContentUpdate: + Debug.Log("STATE: CHECK FOR CONTENT UPDATE"); + // call private check for content updates function + CheckForContentUpdate(); + break; + + case ApplicationState.running: + //Debug.Log("STATE: RUNNING"); + //TODO + break; + + case ApplicationState.pauseApplication: + Debug.Log("STATE: PAUSE APPLICATION"); + //TODO + break; + + case ApplicationState.resumeApplication: + Debug.Log("STATE: RESUME APPLICATION"); + //TODO + break; + + case ApplicationState.initScene: + Debug.Log("STATE: INIT SCENE"); + // call private init scene function + InitScene(); + break; + case ApplicationState.changeScene: + Debug.Log("STATE: CHANGE SCENE"); + // call private change scene function + ChangeScene(); + break; + case ApplicationState.exitScene: + Debug.Log("STATE: EXIT SCENE"); + // call privat exit scene function + ExitScene(); + break; + } + } + + #endregion +} diff --git a/Assets/04 - Scripts/ApplicationManager.cs.meta b/Assets/04 - Scripts/ApplicationManager.cs.meta new file mode 100644 index 0000000..f0396cb --- /dev/null +++ b/Assets/04 - Scripts/ApplicationManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4e0abacc5fc7047418a0f55e47de927b +timeCreated: 1498125872 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/ConfiguratorSceneController.cs b/Assets/04 - Scripts/ConfiguratorSceneController.cs new file mode 100644 index 0000000..867504d --- /dev/null +++ b/Assets/04 - Scripts/ConfiguratorSceneController.cs @@ -0,0 +1,12 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConfiguratorSceneController : MonoBehaviour { + + public void onBackToMain() + { + Debug.Log("Back2Main"); + UnityEngine.SceneManagement.SceneManager.LoadScene("01 - main"); + } +} diff --git a/Assets/04 - Scripts/ConfiguratorSceneController.cs.meta b/Assets/04 - Scripts/ConfiguratorSceneController.cs.meta new file mode 100644 index 0000000..ea3d35f --- /dev/null +++ b/Assets/04 - Scripts/ConfiguratorSceneController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e316b784511ceb64ea89a72b5a4651f9 +timeCreated: 1498517263 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/MainSceneController.cs b/Assets/04 - Scripts/MainSceneController.cs new file mode 100644 index 0000000..aa2ca7b --- /dev/null +++ b/Assets/04 - Scripts/MainSceneController.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class MainSceneController : SceneController { + + public void onStartVehicleConfigurator() + { + UnityEngine.SceneManagement.SceneManager.LoadScene("02 - configurator"); + } + + public void onStartRoomDesigner() + { + this.GetComponent().requestSceneChange("03 - room-designer"); + } + + public void onStartDemoScene() + { + this.GetComponent().requestSceneChange("04 - demo"); + } +} diff --git a/Assets/04 - Scripts/MainSceneController.cs.meta b/Assets/04 - Scripts/MainSceneController.cs.meta new file mode 100644 index 0000000..9ae6fa0 --- /dev/null +++ b/Assets/04 - Scripts/MainSceneController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 21f34639b325910449b7d9f7287d1f3c +timeCreated: 1498136250 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/Model.meta b/Assets/04 - Scripts/Model.meta new file mode 100644 index 0000000..8a16aa3 --- /dev/null +++ b/Assets/04 - Scripts/Model.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ce15d08a089c4834eb1d4dcc367f6ef7 +folderAsset: yes +timeCreated: 1498158715 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/Model/SimpleMaterialChooserDemoModel.cs b/Assets/04 - Scripts/Model/SimpleMaterialChooserDemoModel.cs new file mode 100644 index 0000000..65cfb03 --- /dev/null +++ b/Assets/04 - Scripts/Model/SimpleMaterialChooserDemoModel.cs @@ -0,0 +1,108 @@ +using System; +using UnityEngine; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace SimpleMaterialChooserDemo + { + public class SimpleMaterialChooserDemoModel : BaseClassModel + { + #region Public Attributes + + // materials array + public Material[] materials; + + // reference of the current selected material + public Material selectedMaterial; + + // reference of the current tooltip state + public bool currentTooltipState { get { return _currentTooltipState; } } + + #endregion + + #region Private Attributes + + // posible tooltip states (better readability) + private static class TooltipState + { + public static bool show = true; + public static bool hide = false; + } + + // Index for the selected material in the material array + private int selectedMaterialIndex = 0; + + // hidden reference for the current Tooltip state + private bool _currentTooltipState = TooltipState.hide; + + #endregion + + #region Public Functions + + // implementation of validate + public override bool Validate(string notification, UnityEngine.Object DataReference = null) + { + // check notification for validation + if (notification.Equals(BaseClassNotification.POINTERCLICKEVENT)) + { + // Check if selectedMaterialIndex is below the materials array length, otherwise reset the index to zero + if (selectedMaterialIndex < materials.Length - 1) + { + selectedMaterialIndex++; + } + else + { + selectedMaterialIndex = 0; + } + + // set the seleted material acording to the selected material index + selectedMaterial = materials[selectedMaterialIndex]; + + // hide the tooptip + _currentTooltipState = TooltipState.hide; + } + else if (notification.Equals(BaseClassNotification.POINTERENTEREVENT)) + { + // set the current tooltip state to show + _currentTooltipState = TooltipState.show; + } + else if (notification.Equals(BaseClassNotification.POINTEREXITEVENT)) + { + // set the current tooltip state to hide + _currentTooltipState = TooltipState.hide; + } + + // because there is no condition in this simple demo, return true + return true; + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + modulInstance.RegisterModel(this); + + // select a default material, if any are set + if (materials.Length != 0) + { + selectedMaterial = materials[selectedMaterialIndex]; + } + } + + #endregion + } + } + } +} diff --git a/Assets/04 - Scripts/Model/SimpleMaterialChooserDemoModel.cs.meta b/Assets/04 - Scripts/Model/SimpleMaterialChooserDemoModel.cs.meta new file mode 100644 index 0000000..d1d357d --- /dev/null +++ b/Assets/04 - Scripts/Model/SimpleMaterialChooserDemoModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 10f501cc296e9b04ca2701ecbf807928 +timeCreated: 1498307495 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/Model/SimplePickupObjectDemoModel.cs b/Assets/04 - Scripts/Model/SimplePickupObjectDemoModel.cs new file mode 100644 index 0000000..591089f --- /dev/null +++ b/Assets/04 - Scripts/Model/SimplePickupObjectDemoModel.cs @@ -0,0 +1,97 @@ +using System; +using UnityEngine; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace SimplePickupObjectDemo + { + public class SimplePickupObjectDemoModel : BaseClassModel + { + #region Public Attributes + + // Preview selection material + public Material previewSelectionMaterial; + + // Outline selection material + public Material outlineSelectionMaterial; + + // reference of the current tooltip state + public bool currentTooltipState { get { return _currentTooltipState; } } + + public static class TooltipState + { + public static bool show = true; + public static bool hide = false; + } + + #endregion + + #region Private Attributes + + // hidden reference for the current Tooltip state + private bool _currentTooltipState = TooltipState.hide; + + #endregion + + #region Public Functions + + // implementation of validate + public override bool Validate(string notification, UnityEngine.Object DataReference = null) + { + // check notification for validation + if (notification.Equals(BaseClassNotification.POINTERCLICKEVENT)) + { + //TODO + } + else if (notification.Equals(BaseClassNotification.POINTERENTEREVENT)) + { + // set the current tooltip state to show + _currentTooltipState = TooltipState.show; + } + else if (notification.Equals(BaseClassNotification.POINTEREXITEVENT)) + { + // set the current tooltip state to hide + _currentTooltipState = TooltipState.hide; + } + else if (notification.Equals(BaseClassNotification.MOVE)) + { + //TODO + } + else if (notification.Equals(BaseClassNotification.POINTERDOWN)) + { + //TODO + Debug.Log("Start Moving Cube"); + } + else if (notification.Equals(BaseClassNotification.POINTERUP)) + { + //TODO + Debug.Log("Stop Moving Cube"); + } + // because there is no condition in this simple demo, return true + return true; + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + modulInstance.RegisterModel(this); + } + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/04 - Scripts/Model/SimplePickupObjectDemoModel.cs.meta b/Assets/04 - Scripts/Model/SimplePickupObjectDemoModel.cs.meta new file mode 100644 index 0000000..241bc0c --- /dev/null +++ b/Assets/04 - Scripts/Model/SimplePickupObjectDemoModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9e6fdccdde7797c498a6a122335325de +timeCreated: 1498411577 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/Model/VarnishChoosingPanelModel.cs b/Assets/04 - Scripts/Model/VarnishChoosingPanelModel.cs new file mode 100644 index 0000000..2f7ef1d --- /dev/null +++ b/Assets/04 - Scripts/Model/VarnishChoosingPanelModel.cs @@ -0,0 +1,94 @@ +using System; +using UnityEngine; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace ConfiguratorDemo + { + public class VarnishChoosingPanelModel : BaseClassModel + { + #region Public Attributes + + // reference of the current selected material + public Material selectedMaterial; + + // reference of the current tooltip state + public bool currentTooltipState { get { return _currentTooltipState; } } + + // model definition for tooltip text + public string currentTooltipText { get { return _currentTooltipText; } } + + #endregion + + #region Private Attributes + + // posible tooltip states (better readability) + private static class TooltipState + { + public static bool show = true; + public static bool hide = false; + } + + // hidden reference for the current Tooltip state + private bool _currentTooltipState = TooltipState.hide; + private string _currentTooltipText = "ToBeFilled"; + + #endregion + + #region Public Functions + + // implementation of validate + public override bool Validate(string notification, UnityEngine.Object DataReference = null) + { + // check notification for validation + if (notification.Equals(BaseClassNotification.POINTERCLICKEVENT)) + { + // get the material from the givenDataReference + selectedMaterial = ((GameObject)DataReference).GetComponent().material; + + // hide the tooptip + _currentTooltipState = TooltipState.hide; + } + else if (notification.Equals(BaseClassNotification.POINTERENTEREVENT)) + { + // set the current tooltip text to DataReference name + _currentTooltipText = ((GameObject)DataReference).name; + + // set the current tooltip state to show + _currentTooltipState = TooltipState.show; + + } + else if (notification.Equals(BaseClassNotification.POINTEREXITEVENT)) + { + // set the current tooltip state to hide + _currentTooltipState = TooltipState.hide; + } + + // because there is no condition in this simple demo, return true + return true; + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + modulInstance.RegisterModel(this); + } + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/04 - Scripts/Model/VarnishChoosingPanelModel.cs.meta b/Assets/04 - Scripts/Model/VarnishChoosingPanelModel.cs.meta new file mode 100644 index 0000000..ec8f0be --- /dev/null +++ b/Assets/04 - Scripts/Model/VarnishChoosingPanelModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 182ed8dd282fc6641aad1a81319b98e6 +timeCreated: 1498510275 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/Presenter.meta b/Assets/04 - Scripts/Presenter.meta new file mode 100644 index 0000000..87969b9 --- /dev/null +++ b/Assets/04 - Scripts/Presenter.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1a86f151398c9654f8d5eaa0018eb875 +folderAsset: yes +timeCreated: 1498136233 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/Presenter/SimpleMaterialChooserDemoPresenter.cs b/Assets/04 - Scripts/Presenter/SimpleMaterialChooserDemoPresenter.cs new file mode 100644 index 0000000..415b1e2 --- /dev/null +++ b/Assets/04 - Scripts/Presenter/SimpleMaterialChooserDemoPresenter.cs @@ -0,0 +1,86 @@ +using EvolutStudio.tinysAPI.BaseClasses; +using EvolutStudio.VRPortfolioWork.Components; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace SimpleMaterialChooserDemo + { + public class SimpleMaterialChooserDemoPresenter : BaseClassPresenter + { + #region Public Attributes + + // Add your public attributes + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + // implementation of notify + override public void Notify(string notification, UnityEngine.Object DataReference = null) + { + if (modulInstance.Model.Validate(notification)) + { + modulInstance.View.FireValidationSucceededEvent(notification); + } + else + { + modulInstance.View.FireValidationFailedEvent(notification); + } + } + + // implementation of init given component + public override void InitComponent(BaseClassComponent component) + { + CopyValues(component); + } + + // implementation of update given component + public override void UpdateComponent(BaseClassComponent component) + { + CopyValues(component); + } + + #endregion + + #region Private Functions + + // private function to copy all values from model to subview + private void CopyValues(BaseClassComponent component) + { + if (component.GetType().Equals(typeof(SimpleTooltipComponent))) + { + ((SimpleTooltipComponent)component).currentTooltipState = ((SimpleMaterialChooserDemoModel)modulInstance.Model).currentTooltipState; + } + else if (component.GetType().Equals(typeof(SimpleParticleBurstComponent))) + { + ((SimpleParticleBurstComponent)component).selectedMaterialColor = ((SimpleMaterialChooserDemoModel)modulInstance.Model).selectedMaterial.color; + } + else if (component.GetType().Equals(typeof(SimpleMaterialChangeComponent))) + { + ((SimpleMaterialChangeComponent)component).selectedMaterial = ((SimpleMaterialChooserDemoModel)modulInstance.Model).selectedMaterial; + } + } + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + modulInstance.RegisterPresenter(this); + } + + #endregion + } + } + } +} diff --git a/Assets/04 - Scripts/Presenter/SimpleMaterialChooserDemoPresenter.cs.meta b/Assets/04 - Scripts/Presenter/SimpleMaterialChooserDemoPresenter.cs.meta new file mode 100644 index 0000000..f62493d --- /dev/null +++ b/Assets/04 - Scripts/Presenter/SimpleMaterialChooserDemoPresenter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e4554b460cb9b2a4d8a19e21c8987aab +timeCreated: 1498307481 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/Presenter/SimplePickupObjectDemoPresenter.cs b/Assets/04 - Scripts/Presenter/SimplePickupObjectDemoPresenter.cs new file mode 100644 index 0000000..5f30139 --- /dev/null +++ b/Assets/04 - Scripts/Presenter/SimplePickupObjectDemoPresenter.cs @@ -0,0 +1,78 @@ +using EvolutStudio.tinysAPI.BaseClasses; +using EvolutStudio.VRPortfolioWork.Components; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace SimplePickupObjectDemo + { + public class SimplePickupObjectDemoPresenter : BaseClassPresenter + { + #region Public Attributes + + // Add your public attributes + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + // implementation of notify + override public void Notify(string notification, UnityEngine.Object DataReference = null) + { + if (modulInstance.Model.Validate(notification)) + { + modulInstance.View.FireValidationSucceededEvent(notification); + } + else + { + modulInstance.View.FireValidationFailedEvent(notification); + } + } + + // implementation of init given component + public override void InitComponent(BaseClassComponent component) + { + CopyValues(component); + } + + // implementation of update given component + public override void UpdateComponent(BaseClassComponent component) + { + CopyValues(component); + } + + #endregion + + #region Private Functions + + // private function to copy all values from model to subview + private void CopyValues(BaseClassComponent component) + { + if (component.GetType().Equals(typeof(SimpleTooltipComponent))) + { + ((SimpleTooltipComponent)component).currentTooltipState = ((SimplePickupObjectDemoModel)modulInstance.Model).currentTooltipState; + } + } + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + modulInstance.RegisterPresenter(this); + } + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/04 - Scripts/Presenter/SimplePickupObjectDemoPresenter.cs.meta b/Assets/04 - Scripts/Presenter/SimplePickupObjectDemoPresenter.cs.meta new file mode 100644 index 0000000..2f34e69 --- /dev/null +++ b/Assets/04 - Scripts/Presenter/SimplePickupObjectDemoPresenter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c13190b574313a44cb511097ed876f8e +timeCreated: 1498411596 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/Presenter/VarnishChoosingPanelPresenter.cs b/Assets/04 - Scripts/Presenter/VarnishChoosingPanelPresenter.cs new file mode 100644 index 0000000..41247aa --- /dev/null +++ b/Assets/04 - Scripts/Presenter/VarnishChoosingPanelPresenter.cs @@ -0,0 +1,83 @@ +using EvolutStudio.tinysAPI.BaseClasses; +using EvolutStudio.VRPortfolioWork.Components; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace ConfiguratorDemo + { + public class VarnishChoosingPanelPresenter : BaseClassPresenter + { + #region Public Attributes + + // Add your public attributes + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + // implementation of notify + override public void Notify(string notification, UnityEngine.Object DataReference = null) + { + if (modulInstance.Model.Validate(notification, DataReference)) + { + modulInstance.View.FireValidationSucceededEvent(notification); + } + else + { + modulInstance.View.FireValidationFailedEvent(notification); + } + } + + // implementation of init given component + public override void InitComponent(BaseClassComponent component) + { + CopyValues(component); + } + + // implementation of update given component + public override void UpdateComponent(BaseClassComponent component) + { + CopyValues(component); + } + + #endregion + + #region Private Functions + + // private function to copy all values from model to subview + private void CopyValues(BaseClassComponent component) + { + if (component.GetType().Equals(typeof(ConsoleTooltipComponent))) + { + ((ConsoleTooltipComponent)component).currentTooltipState = ((VarnishChoosingPanelModel)modulInstance.Model).currentTooltipState; + ((ConsoleTooltipComponent)component).currentTooltipText = ((VarnishChoosingPanelModel)modulInstance.Model).currentTooltipText; + } + else if (component.GetType().Equals(typeof(VarnishMaterialChangeComponent))) + { + ((VarnishMaterialChangeComponent)component).selectedMaterial = ((VarnishChoosingPanelModel)modulInstance.Model).selectedMaterial; + } + } + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + modulInstance.RegisterPresenter(this); + } + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/04 - Scripts/Presenter/VarnishChoosingPanelPresenter.cs.meta b/Assets/04 - Scripts/Presenter/VarnishChoosingPanelPresenter.cs.meta new file mode 100644 index 0000000..22ed9dd --- /dev/null +++ b/Assets/04 - Scripts/Presenter/VarnishChoosingPanelPresenter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a15df6f34d19c26439e001cedd53cd91 +timeCreated: 1498510297 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/SceneController.cs b/Assets/04 - Scripts/SceneController.cs new file mode 100644 index 0000000..8cfee10 --- /dev/null +++ b/Assets/04 - Scripts/SceneController.cs @@ -0,0 +1,9 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +abstract public class SceneController : MonoBehaviour +{ + + //TODO +} \ No newline at end of file diff --git a/Assets/04 - Scripts/SceneController.cs.meta b/Assets/04 - Scripts/SceneController.cs.meta new file mode 100644 index 0000000..88baec1 --- /dev/null +++ b/Assets/04 - Scripts/SceneController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b5aec8b64be0a2d4aa28a8820f5f7f2c +timeCreated: 1498141393 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/SceneManager.cs b/Assets/04 - Scripts/SceneManager.cs new file mode 100644 index 0000000..2ee2795 --- /dev/null +++ b/Assets/04 - Scripts/SceneManager.cs @@ -0,0 +1,56 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class SceneManager : MonoBehaviour { + + #region Public Attributes + + public GameObject applicationManagerPrefab; + + #endregion + + #region Private Attributes + + // private attributes + + #endregion + + #region Public Functions + + public void requestSceneChange(string requestedSceneName) + { + ApplicationManager.instance.registerSceneChange(requestedSceneName); + } + + public void initScene() + { + Debug.Log("Event: Init Scene"); + } + + #endregion + + #region Private Functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake () { + // check if ApplicationManager have to be instantiate + if (ApplicationManager.instance == null && applicationManagerPrefab != null) + { + Instantiate(applicationManagerPrefab); + } + + ApplicationManager.instance.registerSceneManagerAndController(this, this.GetComponent()); + } + + // Update is called once per frame + void Update () { + + } + + #endregion +} diff --git a/Assets/04 - Scripts/SceneManager.cs.meta b/Assets/04 - Scripts/SceneManager.cs.meta new file mode 100644 index 0000000..fbb202e --- /dev/null +++ b/Assets/04 - Scripts/SceneManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4174e243a07d3da41a124c17fb240a31 +timeCreated: 1498131883 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/UpdateManager.cs b/Assets/04 - Scripts/UpdateManager.cs new file mode 100644 index 0000000..a842b0d --- /dev/null +++ b/Assets/04 - Scripts/UpdateManager.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UpdateManager : MonoBehaviour { + + // Use this for initialization + void Start () { + + } + + // Update is called once per frame + void Update () { + + } +} diff --git a/Assets/04 - Scripts/UpdateManager.cs.meta b/Assets/04 - Scripts/UpdateManager.cs.meta new file mode 100644 index 0000000..a5b3066 --- /dev/null +++ b/Assets/04 - Scripts/UpdateManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f47eaa427bf796b4d93de182865a1517 +timeCreated: 1498157143 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/UpdateModel.cs b/Assets/04 - Scripts/UpdateModel.cs new file mode 100644 index 0000000..2c1204b --- /dev/null +++ b/Assets/04 - Scripts/UpdateModel.cs @@ -0,0 +1,23 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[System.Serializable] +public class UpdateModel +{ + + #region Model Attributes + + public string status; + public string version; + public string changeDate; + public string description; + public string file; + + #endregion + + public static UpdateModel CreateModelFromJSON(string jsonString) + { + return JsonUtility.FromJson(jsonString); + } +} diff --git a/Assets/04 - Scripts/UpdateModel.cs.meta b/Assets/04 - Scripts/UpdateModel.cs.meta new file mode 100644 index 0000000..0015c69 --- /dev/null +++ b/Assets/04 - Scripts/UpdateModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c3277b6802b6462409e0b427f2064ac6 +timeCreated: 1498158724 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View.meta b/Assets/04 - Scripts/View.meta new file mode 100644 index 0000000..4b2990f --- /dev/null +++ b/Assets/04 - Scripts/View.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f04e5042d08713542a3570efe88cfc3d +folderAsset: yes +timeCreated: 1498305107 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/Components.meta b/Assets/04 - Scripts/View/Components.meta new file mode 100644 index 0000000..efd5439 --- /dev/null +++ b/Assets/04 - Scripts/View/Components.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 73bbfad4519c0954b998af493427258a +folderAsset: yes +timeCreated: 1498415500 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/Components/ConsoleTooltipComponent.cs b/Assets/04 - Scripts/View/Components/ConsoleTooltipComponent.cs new file mode 100644 index 0000000..1f4e055 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/ConsoleTooltipComponent.cs @@ -0,0 +1,66 @@ +using System; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace Components + { + public class ConsoleTooltipComponent : BaseClassComponent + { + #region Public Attributes + + // reference to the current tooltip state + public bool currentTooltipState; + + // reference to the current tooltip text + public string currentTooltipText; + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + public override void ValidationFailed(string notification) + { + throw new NotImplementedException(); + } + + public override void ValidationSucceeded(string notification) + { + if ( + notification.Equals(BaseClassNotification.POINTERCLICKEVENT) || + notification.Equals(BaseClassNotification.POINTERENTEREVENT) || + notification.Equals(BaseClassNotification.POINTEREXITEVENT)) + { + // update the child text + gameObject.transform.GetChild(0).GetComponent().text = currentTooltipText; + + // update active state + gameObject.transform.GetChild(0).gameObject.SetActive(currentTooltipState); + } + } + + // Use this for initialization + public override void Init() + { + _ComponentsArrayIndex = modulInstance.View.RegisterComponent(this); + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/04 - Scripts/View/Components/ConsoleTooltipComponent.cs.meta b/Assets/04 - Scripts/View/Components/ConsoleTooltipComponent.cs.meta new file mode 100644 index 0000000..b5fe3b0 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/ConsoleTooltipComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8d4c9d32343f9724994eb17d2349f805 +timeCreated: 1498514920 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/Components/SimpleAudioSourcePlayComponent.cs b/Assets/04 - Scripts/View/Components/SimpleAudioSourcePlayComponent.cs new file mode 100644 index 0000000..1f1a374 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/SimpleAudioSourcePlayComponent.cs @@ -0,0 +1,60 @@ +using System; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace Components + { + public class SimpleAudioSourcePlayComponent : BaseClassComponent + { + #region Public Attributes + + // Add your public attributes + + #endregion + + #region Private Attributes + + // private reference to the game object audio source instance + private GvrAudioSource _audioSource; + + #endregion + + #region Public Functions + + public override void ValidationFailed(string notification) + { + throw new NotImplementedException(); + } + + public override void ValidationSucceeded(string notification) + { + if (notification.Equals(BaseClassNotification.POINTERCLICKEVENT)) + { + // play audio source + _audioSource.Play(); + } + } + + // Use this for initialization + public override void Init() + { + _ComponentsArrayIndex = modulInstance.View.RegisterComponent(this); + + // save the reference + _audioSource = GetComponent(); + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + } + } + } +} diff --git a/Assets/04 - Scripts/View/Components/SimpleAudioSourcePlayComponent.cs.meta b/Assets/04 - Scripts/View/Components/SimpleAudioSourcePlayComponent.cs.meta new file mode 100644 index 0000000..9c58c5b --- /dev/null +++ b/Assets/04 - Scripts/View/Components/SimpleAudioSourcePlayComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 40ebe1fa6dd34814bb667d775f3e0673 +timeCreated: 1498408230 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/Components/SimpleMaterialChangeComponent.cs b/Assets/04 - Scripts/View/Components/SimpleMaterialChangeComponent.cs new file mode 100644 index 0000000..537dde6 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/SimpleMaterialChangeComponent.cs @@ -0,0 +1,65 @@ +using System; +using UnityEngine; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace Components + { + public class SimpleMaterialChangeComponent : BaseClassComponent + { + #region Public Attributes + + // reference to the current selected material color + public Material selectedMaterial; + + #endregion + + #region Private Attributes + + // private reference to the game object renderer instance + private Renderer _renderer; + + #endregion + + #region Public Functions + + public override void ValidationFailed(string notification) + { + throw new NotImplementedException(); + } + + public override void ValidationSucceeded(string notification) + { + if (notification.Equals(BaseClassNotification.POINTERCLICKEVENT)) + { + // update material from model + _renderer.material = selectedMaterial; + } + } + + // Use this for initialization + public override void Init() + { + _ComponentsArrayIndex = modulInstance.View.RegisterComponent(this); + + // save the reference + _renderer = GetComponent(); + + // update material from model + _renderer.material = selectedMaterial; + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/04 - Scripts/View/Components/SimpleMaterialChangeComponent.cs.meta b/Assets/04 - Scripts/View/Components/SimpleMaterialChangeComponent.cs.meta new file mode 100644 index 0000000..b78ab16 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/SimpleMaterialChangeComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fb650e4483047ee4d9a3d3f5293c12b9 +timeCreated: 1498395260 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/Components/SimpleParticleBurstComponent.cs b/Assets/04 - Scripts/View/Components/SimpleParticleBurstComponent.cs new file mode 100644 index 0000000..0b1d656 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/SimpleParticleBurstComponent.cs @@ -0,0 +1,70 @@ +using System; +using UnityEngine; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace Components + { + public class SimpleParticleBurstComponent : BaseClassComponent + { + #region Public Attributes + + // reference to the current selected material color + public Color selectedMaterialColor; + + #endregion + + #region Private Attributes + + // private reference to the game object particle system instance + private ParticleSystem _particleSystem; + + #endregion + + #region Public Functions + + public override void ValidationFailed(string notification) + { + throw new NotImplementedException(); + } + + public override void ValidationSucceeded(string notification) + { + if (notification.Equals(BaseClassNotification.POINTERCLICKEVENT)) + { + // change the particle start color + var mainParticleSystem = _particleSystem.main; + mainParticleSystem.startColor = selectedMaterialColor; + + // play the burst + _particleSystem.Play(); + } + } + + // Use this for initialization + public override void Init() + { + _ComponentsArrayIndex = modulInstance.View.RegisterComponent(this); + + // save the reference + _particleSystem = GetComponent(); + + // update particle system start color from model + var mainParticleSystem = _particleSystem.main; + mainParticleSystem.startColor = selectedMaterialColor; + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + } + } + } +} diff --git a/Assets/04 - Scripts/View/Components/SimpleParticleBurstComponent.cs.meta b/Assets/04 - Scripts/View/Components/SimpleParticleBurstComponent.cs.meta new file mode 100644 index 0000000..f493257 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/SimpleParticleBurstComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ea339e27d836db44f98a25a1dcd2ad98 +timeCreated: 1498393119 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/Components/SimpleTooltipComponent.cs b/Assets/04 - Scripts/View/Components/SimpleTooltipComponent.cs new file mode 100644 index 0000000..cde77d9 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/SimpleTooltipComponent.cs @@ -0,0 +1,60 @@ +using System; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace Components + { + public class SimpleTooltipComponent : BaseClassComponent + { + #region Public Attributes + + // reference to the current tooltip state + public bool currentTooltipState; + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + public override void ValidationFailed(string notification) + { + throw new NotImplementedException(); + } + + public override void ValidationSucceeded(string notification) + { + if ( + notification.Equals(BaseClassNotification.POINTERCLICKEVENT) || + notification.Equals(BaseClassNotification.POINTERENTEREVENT) || + notification.Equals(BaseClassNotification.POINTEREXITEVENT)) + { + // update material from model + gameObject.transform.GetChild(0).gameObject.SetActive(currentTooltipState); + } + } + + // Use this for initialization + public override void Init() + { + _ComponentsArrayIndex = modulInstance.View.RegisterComponent(this); + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/04 - Scripts/View/Components/SimpleTooltipComponent.cs.meta b/Assets/04 - Scripts/View/Components/SimpleTooltipComponent.cs.meta new file mode 100644 index 0000000..e654182 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/SimpleTooltipComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 333da280f766fce4a92b61de06ba5fad +timeCreated: 1498406545 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/Components/VarnishMaterialChangeComponent.cs b/Assets/04 - Scripts/View/Components/VarnishMaterialChangeComponent.cs new file mode 100644 index 0000000..2c23b62 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/VarnishMaterialChangeComponent.cs @@ -0,0 +1,80 @@ +using System; +using UnityEngine; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace Components + { + public class VarnishMaterialChangeComponent : BaseClassComponent + { + #region Public Attributes + + // reference to the current selected material color + public Material selectedMaterial; + + // reference to the proxyObject to change the material on + public GameObject proxyObject; + + #endregion + + #region Private Attributes + + // private reference to the game object renderer instance + private Renderer _renderer; + + #endregion + + #region Public Functions + + public override void ValidationFailed(string notification) + { + throw new NotImplementedException(); + } + + public override void ValidationSucceeded(string notification) + { + if (notification.Equals(BaseClassNotification.POINTERCLICKEVENT)) + { + // getting the materials array + Material[] proxyObjectMats = _renderer.materials; + + // changing the old material with the new one + proxyObjectMats[3] = selectedMaterial; + + // overwritting the materials array + _renderer.materials = proxyObjectMats; + } + } + + // Use this for initialization + public override void Init() + { + _ComponentsArrayIndex = modulInstance.View.RegisterComponent(this); + + // save the reference + _renderer = proxyObject.GetComponent(); + + // getting the materials array + Material[] proxyObjectMats = _renderer.materials; + + // changing the old material with the new one + proxyObjectMats[3] = selectedMaterial; + + // overwritting the materials array + _renderer.materials = proxyObjectMats; + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + } + } + } +} diff --git a/Assets/04 - Scripts/View/Components/VarnishMaterialChangeComponent.cs.meta b/Assets/04 - Scripts/View/Components/VarnishMaterialChangeComponent.cs.meta new file mode 100644 index 0000000..fc0aa85 --- /dev/null +++ b/Assets/04 - Scripts/View/Components/VarnishMaterialChangeComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b48e5702b055c7141a0728d05cdfa820 +timeCreated: 1498512327 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/SimpleMaterialChooserDemoView.cs b/Assets/04 - Scripts/View/SimpleMaterialChooserDemoView.cs new file mode 100644 index 0000000..1f30107 --- /dev/null +++ b/Assets/04 - Scripts/View/SimpleMaterialChooserDemoView.cs @@ -0,0 +1,63 @@ +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace SimpleMaterialChooserDemo + { + public class SimpleMaterialChooserDemoView : BaseClassView + { + #region Public Attributes + + // Add your public attributes + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + // public event handler function for OnPointerClick + public void OnPointerClick() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERCLICKEVENT); + } + + // public event handler function for OnPointerEnter + public void OnPointerEnter() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERENTEREVENT); + } + + // public event handler function for OnPointerExit + public void OnPointerExit() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTEREXITEVENT); + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + modulInstance.RegisterView(this); + } + + #endregion + } + } + } +} diff --git a/Assets/04 - Scripts/View/SimpleMaterialChooserDemoView.cs.meta b/Assets/04 - Scripts/View/SimpleMaterialChooserDemoView.cs.meta new file mode 100644 index 0000000..b9d8642 --- /dev/null +++ b/Assets/04 - Scripts/View/SimpleMaterialChooserDemoView.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b24be45d02248fd43a1f3c5dc41bc33e +timeCreated: 1498307519 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/SimplePickupObjectDemoView.cs b/Assets/04 - Scripts/View/SimplePickupObjectDemoView.cs new file mode 100644 index 0000000..7d8bfe8 --- /dev/null +++ b/Assets/04 - Scripts/View/SimplePickupObjectDemoView.cs @@ -0,0 +1,81 @@ +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace SimplePickupObjectDemo + { + public class SimplePickupObjectDemoView : BaseClassView + { + #region Public Attributes + + // Add your public attributes + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + // public event handler function for OnPointerClick + public void OnPointerClick() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERCLICKEVENT, this); + } + + // public event handler function for OnPointerEnter + public void OnPointerEnter() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERENTEREVENT); + } + + // public event handler function for OnPointerExit + public void OnPointerExit() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTEREXITEVENT); + } + + // public event handler function for OnPointerDown + public void OnPointerDown() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERDOWN); + } + + // public event handler function for OnPointerUp + public void OnPointerUp() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERUP); + } + + // public event handler function for OnMove + public void OnMove() + { + modulInstance.Presenter.Notify(BaseClassNotification.MOVE); + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + modulInstance.RegisterView(this); + } + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/04 - Scripts/View/SimplePickupObjectDemoView.cs.meta b/Assets/04 - Scripts/View/SimplePickupObjectDemoView.cs.meta new file mode 100644 index 0000000..a736be8 --- /dev/null +++ b/Assets/04 - Scripts/View/SimplePickupObjectDemoView.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1d0e28679aa42e343b4bc8a9a7397d12 +timeCreated: 1498411618 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04 - Scripts/View/VarnishChoosingPanelView.cs b/Assets/04 - Scripts/View/VarnishChoosingPanelView.cs new file mode 100644 index 0000000..67719f4 --- /dev/null +++ b/Assets/04 - Scripts/View/VarnishChoosingPanelView.cs @@ -0,0 +1,63 @@ +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace VRPortfolioWork + { + namespace ConfiguratorDemo + { + public class VarnishChoosingPanelView : BaseClassView + { + #region Public Attributes + + // Add your public attributes + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + // public event handler function for OnPointerClick + public void OnPointerClick(UnityEngine.Object callingObject) + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERCLICKEVENT, callingObject); + } + + // public event handler function for OnPointerEnter + public void OnPointerEnter(UnityEngine.Object callingObject) + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERENTEREVENT, callingObject); + } + + // public event handler function for OnPointerExit + public void OnPointerExit() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTEREXITEVENT); + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + modulInstance.RegisterView(this); + } + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/04 - Scripts/View/VarnishChoosingPanelView.cs.meta b/Assets/04 - Scripts/View/VarnishChoosingPanelView.cs.meta new file mode 100644 index 0000000..58845b8 --- /dev/null +++ b/Assets/04 - Scripts/View/VarnishChoosingPanelView.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c413c064a6b04064dabbc581561e187d +timeCreated: 1498510322 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05 - Scenes.meta b/Assets/05 - Scenes.meta new file mode 100644 index 0000000..06d2e42 --- /dev/null +++ b/Assets/05 - Scenes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 77e8c85e9f1ba7a49bc967301bbdcf59 +folderAsset: yes +timeCreated: 1497605455 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05 - Scenes/01 - main.unity b/Assets/05 - Scenes/01 - main.unity new file mode 100644 index 0000000..bf7f226 Binary files /dev/null and b/Assets/05 - Scenes/01 - main.unity differ diff --git a/Assets/05 - Scenes/01 - main.unity.meta b/Assets/05 - Scenes/01 - main.unity.meta new file mode 100644 index 0000000..66d69fa --- /dev/null +++ b/Assets/05 - Scenes/01 - main.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0b0d4511cb800343af305c822cad645 +timeCreated: 1497605576 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05 - Scenes/02 - configurator.meta b/Assets/05 - Scenes/02 - configurator.meta new file mode 100644 index 0000000..785be0b --- /dev/null +++ b/Assets/05 - Scenes/02 - configurator.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 45cdcbbc85bd0ad469b702f0b440240e +folderAsset: yes +timeCreated: 1498481637 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05 - Scenes/02 - configurator.unity b/Assets/05 - Scenes/02 - configurator.unity new file mode 100644 index 0000000..4deef91 Binary files /dev/null and b/Assets/05 - Scenes/02 - configurator.unity differ diff --git a/Assets/05 - Scenes/02 - configurator.unity.meta b/Assets/05 - Scenes/02 - configurator.unity.meta new file mode 100644 index 0000000..b43c974 --- /dev/null +++ b/Assets/05 - Scenes/02 - configurator.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e4a3b80ab1d1ed4d9ffc9163a71b07b +timeCreated: 1498125717 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05 - Scenes/03 - designer.unity b/Assets/05 - Scenes/03 - designer.unity new file mode 100644 index 0000000..7d5bf65 Binary files /dev/null and b/Assets/05 - Scenes/03 - designer.unity differ diff --git a/Assets/05 - Scenes/03 - designer.unity.meta b/Assets/05 - Scenes/03 - designer.unity.meta new file mode 100644 index 0000000..40a6607 --- /dev/null +++ b/Assets/05 - Scenes/03 - designer.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: acd16b16d40ec9d4682b2486878972a9 +timeCreated: 1498125785 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05 - Scenes/04 - demo.unity b/Assets/05 - Scenes/04 - demo.unity new file mode 100644 index 0000000..25c6b01 Binary files /dev/null and b/Assets/05 - Scenes/04 - demo.unity differ diff --git a/Assets/05 - Scenes/04 - demo.unity.meta b/Assets/05 - Scenes/04 - demo.unity.meta new file mode 100644 index 0000000..0ef1e96 --- /dev/null +++ b/Assets/05 - Scenes/04 - demo.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ea5060f53c8d7b4f86073d4de9601b9 +timeCreated: 1498125811 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/06 - Sprites.meta b/Assets/06 - Sprites.meta new file mode 100644 index 0000000..ce73f32 --- /dev/null +++ b/Assets/06 - Sprites.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 20d91bff2a5f9914aab120f40dad0318 +folderAsset: yes +timeCreated: 1497614970 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/06 - Sprites/AppIcon.png b/Assets/06 - Sprites/AppIcon.png new file mode 100644 index 0000000..7cf9217 Binary files /dev/null and b/Assets/06 - Sprites/AppIcon.png differ diff --git a/Assets/06 - Sprites/AppIcon.png.meta b/Assets/06 - Sprites/AppIcon.png.meta new file mode 100644 index 0000000..2a845f8 --- /dev/null +++ b/Assets/06 - Sprites/AppIcon.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 00a20087c32f33a4687c50dde813e36f +timeCreated: 1497628362 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/06 - Sprites/DaydreamIcon.png b/Assets/06 - Sprites/DaydreamIcon.png new file mode 100644 index 0000000..89e6edb Binary files /dev/null and b/Assets/06 - Sprites/DaydreamIcon.png differ diff --git a/Assets/06 - Sprites/DaydreamIcon.png.meta b/Assets/06 - Sprites/DaydreamIcon.png.meta new file mode 100644 index 0000000..6ab6078 --- /dev/null +++ b/Assets/06 - Sprites/DaydreamIcon.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: d44ee16401dfb254f9eaab9ae54c3a71 +timeCreated: 1497627241 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/06 - Sprites/Materials.meta b/Assets/06 - Sprites/Materials.meta new file mode 100644 index 0000000..2172278 --- /dev/null +++ b/Assets/06 - Sprites/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 516af0971ba416046971c7eae0c55237 +folderAsset: yes +timeCreated: 1498241374 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/06 - Sprites/Materials/NotificationArrow.mat b/Assets/06 - Sprites/Materials/NotificationArrow.mat new file mode 100644 index 0000000..5d839bf Binary files /dev/null and b/Assets/06 - Sprites/Materials/NotificationArrow.mat differ diff --git a/Assets/06 - Sprites/Materials/NotificationArrow.mat.meta b/Assets/06 - Sprites/Materials/NotificationArrow.mat.meta new file mode 100644 index 0000000..0dc38eb --- /dev/null +++ b/Assets/06 - Sprites/Materials/NotificationArrow.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e760786594a3cbd4fa371edbe4b2eddd +timeCreated: 1498241374 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/06 - Sprites/NotificationArrow.png b/Assets/06 - Sprites/NotificationArrow.png new file mode 100644 index 0000000..93710d8 Binary files /dev/null and b/Assets/06 - Sprites/NotificationArrow.png differ diff --git a/Assets/06 - Sprites/NotificationArrow.png.meta b/Assets/06 - Sprites/NotificationArrow.png.meta new file mode 100644 index 0000000..b3ffddb --- /dev/null +++ b/Assets/06 - Sprites/NotificationArrow.png.meta @@ -0,0 +1,132 @@ +fileFormatVersion: 2 +guid: 214b679508f366d4ba3692704aa413f0 +timeCreated: 1498241327 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: iPhone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: tvOS + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Android + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Tizen + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Samsung TV + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/07 - Prefabs.meta b/Assets/07 - Prefabs.meta new file mode 100644 index 0000000..aeae928 --- /dev/null +++ b/Assets/07 - Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d134fd1b46994934d9f6e37148ad4072 +folderAsset: yes +timeCreated: 1498131810 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/07 - Prefabs/MaterialChooserDemo.prefab b/Assets/07 - Prefabs/MaterialChooserDemo.prefab new file mode 100644 index 0000000..80aaa13 Binary files /dev/null and b/Assets/07 - Prefabs/MaterialChooserDemo.prefab differ diff --git a/Assets/07 - Prefabs/MaterialChooserDemo.prefab.meta b/Assets/07 - Prefabs/MaterialChooserDemo.prefab.meta new file mode 100644 index 0000000..e4578b9 --- /dev/null +++ b/Assets/07 - Prefabs/MaterialChooserDemo.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2f3ad903a6a999445ab05c5522656c72 +timeCreated: 1498411482 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/07 - Prefabs/Player.prefab b/Assets/07 - Prefabs/Player.prefab new file mode 100644 index 0000000..4f59384 Binary files /dev/null and b/Assets/07 - Prefabs/Player.prefab differ diff --git a/Assets/07 - Prefabs/Player.prefab.meta b/Assets/07 - Prefabs/Player.prefab.meta new file mode 100644 index 0000000..c22c4a2 --- /dev/null +++ b/Assets/07 - Prefabs/Player.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 154520fe6a40dd64ea05660178b97d9a +timeCreated: 1498418164 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08 - Animations.meta b/Assets/08 - Animations.meta new file mode 100644 index 0000000..815153c --- /dev/null +++ b/Assets/08 - Animations.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 88c912348db6ea244aaddf92edcef43f +folderAsset: yes +timeCreated: 1498148800 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08 - Animations/AnimationController_BoxNotificationArrow.controller b/Assets/08 - Animations/AnimationController_BoxNotificationArrow.controller new file mode 100644 index 0000000..1144ad2 Binary files /dev/null and b/Assets/08 - Animations/AnimationController_BoxNotificationArrow.controller differ diff --git a/Assets/08 - Animations/AnimationController_BoxNotificationArrow.controller.meta b/Assets/08 - Animations/AnimationController_BoxNotificationArrow.controller.meta new file mode 100644 index 0000000..6c65f2b --- /dev/null +++ b/Assets/08 - Animations/AnimationController_BoxNotificationArrow.controller.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ef4da02bd979044459f2bbf9a8ee0688 +timeCreated: 1498241589 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08 - Animations/AnimationController_UpdateNotification.controller b/Assets/08 - Animations/AnimationController_UpdateNotification.controller new file mode 100644 index 0000000..efe0819 Binary files /dev/null and b/Assets/08 - Animations/AnimationController_UpdateNotification.controller differ diff --git a/Assets/08 - Animations/AnimationController_UpdateNotification.controller.meta b/Assets/08 - Animations/AnimationController_UpdateNotification.controller.meta new file mode 100644 index 0000000..55ec875 --- /dev/null +++ b/Assets/08 - Animations/AnimationController_UpdateNotification.controller.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 10f333d813e218540bf01c201cfc5f11 +timeCreated: 1498148828 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08 - Animations/Animation_BoxNotificationArrow_Jump.anim b/Assets/08 - Animations/Animation_BoxNotificationArrow_Jump.anim new file mode 100644 index 0000000..1abe255 Binary files /dev/null and b/Assets/08 - Animations/Animation_BoxNotificationArrow_Jump.anim differ diff --git a/Assets/08 - Animations/Animation_BoxNotificationArrow_Jump.anim.meta b/Assets/08 - Animations/Animation_BoxNotificationArrow_Jump.anim.meta new file mode 100644 index 0000000..3350316 --- /dev/null +++ b/Assets/08 - Animations/Animation_BoxNotificationArrow_Jump.anim.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4ae0c130ebf70184382d1ca7071a4520 +timeCreated: 1498241676 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08 - Animations/Animation_UpdateNotification_Blink.anim b/Assets/08 - Animations/Animation_UpdateNotification_Blink.anim new file mode 100644 index 0000000..72f8864 Binary files /dev/null and b/Assets/08 - Animations/Animation_UpdateNotification_Blink.anim differ diff --git a/Assets/08 - Animations/Animation_UpdateNotification_Blink.anim.meta b/Assets/08 - Animations/Animation_UpdateNotification_Blink.anim.meta new file mode 100644 index 0000000..423f43b --- /dev/null +++ b/Assets/08 - Animations/Animation_UpdateNotification_Blink.anim.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 894e51cc97500f947bad2894b5b27d55 +timeCreated: 1498148866 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR.meta b/Assets/GoogleVR.meta new file mode 100644 index 0000000..a2069f4 --- /dev/null +++ b/Assets/GoogleVR.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 01bd37f55554b4411813312753a2063c +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/GoogleVR/Demos.meta b/Assets/GoogleVR/Demos.meta new file mode 100644 index 0000000..4b26454 --- /dev/null +++ b/Assets/GoogleVR/Demos.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5c9f6a26bef6644589977da9be4e7a54 +folderAsset: yes +timeCreated: 1462052921 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Editor.meta b/Assets/GoogleVR/Demos/Editor.meta new file mode 100644 index 0000000..1c91519 --- /dev/null +++ b/Assets/GoogleVR/Demos/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 01c8a812e961c498ba2c57ff1e77edb3 +folderAsset: yes +timeCreated: 1479319898 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Editor/DemoInputManagerEditor.cs b/Assets/GoogleVR/Demos/Editor/DemoInputManagerEditor.cs new file mode 100644 index 0000000..add0cef --- /dev/null +++ b/Assets/GoogleVR/Demos/Editor/DemoInputManagerEditor.cs @@ -0,0 +1,56 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEditor; + +[CustomEditor(typeof(DemoInputManager))] +public class DemoInputManagerEditor : Editor { +#if UNITY_HAS_GOOGLEVR && UNITY_ANDROID + SerializedProperty emulatedPlatformTypeProp; + SerializedProperty gvrControllerMainProp; + SerializedProperty gvrControllerPointerProp; + SerializedProperty gvrReticlePointerProp; + + void OnEnable () { + gvrControllerMainProp = + serializedObject.FindProperty(DemoInputManager.CONTROLLER_MAIN_PROP_NAME); + gvrControllerPointerProp = + serializedObject.FindProperty(DemoInputManager.CONTROLLER_POINTER_PROP_NAME); + gvrReticlePointerProp = + serializedObject.FindProperty(DemoInputManager.RETICLE_POINTER_PROP_NAME); + + emulatedPlatformTypeProp = + serializedObject.FindProperty(DemoInputManager.EMULATED_PLATFORM_PROP_NAME); + } + + public override void OnInspectorGUI() { + // Platform emulation tweaking does not apply on non-native integration versions of Unity. + serializedObject.Update(); + + EditorGUILayout.PropertyField(gvrControllerMainProp); + EditorGUILayout.PropertyField(gvrControllerPointerProp); + EditorGUILayout.PropertyField(gvrReticlePointerProp); + + if (DemoInputManager.playerSettingsHasCardboard() == + DemoInputManager.playerSettingsHasDaydream()) { + // Show the platform emulation dropdown only if both or neither VR SDK selected in + // Player Settings > Virtual Reality supported, + EditorGUILayout.PropertyField(emulatedPlatformTypeProp); + } + + serializedObject.ApplyModifiedProperties(); + } +#endif // UNITY_HAS_GOOGLEVR && UNITY_ANDROID +} diff --git a/Assets/GoogleVR/Demos/Editor/DemoInputManagerEditor.cs.meta b/Assets/GoogleVR/Demos/Editor/DemoInputManagerEditor.cs.meta new file mode 100644 index 0000000..87ad335 --- /dev/null +++ b/Assets/GoogleVR/Demos/Editor/DemoInputManagerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 509a29025635b4c31bb337addea72a7c +timeCreated: 1479318538 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Editor/PermissionsDemoBuildEditor.cs b/Assets/GoogleVR/Demos/Editor/PermissionsDemoBuildEditor.cs new file mode 100644 index 0000000..4ec8a81 --- /dev/null +++ b/Assets/GoogleVR/Demos/Editor/PermissionsDemoBuildEditor.cs @@ -0,0 +1,140 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0(the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +// This script only works in Unity 5.6 or newer since older versions of Unity +// don't have IPreprocessBuild and IPostprocessBuild. + +#if UNITY_5_6_OR_NEWER && UNITY_ANDROID +using System; +using UnityEditor; +using UnityEditor.Build; +using UnityEngine; +using UnityEditorInternal.VR; + +class MyCustomBuildProcessor : IPreprocessBuild, IPostprocessBuild +{ + private const string SCENE_NAME_PERMISSIONS_DEMO = "PermissionsDemo"; + private const string VR_DEVICE_CARDBOARD = "cardboard"; + private const string VR_DEVICE_DAYDREAM = "daydream"; + + private bool m_cardboardAddedFromCode = false; + + public int callbackOrder + { + get { return 0; } + } + + // OnPreprocessBuild() is called rigth before the build process begins. If it + // detects that the first enabled scene in the build arrays is the PermissionsDemo, + // and Daydream is in the VR SDKs, it will add Cardboard to the VR SDKs. Because + // the PermissionsDemo needs a perm statement in the Manifest while other demos don't. + // Adding Cardboard to VR SDKs will merge in the Manifest-Cardboard which has perm + // statemetn in it. + public void OnPreprocessBuild(BuildTarget target, string path) + { + m_cardboardAddedFromCode = false; + + string[] androidVrSDKs = VREditor.GetVREnabledDevicesOnTargetGroup(BuildTargetGroup.Android); + + EditorBuildSettingsScene[] scenes = EditorBuildSettings.scenes; + + // See if PermissionsDemo is the first enabled scene in the array of scenes to build. + for (int i = 0; i < scenes.Length; i++) + { + if (scenes[i].path.Contains(SCENE_NAME_PERMISSIONS_DEMO)) + { + if (!scenes[i].enabled) + { + return; + } + else + { + break; + } + } + else + { + if (scenes[i].enabled) + { + return; + } + } + } + + bool hasCardboard = Array.Exists(androidVrSDKs, + element => element.Equals(VR_DEVICE_CARDBOARD)); + + if (hasCardboard) + { + return; + } + + bool hasDaydream = Array.Exists(androidVrSDKs, + element => element.Equals(VR_DEVICE_DAYDREAM)); + + if (!hasDaydream) + { + return; + } + + string[] androidVrSDKsAppended = new string[androidVrSDKs.Length+1]; + + for (int i = 0; i < androidVrSDKs.Length; i++) + { + androidVrSDKsAppended[i] = androidVrSDKs[i]; + } + + androidVrSDKsAppended[androidVrSDKsAppended.Length - 1] = VR_DEVICE_CARDBOARD; + + VREditor.SetVREnabledOnTargetGroup( + BuildTargetGroup.Android, true); + VREditor.SetVREnabledDevicesOnTargetGroup( + BuildTargetGroup.Android, + androidVrSDKsAppended); + + m_cardboardAddedFromCode = true; + } + + // OnPostprocessBuild() is called after the build process. It does appropriate cleanup + // so that this script only affects build process for PermissionsDemo, not others. + public void OnPostprocessBuild(BuildTarget target, string path) + { + if (!m_cardboardAddedFromCode) + return; + + string[] androidVrSDKs = VREditor.GetVREnabledDevicesOnTargetGroup(BuildTargetGroup.Android); + + // The enabled devices are modified somehow, which shoudln't happen. Abort the post build process. + if (androidVrSDKs.Length == 0 || androidVrSDKs[androidVrSDKs.Length - 1] != VR_DEVICE_CARDBOARD) + { + return; + } + + string[] androidVrSDKsShortened = new string[androidVrSDKs.Length - 1]; + + for (int i = 0; i < androidVrSDKsShortened.Length; i++) + { + androidVrSDKsShortened[i] = androidVrSDKs[i]; + } + + VREditor.SetVREnabledOnTargetGroup( + BuildTargetGroup.Android, true); + VREditor.SetVREnabledDevicesOnTargetGroup( + BuildTargetGroup.Android, + androidVrSDKsShortened); + + m_cardboardAddedFromCode = false; + } +} +#endif // UNITY_5_6_OR_NEWER \ No newline at end of file diff --git a/Assets/GoogleVR/Demos/Editor/PermissionsDemoBuildEditor.cs.meta b/Assets/GoogleVR/Demos/Editor/PermissionsDemoBuildEditor.cs.meta new file mode 100644 index 0000000..569e68e --- /dev/null +++ b/Assets/GoogleVR/Demos/Editor/PermissionsDemoBuildEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b7c28afb12456b7469919c6a64cee9c1 +timeCreated: 1493333870 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Environment.meta b/Assets/GoogleVR/Demos/Environment.meta new file mode 100644 index 0000000..747fd36 --- /dev/null +++ b/Assets/GoogleVR/Demos/Environment.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0035f5afb7b8f4651b0b85476e82dd7a +folderAsset: yes +timeCreated: 1478024344 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Environment/DemoEnvUnlitGrayscale.shader b/Assets/GoogleVR/Demos/Environment/DemoEnvUnlitGrayscale.shader new file mode 100644 index 0000000..65c4479 --- /dev/null +++ b/Assets/GoogleVR/Demos/Environment/DemoEnvUnlitGrayscale.shader @@ -0,0 +1,59 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/Demos/Unlit/Env Unlit Grayscale" { + Properties { + _MainTex ("Texture (A)", 2D) = "" {} + } + + SubShader { + Tags { "Queue"="Geometry" "RenderType"="Geometry"} + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + #include "UnityCG.cginc" + + #include "../../Shaders/GvrUnityCompatibility.cginc" + + struct appdata { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata v) { + v2f o; + o.vertex = GvrUnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_TARGET { + fixed4 col = tex2D(_MainTex, i.uv).a; + return col; + } + ENDCG + } + } +} diff --git a/Assets/GoogleVR/Demos/Environment/DemoEnvUnlitGrayscale.shader.meta b/Assets/GoogleVR/Demos/Environment/DemoEnvUnlitGrayscale.shader.meta new file mode 100644 index 0000000..cb94da4 --- /dev/null +++ b/Assets/GoogleVR/Demos/Environment/DemoEnvUnlitGrayscale.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7c7538e6cd0744ee5854d3ceb8e92f84 +timeCreated: 1478049060 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Environment/Materials.meta b/Assets/GoogleVR/Demos/Environment/Materials.meta new file mode 100644 index 0000000..be2eed2 --- /dev/null +++ b/Assets/GoogleVR/Demos/Environment/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5ae1329e0a56a4c869e34ee960a5b00f +folderAsset: yes +timeCreated: 1479502985 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Environment/Materials/cubeRoomEnvMat.mat b/Assets/GoogleVR/Demos/Environment/Materials/cubeRoomEnvMat.mat new file mode 100644 index 0000000..08897af --- /dev/null +++ b/Assets/GoogleVR/Demos/Environment/Materials/cubeRoomEnvMat.mat @@ -0,0 +1,26 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: cubeRoomEnvMat + m_Shader: {fileID: 4800000, guid: 7c7538e6cd0744ee5854d3ceb8e92f84, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 0c17a1e1d20c38e4f9598da7fc7ef39d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: {} diff --git a/Assets/GoogleVR/Demos/Environment/Materials/cubeRoomEnvMat.mat.meta b/Assets/GoogleVR/Demos/Environment/Materials/cubeRoomEnvMat.mat.meta new file mode 100644 index 0000000..3be4c03 --- /dev/null +++ b/Assets/GoogleVR/Demos/Environment/Materials/cubeRoomEnvMat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7ac05d4c78dbc4bd792428649b027747 +timeCreated: 1479502985 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Environment/cubeRoom.obj.meta b/Assets/GoogleVR/Demos/Environment/cubeRoom.obj.meta new file mode 100644 index 0000000..52bea8c --- /dev/null +++ b/Assets/GoogleVR/Demos/Environment/cubeRoom.obj.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: 1b781ad67e8a54061b9897ddfbfdb479 +timeCreated: 1478024238 +licenseType: Pro +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 100002: cubeRoomEnv + 400000: //RootNode + 400002: cubeRoomEnv + 2300000: cubeRoomEnv + 3300000: cubeRoomEnv + 4300000: cubeRoomEnv + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Environment/cubeRoomDiffuse4096.png b/Assets/GoogleVR/Demos/Environment/cubeRoomDiffuse4096.png new file mode 100644 index 0000000..09c6763 Binary files /dev/null and b/Assets/GoogleVR/Demos/Environment/cubeRoomDiffuse4096.png differ diff --git a/Assets/GoogleVR/Demos/Environment/cubeRoomDiffuse4096.png.meta b/Assets/GoogleVR/Demos/Environment/cubeRoomDiffuse4096.png.meta new file mode 100644 index 0000000..95ddb24 --- /dev/null +++ b/Assets/GoogleVR/Demos/Environment/cubeRoomDiffuse4096.png.meta @@ -0,0 +1,64 @@ +fileFormatVersion: 2 +guid: 0c17a1e1d20c38e4f9598da7fc7ef39d +timeCreated: 1491254443 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 5 + buildTargetSettings: + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: 1 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images.meta b/Assets/GoogleVR/Demos/Images.meta new file mode 100644 index 0000000..d98581c --- /dev/null +++ b/Assets/GoogleVR/Demos/Images.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 25dee7b2d68744fe6a3288c0e097cbca +folderAsset: yes +timeCreated: 1479426907 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/ScrollingUIDemo.meta b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo.meta new file mode 100644 index 0000000..4711795 --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6f4a4ee840cf7465f921e497e7d9ae69 +folderAsset: yes +timeCreated: 1475617197 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/Beach_yellow.png b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/Beach_yellow.png new file mode 100644 index 0000000..e4a664d Binary files /dev/null and b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/Beach_yellow.png differ diff --git a/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/Beach_yellow.png.meta b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/Beach_yellow.png.meta new file mode 100644 index 0000000..42eafe9 --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/Beach_yellow.png.meta @@ -0,0 +1,64 @@ +fileFormatVersion: 2 +guid: 25aba735c9ddf574fa29845715474fb6 +timeCreated: 1491254446 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + buildTargetSettings: + - buildTarget: Android + maxTextureSize: 1024 + textureFormat: -1 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/ScrollBarImage.png b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/ScrollBarImage.png new file mode 100644 index 0000000..5924019 Binary files /dev/null and b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/ScrollBarImage.png differ diff --git a/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/ScrollBarImage.png.meta b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/ScrollBarImage.png.meta new file mode 100644 index 0000000..0b50312 --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/ScrollBarImage.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 3407c2ebca54945fe8f7e5ddfa9b20fa +timeCreated: 1481675692 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 12, y: 10, z: 12, w: 10} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/TileImage.png b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/TileImage.png new file mode 100644 index 0000000..2414569 Binary files /dev/null and b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/TileImage.png differ diff --git a/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/TileImage.png.meta b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/TileImage.png.meta new file mode 100644 index 0000000..7ac09bf --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/ScrollingUIDemo/TileImage.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: e555aaa2e768247feb98e3b6ad5958ae +timeCreated: 1475617207 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo.meta b/Assets/GoogleVR/Demos/Images/VideoDemo.meta new file mode 100644 index 0000000..8c5fe85 --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/VideoDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d4a1ce4df416e4812985618226bf8749 +folderAsset: yes +timeCreated: 1471620462 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/circle.png b/Assets/GoogleVR/Demos/Images/VideoDemo/circle.png new file mode 100644 index 0000000..4b5bc2c Binary files /dev/null and b/Assets/GoogleVR/Demos/Images/VideoDemo/circle.png differ diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/circle.png.meta b/Assets/GoogleVR/Demos/Images/VideoDemo/circle.png.meta new file mode 100644 index 0000000..f95041c --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/VideoDemo/circle.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 2d89a5f92f03449f2bd6c28c914115fc +timeCreated: 1471989503 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 96 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/hollowknob.png b/Assets/GoogleVR/Demos/Images/VideoDemo/hollowknob.png new file mode 100644 index 0000000..47107ac Binary files /dev/null and b/Assets/GoogleVR/Demos/Images/VideoDemo/hollowknob.png differ diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/hollowknob.png.meta b/Assets/GoogleVR/Demos/Images/VideoDemo/hollowknob.png.meta new file mode 100644 index 0000000..a0e1d71 --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/VideoDemo/hollowknob.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: fe4fc8c33a7454cbf8504991c47a12a8 +timeCreated: 1471908435 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 64 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 40 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/ic_pause_white_72.png b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_pause_white_72.png new file mode 100644 index 0000000..7192ad4 Binary files /dev/null and b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_pause_white_72.png differ diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/ic_pause_white_72.png.meta b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_pause_white_72.png.meta new file mode 100644 index 0000000..8f0843e --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_pause_white_72.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 33fe2a867f53b4dd7b47d13503efb4de +timeCreated: 1472499550 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 64 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/ic_play_arrow_white_72.png b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_play_arrow_white_72.png new file mode 100644 index 0000000..5131eea Binary files /dev/null and b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_play_arrow_white_72.png differ diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/ic_play_arrow_white_72.png.meta b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_play_arrow_white_72.png.meta new file mode 100644 index 0000000..09a25c8 --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_play_arrow_white_72.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 36597cf9c1ebe400c99c9affa94cfd24 +timeCreated: 1471990838 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 64 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/ic_volume_up_white_48.png b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_volume_up_white_48.png new file mode 100644 index 0000000..2ed0034 Binary files /dev/null and b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_volume_up_white_48.png differ diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/ic_volume_up_white_48.png.meta b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_volume_up_white_48.png.meta new file mode 100644 index 0000000..d92fb5b --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/VideoDemo/ic_volume_up_white_48.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 738cb298280e345f4908ffe19a6cd591 +timeCreated: 1471991238 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 64 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/loading_bg.png b/Assets/GoogleVR/Demos/Images/VideoDemo/loading_bg.png new file mode 100644 index 0000000..2d6548a Binary files /dev/null and b/Assets/GoogleVR/Demos/Images/VideoDemo/loading_bg.png differ diff --git a/Assets/GoogleVR/Demos/Images/VideoDemo/loading_bg.png.meta b/Assets/GoogleVR/Demos/Images/VideoDemo/loading_bg.png.meta new file mode 100644 index 0000000..2eaaec2 --- /dev/null +++ b/Assets/GoogleVR/Demos/Images/VideoDemo/loading_bg.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: e4ecb698048ab455babea358c846d5f8 +timeCreated: 1478904110 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials.meta b/Assets/GoogleVR/Demos/Materials.meta new file mode 100644 index 0000000..32d096c --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c302b52124e174ebc9c49aed885323c3 +folderAsset: yes +timeCreated: 1479418357 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/GVRDemo.meta b/Assets/GoogleVR/Demos/Materials/GVRDemo.meta new file mode 100644 index 0000000..4fff07c --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/GVRDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ea16135a611c24e6a8827ada2c93b9ce +folderAsset: yes +timeCreated: 1479426475 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeBlue.mat b/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeBlue.mat new file mode 100644 index 0000000..51976f1 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeBlue.mat @@ -0,0 +1,162 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: CubeBlue + m_Shader: {fileID: 4800000, guid: fbc799bc7ede6a940b24eff19a72979c, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 7a26379ecb2d64048b1af14e822eecc3, type: 3} + m_Scale: {x: 0.25, y: 0.25} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _GlossMapScale + second: 1 + data: + first: + name: _GlossyReflections + second: 1 + data: + first: + name: _SmoothnessTextureChannel + second: 0 + data: + first: + name: _SpecularHighlights + second: 1 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 0.1665225, g: 0.54763764, b: 0.64705884, a: 1} + data: + first: + name: _HighlightColor + second: {r: 0.63, g: 0.52, b: 0.38, a: 0.66} + data: + first: + name: _ShadowColor + second: {r: 0.96, g: 1, b: 1, a: 0.85} diff --git a/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeBlue.mat.meta b/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeBlue.mat.meta new file mode 100644 index 0000000..b52ab20 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeBlue.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: daad62324deb0cf448e5c805c8459bff +timeCreated: 1478804663 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeRed.mat b/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeRed.mat new file mode 100644 index 0000000..5d82787 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeRed.mat @@ -0,0 +1,162 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: CubeRed + m_Shader: {fileID: 4800000, guid: fbc799bc7ede6a940b24eff19a72979c, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 7a26379ecb2d64048b1af14e822eecc3, type: 3} + m_Scale: {x: 0.25, y: 0.25} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: 0.5 + data: + first: + name: _Parallax + second: 0.02 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: 0.5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _GlossMapScale + second: 1 + data: + first: + name: _GlossyReflections + second: 1 + data: + first: + name: _SmoothnessTextureChannel + second: 0 + data: + first: + name: _SpecularHighlights + second: 1 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 0.6764706, g: 0.35315743, b: 0.35315743, a: 1} + data: + first: + name: _HighlightColor + second: {r: 0.63, g: 0.52, b: 0.38, a: 0.66} + data: + first: + name: _ShadowColor + second: {r: 0.96, g: 1, b: 1, a: 0.85} diff --git a/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeRed.mat.meta b/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeRed.mat.meta new file mode 100644 index 0000000..4781275 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/GVRDemo/CubeRed.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0edec395166a3244592f3532c7ce794c +timeCreated: 1478804663 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo.meta b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo.meta new file mode 100644 index 0000000..731296c --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 42bf5db8f38be9944a48382c93e8ea8b +folderAsset: yes +timeCreated: 1465846778 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageBlue.mat b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageBlue.mat new file mode 100644 index 0000000..c33378c --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageBlue.mat @@ -0,0 +1,163 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: UIImageBlue + m_Shader: {fileID: 10760, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _ColorMask + second: 15 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _InvFade + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _Stencil + second: 0 + - first: + name: _StencilComp + second: 8 + - first: + name: _StencilOp + second: 0 + - first: + name: _StencilReadMask + second: 255 + - first: + name: _StencilWriteMask + second: 255 + - first: + name: _Strength + second: 0.2 + - first: + name: _UVSec + second: 0 + - first: + name: _UseUIAlphaClip + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 0.48235294, g: 0.6666667, b: 0.96862745, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _TintColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageBlue.mat.meta b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageBlue.mat.meta new file mode 100644 index 0000000..b634ccc --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageBlue.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a237529f339064338bef1948038ca734 +timeCreated: 1471989495 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageGreen.mat b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageGreen.mat new file mode 100644 index 0000000..fb03a6a --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageGreen.mat @@ -0,0 +1,163 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: UIImageGreen + m_Shader: {fileID: 10760, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _ColorMask + second: 15 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _InvFade + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _Stencil + second: 0 + - first: + name: _StencilComp + second: 8 + - first: + name: _StencilOp + second: 0 + - first: + name: _StencilReadMask + second: 255 + - first: + name: _StencilWriteMask + second: 255 + - first: + name: _Strength + second: 0.2 + - first: + name: _UVSec + second: 0 + - first: + name: _UseUIAlphaClip + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 0.34117648, g: 0.73333335, b: 0.5411765, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _TintColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageGreen.mat.meta b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageGreen.mat.meta new file mode 100644 index 0000000..d1b7458 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageGreen.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b406d527c89e4724a237dc365c342fc +timeCreated: 1471989495 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageRed.mat b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageRed.mat new file mode 100644 index 0000000..16d5b4f --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageRed.mat @@ -0,0 +1,163 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: UIImageRed + m_Shader: {fileID: 10760, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _ColorMask + second: 15 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _InvFade + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _Stencil + second: 0 + - first: + name: _StencilComp + second: 8 + - first: + name: _StencilOp + second: 0 + - first: + name: _StencilReadMask + second: 255 + - first: + name: _StencilWriteMask + second: 255 + - first: + name: _Strength + second: 0.2 + - first: + name: _UVSec + second: 0 + - first: + name: _UseUIAlphaClip + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 0.9019608, g: 0.4862745, b: 0.4509804, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _TintColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageRed.mat.meta b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageRed.mat.meta new file mode 100644 index 0000000..cfaa22b --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageRed.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e1cc9be6506fa4bdd802d6bb46aea28e +timeCreated: 1471989495 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageYellow.mat b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageYellow.mat new file mode 100644 index 0000000..583830c --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageYellow.mat @@ -0,0 +1,163 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: UIImageYellow + m_Shader: {fileID: 10760, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _ColorMask + second: 15 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _InvFade + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _Stencil + second: 0 + - first: + name: _StencilComp + second: 8 + - first: + name: _StencilOp + second: 0 + - first: + name: _StencilReadMask + second: 255 + - first: + name: _StencilWriteMask + second: 255 + - first: + name: _Strength + second: 0.2 + - first: + name: _UVSec + second: 0 + - first: + name: _UseUIAlphaClip + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 0.96862745, g: 0.79607844, b: 0.3019608, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _TintColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageYellow.mat.meta b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageYellow.mat.meta new file mode 100644 index 0000000..5e7afa2 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/ScrollingUIDemo/UIImageYellow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ff3cce9f466e4093bb3873ba2318bd1 +timeCreated: 1471989495 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/VideoDemo.meta b/Assets/GoogleVR/Demos/Materials/VideoDemo.meta new file mode 100644 index 0000000..b3fae0b --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/VideoDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 718625e334ab9468e9089b7b37cfccea +folderAsset: yes +timeCreated: 1477600849 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/VideoDemo/MonoPanoSphereMaterial.mat b/Assets/GoogleVR/Demos/Materials/VideoDemo/MonoPanoSphereMaterial.mat new file mode 100644 index 0000000..b051073 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/VideoDemo/MonoPanoSphereMaterial.mat @@ -0,0 +1,130 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: MonoPanoSphereMaterial + m_Shader: {fileID: 4800000, guid: dbafce827ee1b4c86a41482aeacfb5dd, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _StereoVideo + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Demos/Materials/VideoDemo/MonoPanoSphereMaterial.mat.meta b/Assets/GoogleVR/Demos/Materials/VideoDemo/MonoPanoSphereMaterial.mat.meta new file mode 100644 index 0000000..ba9ce18 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/VideoDemo/MonoPanoSphereMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 806008b78101f497ab94d3dc40054387 +timeCreated: 1471975928 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoMaterial.mat b/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoMaterial.mat new file mode 100644 index 0000000..7f917d1 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoMaterial.mat @@ -0,0 +1,130 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: StereoMaterial + m_Shader: {fileID: 4800000, guid: 93c53ccfa3d0a45158d4eece792df52a, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 3bb2fd5aa2f2b4d25bd6dc22a2cd687d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Concave + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoMaterial.mat.meta b/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoMaterial.mat.meta new file mode 100644 index 0000000..cae7789 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0fad1ff009bd47aab554c2704422144 +timeCreated: 1471883453 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoPanoSphereMaterial.mat b/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoPanoSphereMaterial.mat new file mode 100644 index 0000000..0028296 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoPanoSphereMaterial.mat @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: StereoPanoSphereMaterial + m_Shader: {fileID: 4800000, guid: dbafce827ee1b4c86a41482aeacfb5dd, type: 3} + m_ShaderKeywords: _ALPHABLEND_ON _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Transparent + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 10 + - first: + name: _Gamma + second: 1 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 2 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 5 + - first: + name: _StereoVideo + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 0 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoPanoSphereMaterial.mat.meta b/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoPanoSphereMaterial.mat.meta new file mode 100644 index 0000000..627f0c2 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/VideoDemo/StereoPanoSphereMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 38722f7e29e284a8bb3a91c83a5b8848 +timeCreated: 1470165632 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Materials/VideoDemo/VideoMaterial.mat b/Assets/GoogleVR/Demos/Materials/VideoDemo/VideoMaterial.mat new file mode 100644 index 0000000..e71eb83 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/VideoDemo/VideoMaterial.mat @@ -0,0 +1,127 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: VideoMaterial + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e4ecb698048ab455babea358c846d5f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Demos/Materials/VideoDemo/VideoMaterial.mat.meta b/Assets/GoogleVR/Demos/Materials/VideoDemo/VideoMaterial.mat.meta new file mode 100644 index 0000000..bf18f80 --- /dev/null +++ b/Assets/GoogleVR/Demos/Materials/VideoDemo/VideoMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6f8966fc281944c1a0e624a9fb657e4 +timeCreated: 1469833028 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs.meta b/Assets/GoogleVR/Demos/Prefabs.meta new file mode 100644 index 0000000..5c68c22 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2df43a09cf9714acd85487c89c6371fd +folderAsset: yes +timeCreated: 1479319880 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/DemoInputManager.prefab b/Assets/GoogleVR/Demos/Prefabs/DemoInputManager.prefab new file mode 100644 index 0000000..7d3e2b2 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/DemoInputManager.prefab @@ -0,0 +1,280 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &152284 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22412244} + - 222: {fileID: 22228636} + - 114: {fileID: 11450286} + m_Layer: 5 + m_Name: MessageText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &156300 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22450954} + - 222: {fileID: 22233428} + - 114: {fileID: 11437516} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &162814 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22484034} + - 223: {fileID: 22358712} + - 114: {fileID: 11424358} + m_Layer: 5 + m_Name: MessageCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &195966 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 452846} + - 114: {fileID: 11499020} + m_Layer: 0 + m_Name: DemoInputManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &452846 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195966} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.75, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22484034} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &11424358 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 162814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &11437516 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11450286 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: To use the controller, please upgrade to a version of Unity with the GVR + native integration +--- !u!114 &11499020 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195966} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ddd25f1308577456cbaa207901961126, type: 3} + m_Name: + m_EditorClassIdentifier: + controllerMain: {fileID: 0} + controllerPointer: {fileID: 0} + reticlePointer: {fileID: 0} + messageCanvas: {fileID: 0} + messageText: {fileID: 0} + gvrEmulatedPlatformType: 0 +--- !u!222 &22228636 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152284} +--- !u!222 &22233428 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156300} +--- !u!223 &22358712 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 162814} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &22412244 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152284} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22484034} + m_RootOrder: 1 + m_AnchorMin: {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} +--- !u!224 &22450954 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 156300} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22484034} + m_RootOrder: 0 + m_AnchorMin: {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} +--- !u!224 &22484034 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 162814} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22450954} + - {fileID: 22412244} + m_Father: {fileID: 452846} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: -0.24} + m_SizeDelta: {x: 450, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 195966} + m_IsPrefabParent: 1 diff --git a/Assets/GoogleVR/Demos/Prefabs/DemoInputManager.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/DemoInputManager.prefab.meta new file mode 100644 index 0000000..ffb4544 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/DemoInputManager.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8524bbe5e592a42dc9251484a73c9c7f +timeCreated: 1479274754 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/DemoSceneManager.prefab b/Assets/GoogleVR/Demos/Prefabs/DemoSceneManager.prefab new file mode 100644 index 0000000..63f50f9 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/DemoSceneManager.prefab @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 632161999} + m_IsPrefabParent: 1 +--- !u!1 &632161999 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1509313747} + - 114: {fileID: 1980163928} + m_Layer: 0 + m_Name: DemoSceneManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1509313747 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 632161999} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &1980163928 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 632161999} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1bec9ea3efe7849ffae666549aca3cad, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/GoogleVR/Demos/Prefabs/DemoSceneManager.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/DemoSceneManager.prefab.meta new file mode 100644 index 0000000..5d24d54 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/DemoSceneManager.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 87c35d808850c410ca0e398a8da84e68 +timeCreated: 1485218930 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/Keyboard.meta b/Assets/GoogleVR/Demos/Prefabs/Keyboard.meta new file mode 100644 index 0000000..cddb712 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/Keyboard.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0a2dbfca79ae443dea4cc6f01e111e4f +folderAsset: yes +timeCreated: 1478817583 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/Keyboard/KeyboardDelegateExample.prefab b/Assets/GoogleVR/Demos/Prefabs/Keyboard/KeyboardDelegateExample.prefab new file mode 100644 index 0000000..68093c2 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/Keyboard/KeyboardDelegateExample.prefab @@ -0,0 +1,55 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 909512790} + m_IsPrefabParent: 1 +--- !u!1 &909512790 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1788732883} + - 114: {fileID: 2044164019} + m_Layer: 0 + m_Name: KeyboardDelegateExample + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1788732883 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 909512790} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.39, z: 1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &2044164019 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 909512790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff12693eea0a446d0a2183f2ffe9c711, type: 3} + m_Name: + m_EditorClassIdentifier: + KeyboardText: {fileID: 0} + UpdateButton: {fileID: 0} diff --git a/Assets/GoogleVR/Demos/Prefabs/Keyboard/KeyboardDelegateExample.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/Keyboard/KeyboardDelegateExample.prefab.meta new file mode 100644 index 0000000..27197d9 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/Keyboard/KeyboardDelegateExample.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b7eeb268f8424f809fc34c33b2a6820 +timeCreated: 1479081998 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo.meta new file mode 100644 index 0000000..7f0014f --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 60da97125a56e4b1b85a022354700414 +folderAsset: yes +timeCreated: 1472580066 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages.meta new file mode 100644 index 0000000..a8e0b5d --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 67862af0274434d7592c058ae2743c8f +folderAsset: yes +timeCreated: 1475020805 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page1.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page1.prefab new file mode 100644 index 0000000..fda874c --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page1.prefab @@ -0,0 +1,1841 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &38029870 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1548069764} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &51817686 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2056202506} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 542404674} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &57261078 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2056202506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &67497768 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1935979467} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1462626953} + - {fileID: 1994303502} + m_Father: {fileID: 339312181} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &72243066 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 589903257} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 214200560} + m_IsPrefabParent: 1 +--- !u!1 &111428825 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 339312181} + - 114: {fileID: 1306976778} + m_Layer: 0 + m_Name: VerticalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &214200560 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1336081120} + - 225: {fileID: 2132260015} + - 114: {fileID: 1847893153} + - 223: {fileID: 812091920} + - 114: {fileID: 1353440130} + m_Layer: 5 + m_Name: Page1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &317281865 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2056202506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 57261078} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 453423510} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &327351726 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 395939908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &339312181 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111428825} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 67497768} + - {fileID: 577202857} + m_Father: {fileID: 1336081120} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &383928569 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1532960900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &395939908 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 761998720} + - 222: {fileID: 837749101} + - 114: {fileID: 327351726} + - 114: {fileID: 447236417} + - 114: {fileID: 1241403998} + - 114: {fileID: 1810355925} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &447236417 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 395939908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &453423510 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 843787537} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!222 &474029555 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 662466576} +--- !u!224 &542404674 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 948762009} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 51817686} + m_Father: {fileID: 1994303502} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &547044803 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1605606879} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1554377118} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &557556802 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 843787537} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1336081120} + m_RootOrder: 2 +--- !u!224 &577202857 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2043076669} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1548069764} + - {fileID: 659592725} + - {fileID: 589903257} + m_Father: {fileID: 339312181} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &589903257 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 72243066} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1493865476} + m_Father: {fileID: 577202857} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &631474547 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1532960900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1924700451} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &654332967 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1605606879} +--- !u!224 &659592725 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 757030393} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 761998720} + m_Father: {fileID: 577202857} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &662466576 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1635185911} + - 222: {fileID: 474029555} + - 114: {fileID: 1120356695} + - 114: {fileID: 838516469} + - 114: {fileID: 957759409} + - 114: {fileID: 1014685344} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &680177865 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1462626953} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &732387417 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1994303502} + - 114: {fileID: 1627622105} + m_Layer: 0 + m_Name: VerticalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &757030393 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 659592725} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &757910906 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1532960900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1189730924} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 453423510} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &761998720 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 395939908} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 659592725} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &782738821 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1093329430} + - 114: {fileID: 1924700451} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &812091920 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 214200560} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &829164846 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1605606879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1924700451} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &837724368 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2056202506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!222 &837749101 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 395939908} +--- !u!114 &838516469 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 662466576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &843787537 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 557556802} + - 114: {fileID: 453423510} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &861897747 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2056202506} +--- !u!114 &884865812 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1692468387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &929581711 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1605606879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &948762009 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 542404674} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &957759409 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 662466576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1120356695} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 453423510} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1014685344 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 662466576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1924700451} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &1015533082 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1692468387} +--- !u!4 &1093329430 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 782738821} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1336081120} + m_RootOrder: 1 +--- !u!114 &1106740135 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1962950616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &1120356695 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 662466576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1153027365 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1692468387} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1462626953} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 983, y: 983} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1189730924 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1532960900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &1204184146 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1605606879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1210688953 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1962950616} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1336081120} + m_RootOrder: 3 + 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1241403998 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 395939908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 327351726} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 453423510} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1306580713 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1962950616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 12a1c3242abf449bc9a04b3538e9d3b5, type: 3} + m_Name: + m_EditorClassIdentifier: + page: {fileID: 1336081120} + hoverTransform: {fileID: 339312181} + hoverPositionZMeters: 0.225 + interpolationSpeed: 8 +--- !u!114 &1306976778 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 111428825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!222 &1326304339 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1532960900} +--- !u!224 &1336081120 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 214200560} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 339312181} + - {fileID: 1093329430} + - {fileID: 557556802} + - {fileID: 1210688953} + m_Father: {fileID: 0} + m_RootOrder: 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1353440130 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 214200560} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1421114307 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1935979467} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 259 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 774 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!224 &1462626953 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 680177865} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1153027365} + m_Father: {fileID: 67497768} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1493865476 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1532960900} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 589903257} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1532960900 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1493865476} + - 222: {fileID: 1326304339} + - 114: {fileID: 1189730924} + - 114: {fileID: 383928569} + - 114: {fileID: 757910906} + - 114: {fileID: 631474547} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1548069764 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 38029870} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1635185911} + m_Father: {fileID: 577202857} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1554377118 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596213960} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 547044803} + m_Father: {fileID: 1994303502} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1580541952 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1962950616} +--- !u!114 &1589669388 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1692468387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1596213960 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1554377118} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1605606879 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 547044803} + - 222: {fileID: 654332967} + - 114: {fileID: 929581711} + - 114: {fileID: 1967974689} + - 114: {fileID: 829164846} + - 114: {fileID: 1204184146} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1627622105 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 732387417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!224 &1635185911 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 662466576} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1548069764} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1664265530 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2043076669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &1692468387 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1153027365} + - 222: {fileID: 1015533082} + - 114: {fileID: 1589669388} + - 114: {fileID: 1746127978} + - 114: {fileID: 1774593952} + - 114: {fileID: 884865812} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1746127978 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1692468387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1589669388} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 453423510} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1774593952 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1692468387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1924700451} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1810355925 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 395939908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1924700451} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1847893153 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 214200560} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1153027365} + - {fileID: 547044803} + - {fileID: 51817686} + - {fileID: 1635185911} + - {fileID: 761998720} + - {fileID: 1493865476} + layoutTransform: {fileID: 339312181} + staggerAnimationIntensity: 0.5 + tileOrderBy: 2 +--- !u!114 &1924700451 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 782738821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!1 &1935979467 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 67497768} + - 114: {fileID: 1421114307} + m_Layer: 0 + m_Name: HorizontalGroup1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1962950616 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1210688953} + - 114: {fileID: 1306580713} + - 222: {fileID: 1580541952} + - 114: {fileID: 1106740135} + - 114: {fileID: 1426429597} + - 114: {fileID: 793079715} + m_Layer: 0 + m_Name: JumpToPage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1967974689 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1605606879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 929581711} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 453423510} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1992134959 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2056202506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1924700451} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1994303502 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 732387417} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1554377118} + - {fileID: 542404674} + m_Father: {fileID: 67497768} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2043076669 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 577202857} + - 114: {fileID: 1664265530} + m_Layer: 0 + m_Name: HorizontalGroup2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2056202506 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 51817686} + - 222: {fileID: 861897747} + - 114: {fileID: 57261078} + - 114: {fileID: 317281865} + - 114: {fileID: 1992134959} + - 114: {fileID: 837724368} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!225 &2132260015 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 214200560} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1426429597 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1962950616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &793079715 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1962950616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1426429597} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page1.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page1.prefab.meta new file mode 100644 index 0000000..e86a692 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page1.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e503c637f6fe140ebb26002166bc1e39 +timeCreated: 1472580070 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page2.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page2.prefab new file mode 100644 index 0000000..207f928 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page2.prefab @@ -0,0 +1,2294 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &30822834 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 899760062} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &91352259 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 167004373} + - 114: {fileID: 868866071} + - 222: {fileID: 1526408490} + - 114: {fileID: 1978159698} + - 114: {fileID: 1330782737} + - 114: {fileID: 1882789745} + m_Layer: 0 + m_Name: JumpToPage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1539116261} + m_IsPrefabParent: 1 +--- !u!224 &124178115 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2126376378} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1357423648} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &167004373 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 91352259} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1108132316} + m_RootOrder: 3 + 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &170643498 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1629445130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &190370874 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2037616353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &246848835 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1710822076} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &254145687 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 673183656} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &255392204 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1791547759} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 442445937} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &266839930 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343951049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1141833944} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 922984538} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &290360315 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1807381411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &313153647 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 708542920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 872019063} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 922984538} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &348901996 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1791547759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 987535394} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &357230576 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2037616353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 987535394} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &381323787 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343951049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &388627944 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 708542920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &396653019 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1494933728} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &408960591 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1629445130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 987535394} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &416570469 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 890784718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &442445937 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 661943903} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 255392204} + m_Father: {fileID: 1404001427} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &479814124 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1404001427} + - 114: {fileID: 1837712574} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &514027149 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1807381411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 622726615} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 922984538} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &517897778 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1791547759} +--- !u!114 &518188330 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1629445130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &528430223 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2037616353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 190370874} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 922984538} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &616893691 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343951049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 987535394} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &622726615 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1807381411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &644101715 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1403097266} + m_Layer: 0 + m_Name: Cell9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &661943903 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 442445937} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &673183656 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1991699604} + - 222: {fileID: 922331801} + - 114: {fileID: 254145687} + - 114: {fileID: 1274942650} + - 114: {fileID: 1826222105} + - 114: {fileID: 772958386} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &692368193 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343951049} +--- !u!1 &708542920 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1537174564} + - 222: {fileID: 1713480326} + - 114: {fileID: 872019063} + - 114: {fileID: 388627944} + - 114: {fileID: 313153647} + - 114: {fileID: 1528948241} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &747534863 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2037616353} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1710822076} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &772958386 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 673183656} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 987535394} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &791257094 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1357423648} + m_Layer: 0 + m_Name: Cell7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &812583762 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1297883425} + m_Layer: 0 + m_Name: Cell8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &868866071 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 91352259} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 12a1c3242abf449bc9a04b3538e9d3b5, type: 3} + m_Name: + m_EditorClassIdentifier: + page: {fileID: 1108132316} + hoverTransform: {fileID: 1404001427} + hoverPositionZMeters: 0.225 + interpolationSpeed: 8 +--- !u!114 &872019063 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 708542920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &890784718 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 978333594} + - 222: {fileID: 1656290894} + - 114: {fileID: 416570469} + - 114: {fileID: 1694174532} + - 114: {fileID: 1613176440} + - 114: {fileID: 1001955571} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &899760062 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 30822834} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 978333594} + m_Father: {fileID: 1404001427} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &911043961 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1903214367} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &922331801 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 673183656} +--- !u!114 &922984538 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1055814005} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &978333594 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 890784718} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 899760062} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &987535394 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1080903528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &1000171687 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2126376378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 987535394} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1001955571 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 890784718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 987535394} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1012458178 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343951049} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1297883425} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1045200836 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2037616353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1047441275 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1424191990} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1680197559} + m_Father: {fileID: 1404001427} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1055814005 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1323370035} + - 114: {fileID: 922984538} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!225 &1070318652 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1539116261} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1 &1080903528 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2036090270} + - 114: {fileID: 987535394} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1108132316 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1539116261} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1404001427} + - {fileID: 2036090270} + - {fileID: 1323370035} + - {fileID: 167004373} + m_Father: {fileID: 0} + m_RootOrder: 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1141833944 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343951049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1250946311 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1807381411} +--- !u!114 &1274942650 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 673183656} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1297883425 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 812583762} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14066696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1012458178} + m_Father: {fileID: 1404001427} + m_RootOrder: 7 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &1323370035 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1055814005} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1108132316} + m_RootOrder: 2 +--- !u!1 &1343951049 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1012458178} + - 222: {fileID: 692368193} + - 114: {fileID: 1141833944} + - 114: {fileID: 266839930} + - 114: {fileID: 616893691} + - 114: {fileID: 381323787} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1355343859 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1629445130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 518188330} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 922984538} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1357423648 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 791257094} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14066696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 124178115} + m_Father: {fileID: 1404001427} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1361773340 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2126376378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1745361976} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 922984538} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1403097266 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 644101715} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14066696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1537174564} + m_Father: {fileID: 1404001427} + m_RootOrder: 8 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1404001427 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 479814124} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1903214367} + - {fileID: 1710822076} + - {fileID: 899760062} + - {fileID: 1047441275} + - {fileID: 442445937} + - {fileID: 1494933728} + - {fileID: 1357423648} + - {fileID: 1297883425} + - {fileID: 1403097266} + m_Father: {fileID: 1108132316} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1424191990 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1047441275} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1449709399 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1539116261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1991699604} + - {fileID: 747534863} + - {fileID: 978333594} + - {fileID: 1680197559} + - {fileID: 255392204} + - {fileID: 1532974242} + - {fileID: 124178115} + - {fileID: 1012458178} + - {fileID: 1537174564} + layoutTransform: {fileID: 1404001427} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!224 &1494933728 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 396653019} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1532974242} + m_Father: {fileID: 1404001427} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1511815508 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1629445130} +--- !u!114 &1515734462 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1807381411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 987535394} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &1526408490 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 91352259} +--- !u!114 &1528948241 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 708542920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 987535394} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1532974242 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1629445130} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1494933728} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1537174564 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 708542920} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1403097266} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1539116261 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1108132316} + - 225: {fileID: 1070318652} + - 114: {fileID: 1449709399} + - 223: {fileID: 1781332878} + - 114: {fileID: 1720257492} + m_Layer: 5 + m_Name: Page2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1613176440 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 890784718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 416570469} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 922984538} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1629445130 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1532974242} + - 222: {fileID: 1511815508} + - 114: {fileID: 518188330} + - 114: {fileID: 1355343859} + - 114: {fileID: 408960591} + - 114: {fileID: 170643498} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1656290894 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 890784718} +--- !u!222 &1669109437 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2126376378} +--- !u!224 &1680197559 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1807381411} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1047441275} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1682573004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1791547759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &1694174532 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 890784718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1710822076 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 246848835} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 747534863} + m_Father: {fileID: 1404001427} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1713480326 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 708542920} +--- !u!114 &1720257492 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1539116261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1745361976 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2126376378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!223 &1781332878 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1539116261} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1791547759 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 255392204} + - 222: {fileID: 517897778} + - 114: {fileID: 1682573004} + - 114: {fileID: 2040543917} + - 114: {fileID: 1870864596} + - 114: {fileID: 348901996} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1807381411 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1680197559} + - 222: {fileID: 1250946311} + - 114: {fileID: 622726615} + - 114: {fileID: 514027149} + - 114: {fileID: 1515734462} + - 114: {fileID: 290360315} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1826222105 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 673183656} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 254145687} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 922984538} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1837712574 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 479814124} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 466, y: 466} + m_Spacing: {x: 50, y: 50} + m_Constraint: 1 + m_ConstraintCount: 3 +--- !u!114 &1870864596 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1791547759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1682573004} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 922984538} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &1891391968 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2037616353} +--- !u!224 &1903214367 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 911043961} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1991699604} + m_Father: {fileID: 1404001427} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1978159698 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 91352259} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &1982076487 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2126376378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1991699604 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 673183656} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1903214367} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &2036090270 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1080903528} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1108132316} + m_RootOrder: 1 +--- !u!1 &2037616353 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 747534863} + - 222: {fileID: 1891391968} + - 114: {fileID: 190370874} + - 114: {fileID: 528430223} + - 114: {fileID: 357230576} + - 114: {fileID: 1045200836} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2040543917 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1791547759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &2126376378 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 124178115} + - 222: {fileID: 1669109437} + - 114: {fileID: 1745361976} + - 114: {fileID: 1982076487} + - 114: {fileID: 1361773340} + - 114: {fileID: 1000171687} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1882789745 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 91352259} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1330782737} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1330782737 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 91352259} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page2.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page2.prefab.meta new file mode 100644 index 0000000..6403abb --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page2.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1cbff7d2ef5c748569edb601be5d46f4 +timeCreated: 1472580071 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page3.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page3.prefab new file mode 100644 index 0000000..69fdcfe --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page3.prefab @@ -0,0 +1,1116 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1142648273} + m_IsPrefabParent: 1 +--- !u!4 &175950297 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1066337682} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1210630751} + m_RootOrder: 1 +--- !u!224 &184279463 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1563690344} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1210630751} + m_RootOrder: 3 + 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &295934580 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1708511847} + m_Layer: 0 + m_Name: Cell + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &492391303 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1537547608} +--- !u!114 &554155429 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1537547608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &720419661 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2117078607} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 855441906} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &803937712 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1142648273} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1317630596} + - {fileID: 824728971} + - {fileID: 720419661} + layoutTransform: {fileID: 1235892840} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!224 &824728971 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1537547608} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2055254516} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &832320404 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1142648273} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &838445550 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1333951417} + - 114: {fileID: 1644321481} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &855441906 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1679756521} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 720419661} + m_Father: {fileID: 1985894271} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &868986325 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1757564523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2029425118} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1644321481} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &950175326 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1985894271} + - 114: {fileID: 1557696284} + m_Layer: 0 + m_Name: VerticalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1066337682 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 175950297} + - 114: {fileID: 1992331017} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1079633128 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2117078607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1183176839} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1644321481} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!225 &1098187938 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1142648273} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!223 &1103920950 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1142648273} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!222 &1138101099 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2117078607} +--- !u!1 &1142648273 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1210630751} + - 225: {fileID: 1098187938} + - 114: {fileID: 803937712} + - 223: {fileID: 1103920950} + - 114: {fileID: 832320404} + m_Layer: 5 + m_Name: Page3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1183176839 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2117078607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1210630751 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1142648273} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1235892840} + - {fileID: 175950297} + - {fileID: 1333951417} + - {fileID: 184279463} + m_Father: {fileID: 0} + m_RootOrder: 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1235892840 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1973471287} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1708511847} + - {fileID: 1985894271} + m_Father: {fileID: 1210630751} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1317630596 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1757564523} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1708511847} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 983, y: 983} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &1333951417 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 838445550} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1210630751} + m_RootOrder: 2 +--- !u!114 &1351213742 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1537547608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1992331017} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1384291138 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2117078607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1516770043 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1757564523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &1537547608 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 824728971} + - 222: {fileID: 492391303} + - 114: {fileID: 2047103609} + - 114: {fileID: 1565589289} + - 114: {fileID: 1351213742} + - 114: {fileID: 554155429} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1557696284 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 950175326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &1563690344 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 184279463} + - 114: {fileID: 2098778427} + - 222: {fileID: 1854683034} + - 114: {fileID: 1593781315} + - 114: {fileID: 1292973735} + - 114: {fileID: 1931670865} + m_Layer: 0 + m_Name: JumpToPage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1565589289 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1537547608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2047103609} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1644321481} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1593781315 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1563690344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &1644321481 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 838445550} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!222 &1671072234 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1757564523} +--- !u!114 &1679687511 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1757564523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1992331017} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1679756521 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 855441906} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1691356913 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1973471287} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 259 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 774 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!224 &1708511847 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 295934580} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1317630596} + m_Father: {fileID: 1235892840} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1757564523 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1317630596} + - 222: {fileID: 1671072234} + - 114: {fileID: 2029425118} + - 114: {fileID: 868986325} + - 114: {fileID: 1679687511} + - 114: {fileID: 1516770043} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1854683034 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1563690344} +--- !u!1 &1973471287 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1235892840} + - 114: {fileID: 1691356913} + m_Layer: 0 + m_Name: HorizontalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1985894271 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 950175326} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2055254516} + - {fileID: 855441906} + m_Father: {fileID: 1235892840} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1990506224 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2055254516} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1992331017 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1066337682} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &2029425118 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1757564523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &2047103609 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1537547608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &2055254516 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1990506224} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 824728971} + m_Father: {fileID: 1985894271} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2098778427 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1563690344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 12a1c3242abf449bc9a04b3538e9d3b5, type: 3} + m_Name: + m_EditorClassIdentifier: + page: {fileID: 1210630751} + hoverTransform: {fileID: 1235892840} + hoverPositionZMeters: 0.225 + interpolationSpeed: 8 +--- !u!1 &2117078607 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 720419661} + - 222: {fileID: 1138101099} + - 114: {fileID: 1183176839} + - 114: {fileID: 1079633128} + - 114: {fileID: 2131221428} + - 114: {fileID: 1384291138} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2131221428 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2117078607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1992331017} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1292973735 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1563690344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &1931670865 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1563690344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1292973735} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page3.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page3.prefab.meta new file mode 100644 index 0000000..be5732b --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page3.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 93d6adf4eafeb42f6ab4099011ec365c +timeCreated: 1472580073 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page4.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page4.prefab new file mode 100644 index 0000000..e9fa0e0 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page4.prefab @@ -0,0 +1,1679 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8487789 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1805038643} + - 222: {fileID: 997494775} + - 114: {fileID: 25902012} + - 114: {fileID: 895513181} + - 114: {fileID: 2088110773} + - 114: {fileID: 338025787} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22980611 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 755315051} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 116536861} + m_Father: {fileID: 1614605693} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &25902012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 8487789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &69762507 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1528290740} + - 222: {fileID: 1921903378} + - 114: {fileID: 225982559} + - 114: {fileID: 1186148097} + - 114: {fileID: 416396169} + - 114: {fileID: 180013979} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 684569283} + m_IsPrefabParent: 1 +--- !u!224 &116536861 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2139304582} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 22980611} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &134753582 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1674543275} + - 114: {fileID: 1421923861} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &139212607 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1755649230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &139318769 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 868234642} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 541599794} + m_RootOrder: 3 + 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &180013979 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 69762507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &201588017 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 489883071} + - 114: {fileID: 2012389581} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &225982559 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 69762507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &230597098 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1063847032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &244604423 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1755649230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 139212607} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1421923861} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &338025787 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 8487789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &416396169 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 69762507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2012389581} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &430315575 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1453101330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2012389581} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &449974032 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1755649230} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1358320996} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &489883071 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 201588017} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 541599794} + m_RootOrder: 1 +--- !u!224 &541599794 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 684569283} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1614605693} + - {fileID: 489883071} + - {fileID: 1674543275} + - {fileID: 139318769} + m_Father: {fileID: 0} + m_RootOrder: 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &573150846 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1453101330} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1378044730} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &684569283 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 541599794} + - 225: {fileID: 1601625321} + - 114: {fileID: 1222259648} + - 223: {fileID: 1566992781} + - 114: {fileID: 913237945} + m_Layer: 5 + m_Name: Page4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &704710083 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1614605693} + - 114: {fileID: 1616467165} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &717564381 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1063847032} +--- !u!1 &755315051 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22980611} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &862423342 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1063847032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1000893306} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1421923861} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &868234642 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 139318769} + - 114: {fileID: 1330779268} + - 222: {fileID: 2057528326} + - 114: {fileID: 1319555233} + - 114: {fileID: 1639722145} + - 114: {fileID: 813482902} + m_Layer: 0 + m_Name: JumpToPage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &895513181 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 8487789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 25902012} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1421923861} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &909048445 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1755649230} +--- !u!114 &913237945 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 684569283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &984207983 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1378044730} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &997494775 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 8487789} +--- !u!114 &1000893306 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1063847032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &1002182366 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1755649230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1049301925 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2139304582} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1821467939} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1421923861} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1063847032 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1926596680} + - 222: {fileID: 717564381} + - 114: {fileID: 1000893306} + - 114: {fileID: 862423342} + - 114: {fileID: 1177660616} + - 114: {fileID: 230597098} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1172120473 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2139304582} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1177660616 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1063847032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2012389581} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1186148097 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 69762507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 225982559} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1421923861} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1205731145 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1318355997} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1222259648 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 684569283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1805038643} + - {fileID: 1926596680} + - {fileID: 1528290740} + - {fileID: 573150846} + - {fileID: 449974032} + - {fileID: 116536861} + layoutTransform: {fileID: 1614605693} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!224 &1318355997 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1205731145} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1926596680} + m_Father: {fileID: 1614605693} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1319555233 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 868234642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &1330779268 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 868234642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 12a1c3242abf449bc9a04b3538e9d3b5, type: 3} + m_Name: + m_EditorClassIdentifier: + page: {fileID: 541599794} + hoverTransform: {fileID: 1614605693} + hoverPositionZMeters: 0.225 + interpolationSpeed: 8 +--- !u!224 &1358320996 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1490869892} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 449974032} + m_Father: {fileID: 1614605693} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1378044730 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 984207983} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 573150846} + m_Father: {fileID: 1614605693} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1400257817 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1453101330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1421923861 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134753582} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &1425035251 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1453101330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1453101330 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 573150846} + - 222: {fileID: 1817438833} + - 114: {fileID: 1425035251} + - 114: {fileID: 2070895517} + - 114: {fileID: 430315575} + - 114: {fileID: 1400257817} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1490869892 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1358320996} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1528290740 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 69762507} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1773296678} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &1566992781 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 684569283} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!225 &1601625321 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 684569283} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!224 &1614605693 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 704710083} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2001339955} + - {fileID: 1318355997} + - {fileID: 1773296678} + - {fileID: 1378044730} + - {fileID: 1358320996} + - {fileID: 22980611} + m_Father: {fileID: 541599794} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1616467165 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 704710083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 466, y: 466} + m_Spacing: {x: 50, y: 50} + m_Constraint: 1 + m_ConstraintCount: 3 +--- !u!4 &1674543275 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134753582} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 541599794} + m_RootOrder: 2 +--- !u!114 &1699820495 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2139304582} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2012389581} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1727695682 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1773296678} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1755649230 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 449974032} + - 222: {fileID: 909048445} + - 114: {fileID: 139212607} + - 114: {fileID: 244604423} + - 114: {fileID: 1978156345} + - 114: {fileID: 1002182366} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1773296678 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1727695682} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1528290740} + m_Father: {fileID: 1614605693} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1805038643 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 8487789} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2001339955} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1817438833 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1453101330} +--- !u!114 &1821467939 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2139304582} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1848288075 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2001339955} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1921903378 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 69762507} +--- !u!224 &1926596680 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1063847032} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1318355997} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1978156345 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1755649230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2012389581} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &2001339955 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1848288075} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1805038643} + m_Father: {fileID: 1614605693} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2007486283 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2139304582} +--- !u!114 &2012389581 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 201588017} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!222 &2057528326 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 868234642} +--- !u!114 &2070895517 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1453101330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1425035251} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1421923861} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2088110773 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 8487789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2012389581} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &2139304582 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 116536861} + - 222: {fileID: 2007486283} + - 114: {fileID: 1821467939} + - 114: {fileID: 1049301925} + - 114: {fileID: 1699820495} + - 114: {fileID: 1172120473} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1639722145 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 868234642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &813482902 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 868234642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1639722145} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page4.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page4.prefab.meta new file mode 100644 index 0000000..63e841a --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page4.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ba57743b44c444e86a6c560d0d282ff1 +timeCreated: 1472580074 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page5.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page5.prefab new file mode 100644 index 0000000..87fbafe --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page5.prefab @@ -0,0 +1,1679 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!224 &3941272 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2026486498} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1133986980} + m_Father: {fileID: 1108965547} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &43473072 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2016344733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 503547698} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1003429815} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &73245553 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 384962259} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &77930942 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 671501499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 720075372} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1482364536} + m_IsPrefabParent: 1 +--- !u!224 &116953129 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 339536665} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 549378627} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &118622138 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1804554817} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1004592628} + m_RootOrder: 3 + 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &129976661 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1108965547} + - 114: {fileID: 1078301163} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &239988403 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2016344733} +--- !u!114 &259053167 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 339536665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &338468456 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2016344733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &339536665 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 116953129} + - 222: {fileID: 1948199903} + - 114: {fileID: 259053167} + - 114: {fileID: 438779031} + - 114: {fileID: 633404737} + - 114: {fileID: 1639321039} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &356718301 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 931321883} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1004592628} + m_RootOrder: 1 +--- !u!224 &384962259 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 73245553} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1230592401} + m_Father: {fileID: 1108965547} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &438779031 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 339536665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 259053167} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1003429815} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &440784360 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 671501499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &503547698 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2016344733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &513908624 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1302966030} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &549378627 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1149327262} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 116953129} + m_Father: {fileID: 1108965547} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &589834702 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1784874846} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &633404737 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 339536665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 720075372} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &648416048 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1309574568} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 720075372} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &671501499 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1230592401} + - 222: {fileID: 919729617} + - 114: {fileID: 1742409924} + - 114: {fileID: 973903661} + - 114: {fileID: 77930942} + - 114: {fileID: 440784360} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &720075372 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 931321883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &768016567 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1482364536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!224 &772424764 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2016344733} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1302966030} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &852683147 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1736792991} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 877868846} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &853637478 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1752109502} + - 222: {fileID: 1223529692} + - 114: {fileID: 1313098694} + - 114: {fileID: 1064125348} + - 114: {fileID: 1074891374} + - 114: {fileID: 1842273032} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &873906905 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1309574568} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &877868846 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 965946038} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 852683147} + m_Father: {fileID: 1108965547} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &919729617 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 671501499} +--- !u!1 &931321883 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 356718301} + - 114: {fileID: 720075372} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &965946038 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 877868846} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &966272135 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1309574568} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 873906905} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1003429815} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &973903661 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 671501499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1742409924} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1003429815} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1003429815 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1143915939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1004592628 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1482364536} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1108965547} + - {fileID: 356718301} + - {fileID: 1250368854} + - {fileID: 118622138} + m_Father: {fileID: 0} + m_RootOrder: 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1054856775 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1309574568} +--- !u!114 &1064125348 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 853637478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1313098694} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1003429815} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1074891374 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 853637478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 720075372} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1078301163 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129976661} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 466, y: 466} + m_Spacing: {x: 50, y: 50} + m_Constraint: 1 + m_ConstraintCount: 2 +--- !u!224 &1108965547 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129976661} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 549378627} + - {fileID: 1302966030} + - {fileID: 384962259} + - {fileID: 3941272} + - {fileID: 1784874846} + - {fileID: 877868846} + m_Father: {fileID: 1004592628} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1114577783 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1736792991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1133986980 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1309574568} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 3941272} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1143915939 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1250368854} + - 114: {fileID: 1003429815} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1146695383 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1804554817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!1 &1149327262 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 549378627} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1223529692 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 853637478} +--- !u!224 &1230592401 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 671501499} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 384962259} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &1250368854 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1143915939} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1004592628} + m_RootOrder: 2 +--- !u!114 &1253773453 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1736792991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 720075372} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!223 &1275215146 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1482364536} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1302966030 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 513908624} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 772424764} + m_Father: {fileID: 1108965547} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1309574568 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1133986980} + - 222: {fileID: 1054856775} + - 114: {fileID: 873906905} + - 114: {fileID: 966272135} + - 114: {fileID: 648416048} + - 114: {fileID: 1678436119} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1313098694 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 853637478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!225 &1425507893 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1482364536} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1472791023 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1482364536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 116953129} + - {fileID: 772424764} + - {fileID: 1230592401} + - {fileID: 1133986980} + - {fileID: 1752109502} + - {fileID: 852683147} + layoutTransform: {fileID: 1108965547} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!1 &1482364536 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1004592628} + - 225: {fileID: 1425507893} + - 114: {fileID: 1472791023} + - 223: {fileID: 1275215146} + - 114: {fileID: 768016567} + m_Layer: 5 + m_Name: Page5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1639321039 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 339536665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1678436119 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1309574568} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &1736792991 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 852683147} + - 222: {fileID: 1887305519} + - 114: {fileID: 1880229003} + - 114: {fileID: 2003215322} + - 114: {fileID: 1253773453} + - 114: {fileID: 1114577783} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1742409924 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 671501499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1752109502 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 853637478} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1784874846} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1784874846 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 589834702} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1752109502} + m_Father: {fileID: 1108965547} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1801070171 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1804554817} +--- !u!1 &1804554817 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 118622138} + - 114: {fileID: 1936185151} + - 222: {fileID: 1801070171} + - 114: {fileID: 1146695383} + - 114: {fileID: 290462307} + - 114: {fileID: 810382991} + m_Layer: 0 + m_Name: JumpToPage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1842273032 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 853637478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1845428932 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2016344733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 720075372} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1880229003 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1736792991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1887305519 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1736792991} +--- !u!114 &1936185151 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1804554817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 12a1c3242abf449bc9a04b3538e9d3b5, type: 3} + m_Name: + m_EditorClassIdentifier: + page: {fileID: 1004592628} + hoverTransform: {fileID: 1108965547} + hoverPositionZMeters: 0.225 + interpolationSpeed: 8 +--- !u!222 &1948199903 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 339536665} +--- !u!114 &2003215322 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1736792991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1880229003} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1003429815} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &2016344733 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 772424764} + - 222: {fileID: 239988403} + - 114: {fileID: 503547698} + - 114: {fileID: 43473072} + - 114: {fileID: 1845428932} + - 114: {fileID: 338468456} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2026486498 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 3941272} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &290462307 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1804554817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &810382991 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1804554817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 290462307} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page5.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page5.prefab.meta new file mode 100644 index 0000000..47e9576 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/Page5.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cdcd4978853f54adf97d552def25ded2 +timeCreated: 1472580075 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/PooledPage.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/PooledPage.prefab new file mode 100644 index 0000000..094e5f5 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/PooledPage.prefab @@ -0,0 +1,144 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 214200560} + m_IsPrefabParent: 1 +--- !u!1 &214200560 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1336081120} + - 225: {fileID: 2132260015} + - 223: {fileID: 812091920} + m_Layer: 5 + m_Name: PooledPage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &812091920 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 214200560} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!222 &1015533082 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1692468387} +--- !u!224 &1153027365 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1692468387} + 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_Children: [] + m_Father: {fileID: 1336081120} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1336081120 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 214200560} + 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_Children: + - {fileID: 1153027365} + m_Father: {fileID: 0} + m_RootOrder: 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1589669388 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1692468387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1692468387 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1153027365} + - 222: {fileID: 1015533082} + - 114: {fileID: 1589669388} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!225 &2132260015 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 214200560} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/PooledPage.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/PooledPage.prefab.meta new file mode 100644 index 0000000..3083d23 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Pages/PooledPage.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ccbc6cdb24be40d99451ff274c2c345 +timeCreated: 1472580070 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs.meta new file mode 100644 index 0000000..a0e6ea6 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 86f165e0cf1e54dca9ee218dfc65ac41 +folderAsset: yes +timeCreated: 1475020789 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabDynamic.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabDynamic.prefab new file mode 100644 index 0000000..60ebefc --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabDynamic.prefab @@ -0,0 +1,672 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 188030162} + m_IsPrefabParent: 1 +--- !u!114 &103852547 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1616623257} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &172935572 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1731969334} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 923152355} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &188030162 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1310236129} + - 114: {fileID: 1902387816} + - 114: {fileID: 1464247636} + - 223: {fileID: 2048239914} + - 225: {fileID: 513737138} + - 222: {fileID: 1683547175} + - 114: {fileID: 1383904591} + - 114: {fileID: 675379883} + - 114: {fileID: 937341407} + - 114: {fileID: 617846225} + - 114: {fileID: 1243565646} + m_Layer: 5 + m_Name: TabDynamic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &303304701 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1909888443} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1310236129} + m_RootOrder: 1 +--- !u!114 &420889558 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1645746547} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &440902354 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1731969334} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.93333334, g: 0.93333334, b: 0.93333334, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &480043923 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1731969334} +--- !u!225 &513737138 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &617846225 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cee9bf8d7a0fe4c348dc7216756fc588, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &675379883 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 903ff5a247c7a42ef9a49292f4a04e66, type: 3} + m_Name: + m_EditorClassIdentifier: + Weights: {x: 1, y: 0, z: 0} + mirrorX: 0 + mirrorY: 0 + mirrorZ: 0 +--- !u!1 &822086308 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 923152355} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &884700442 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1909888443} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 75900b9d8d4dc794bb7c2542dfa4c213, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!1 &904223814 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1844284467} + - 114: {fileID: 1941776947} + m_Layer: 0 + m_Name: SwipeLeftSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &923152355 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 822086308} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 172935572} + m_Father: {fileID: 1906686302} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &937341407 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8a1350d8c86b45c5b567988d0897a27, type: 3} + m_Name: + m_EditorClassIdentifier: + minAlpha: 0 +--- !u!222 &1219510433 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1616623257} +--- !u!114 &1243565646 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!224 &1310236129 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1844284467} + - {fileID: 303304701} + - {fileID: 1906686302} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.030487059, y: 0.000051617622} + m_SizeDelta: {x: 5400, y: 1800} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1383904591 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &1464247636 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1374e4769ab841f0868774620e9340e, type: 3} + m_Name: + m_EditorClassIdentifier: + prefabs: + - {fileID: 1142648273, guid: 93d6adf4eafeb42f6ab4099011ec365c, type: 2} + - {fileID: 684569283, guid: ba57743b44c444e86a6c560d0d282ff1, type: 2} + - {fileID: 1539116261, guid: 1cbff7d2ef5c748569edb601be5d46f4, type: 2} + - {fileID: 214200560, guid: e503c637f6fe140ebb26002166bc1e39, type: 2} + spacing: 2000 +--- !u!114 &1613826978 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1616623257} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 998e7801d843d29468b357afb447a8fb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 440902354} + m_HandleRect: {fileID: 172935572} + m_Direction: 0 + m_Value: 0 + m_Size: 0 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + pagedScrollRect: {fileID: 1902387816} +--- !u!1 &1616623257 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1906686302} + - 222: {fileID: 1219510433} + - 114: {fileID: 103852547} + - 114: {fileID: 1613826978} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1645746547 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2007181728} + - 222: {fileID: 1895147737} + - 114: {fileID: 420889558} + m_Layer: 5 + m_Name: BoundsExpander + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1683547175 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} +--- !u!1 &1731969334 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 172935572} + - 222: {fileID: 480043923} + - 114: {fileID: 440902354} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1844284467 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 904223814} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1310236129} + m_RootOrder: 0 +--- !u!222 &1895147737 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1645746547} +--- !u!114 &1902387816 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe98bb862d52fdd47a0641556e3140f8, type: 3} + m_Name: + m_EditorClassIdentifier: + ScrollSensitivity: 1 + SnapSpeed: 6 + StartPage: 0 + loop: 0 + onlyScrollWhenPointing: 1 + numExtraPagesShown: 0 + showNextPagesAtRest: 0 + shouldTilesAlwaysBeInteractable: 1 + OnSwipeLeft: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1941776947} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSwipeRight: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 884700442} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSnapClosest: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!224 &1906686302 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1616623257} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2007181728} + - {fileID: 923152355} + m_Father: {fileID: 1310236129} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -825} + m_SizeDelta: {x: 1700, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1909888443 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 303304701} + - 114: {fileID: 884700442} + m_Layer: 0 + m_Name: SwipeRightSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1941776947 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 904223814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 14761055ede130c4d87d3d918ea7ca99, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &2007181728 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1645746547} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1906686302} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -0.000061035156} + m_SizeDelta: {x: 1700, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &2048239914 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188030162} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabDynamic.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabDynamic.prefab.meta new file mode 100644 index 0000000..70a01de --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabDynamic.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eec6745e1ba09428fb198113d3718cc8 +timeCreated: 1473208298 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabEffects.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabEffects.prefab new file mode 100644 index 0000000..811d82e --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabEffects.prefab @@ -0,0 +1,686 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &29924738 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe98bb862d52fdd47a0641556e3140f8, type: 3} + m_Name: + m_EditorClassIdentifier: + ScrollSensitivity: 1 + SnapSpeed: 6 + StartPage: 0 + loop: 1 + onlyScrollWhenPointing: 1 + numExtraPagesShown: 1 + showNextPagesAtRest: 0 + shouldTilesAlwaysBeInteractable: 0 + OnSwipeLeft: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1997128852} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSwipeRight: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1192651255} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSnapClosest: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!114 &59332482 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 33bf08613783c41f7b57052eaa664c7f, type: 3} + m_Name: + m_EditorClassIdentifier: + minScale: 0.7 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1233651472} + m_IsPrefabParent: 1 +--- !u!222 &232942273 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} +--- !u!114 &329753395 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!224 &366873157 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1266936063} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2057601558} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.000061035156, y: -0.000061035156} + m_SizeDelta: {x: 1700, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &449489180 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1138833971} + - 114: {fileID: 1997128852} + m_Layer: 0 + m_Name: SwipeLeftSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &496936369 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1209398941} + - 222: {fileID: 560765359} + - 114: {fileID: 1113177791} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &526112026 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2048581752} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1033240661} + m_RootOrder: 0 +--- !u!222 &560765359 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 496936369} +--- !u!224 &773989966 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1406929054} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1209398941} + m_Father: {fileID: 2057601558} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &910883765 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 903ff5a247c7a42ef9a49292f4a04e66, type: 3} + m_Name: + m_EditorClassIdentifier: + Weights: {x: 1, y: 0, z: 0.5} + mirrorX: 0 + mirrorY: 0 + mirrorZ: 1 +--- !u!224 &1033240661 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 526112026} + - {fileID: 1138833971} + - {fileID: 2057601558} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.030517515, y: 0.00005173683} + m_SizeDelta: {x: 5400, y: 1800} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1113177791 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 496936369} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.93333334, g: 0.93333334, b: 0.93333334, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!4 &1138833971 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 449489180} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1033240661} + m_RootOrder: 1 +--- !u!114 &1155056959 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1374e4769ab841f0868774620e9340e, type: 3} + m_Name: + m_EditorClassIdentifier: + prefabs: + - {fileID: 1539116261, guid: 1cbff7d2ef5c748569edb601be5d46f4, type: 2} + - {fileID: 1482364536, guid: cdcd4978853f54adf97d552def25ded2, type: 2} + - {fileID: 684569283, guid: ba57743b44c444e86a6c560d0d282ff1, type: 2} + - {fileID: 214200560, guid: e503c637f6fe140ebb26002166bc1e39, type: 2} + - {fileID: 1142648273, guid: 93d6adf4eafeb42f6ab4099011ec365c, type: 2} + spacing: 1500 +--- !u!114 &1192651255 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2048581752} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 75900b9d8d4dc794bb7c2542dfa4c213, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1209398941 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 496936369} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 773989966} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1233651472 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1033240661} + - 114: {fileID: 29924738} + - 114: {fileID: 1155056959} + - 223: {fileID: 1794156846} + - 225: {fileID: 1641457576} + - 222: {fileID: 232942273} + - 114: {fileID: 2111729096} + - 114: {fileID: 910883765} + - 114: {fileID: 1436386298} + - 114: {fileID: 59332482} + - 114: {fileID: 1873389568} + - 114: {fileID: 329753395} + m_Layer: 5 + m_Name: TabEffects + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1266936063 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 366873157} + - 222: {fileID: 2122542933} + - 114: {fileID: 1889238890} + m_Layer: 5 + m_Name: BoundsExpander + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1406929054 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 773989966} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1436386298 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8a1350d8c86b45c5b567988d0897a27, type: 3} + m_Name: + m_EditorClassIdentifier: + minAlpha: 0.5 +--- !u!114 &1576698673 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1622566640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 998e7801d843d29468b357afb447a8fb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1113177791} + m_HandleRect: {fileID: 1209398941} + m_Direction: 0 + m_Value: 0 + m_Size: 0 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + pagedScrollRect: {fileID: 29924738} +--- !u!1 &1622566640 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2057601558} + - 222: {fileID: 1852262063} + - 114: {fileID: 1792907670} + - 114: {fileID: 1576698673} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!225 &1641457576 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1792907670 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1622566640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!223 &1794156846 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!222 &1852262063 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1622566640} +--- !u!114 &1873389568 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cee9bf8d7a0fe4c348dc7216756fc588, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1889238890 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1266936063} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &1997128852 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 449489180} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 14761055ede130c4d87d3d918ea7ca99, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!1 &2048581752 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 526112026} + - 114: {fileID: 1192651255} + m_Layer: 0 + m_Name: SwipeRightSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2057601558 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1622566640} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 773989966} + - {fileID: 366873157} + m_Father: {fileID: 1033240661} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -825} + m_SizeDelta: {x: 1700, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2111729096 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1233651472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &2122542933 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1266936063} diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabEffects.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabEffects.prefab.meta new file mode 100644 index 0000000..baf02ef --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabEffects.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8abe3e896e81e436f8e0dcbcd192ade0 +timeCreated: 1473208304 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabMasked.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabMasked.prefab new file mode 100644 index 0000000..c5cb1ce --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabMasked.prefab @@ -0,0 +1,8440 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2957591 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 986036233} + - 222: {fileID: 449390831} + - 114: {fileID: 650878065} + - 114: {fileID: 20499921} + - 114: {fileID: 1911098943} + - 114: {fileID: 1220545618} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &13473936 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 143058959} + - 114: {fileID: 1327980834} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &17810577 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1327980834} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &20499921 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 650878065} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &33490176 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 376837279} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &34166763 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &56404326 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1789344815} + - 222: {fileID: 164442325} + - 114: {fileID: 410285204} + - 114: {fileID: 1528083455} + - 114: {fileID: 1680188311} + - 114: {fileID: 709843834} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &61493342 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 362790423} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1850540112} + m_RootOrder: 1 +--- !u!4 &68171726 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1604516197} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1850540112} + m_RootOrder: 2 +--- !u!224 &71514943 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739362131} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1065677556} + m_Father: {fileID: 428264852} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &73941756 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe98bb862d52fdd47a0641556e3140f8, type: 3} + m_Name: + m_EditorClassIdentifier: + ScrollSensitivity: 1 + SnapSpeed: 6 + StartPage: 0 + loop: 0 + onlyScrollWhenPointing: 1 + numExtraPagesShown: 0 + showNextPagesAtRest: 0 + shouldTilesAlwaysBeInteractable: 1 + OnSwipeLeft: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1916215646} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSwipeRight: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 151846855} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSnapClosest: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!224 &83083013 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1599779209} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 466363067} + m_Father: {fileID: 1009960050} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &85450165 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &91501290 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1801832805} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &98786963 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!114 &100056945 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 672019417} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 2070911031} + m_IsPrefabParent: 1 +--- !u!1 &107346513 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1939679216} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &107404730 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1576790446} + - 222: {fileID: 1315417691} + - 114: {fileID: 281448562} + - 114: {fileID: 2131182141} + - 114: {fileID: 646884362} + - 114: {fileID: 98786963} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &108245373 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 852700558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &108932028 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 887301759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &109659143 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 667333888} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &110096322 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 549863797} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!1 &112585717 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1660248062} + - 114: {fileID: 1752939401} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &112667858 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &116619590 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &117888635 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 911515628} + - 225: {fileID: 1973103943} + - 114: {fileID: 539583263} + - 223: {fileID: 289824880} + - 114: {fileID: 682060038} + m_Layer: 5 + m_Name: Page2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &129231722 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1470308148} + - 222: {fileID: 282698636} + - 114: {fileID: 160024342} + - 114: {fileID: 1754961376} + - 114: {fileID: 933389328} + - 114: {fileID: 558516641} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &130501394 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &134570864 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1064621812} + - 222: {fileID: 327413362} + - 114: {fileID: 201380991} + - 114: {fileID: 2030389251} + - 114: {fileID: 85450165} + - 114: {fileID: 290993037} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &135220956 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1907750711} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &143058959 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 13473936} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1571134488} + m_RootOrder: 1 +--- !u!224 &145406097 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 265086262} + - {fileID: 258001615} + - {fileID: 1458090507} + m_Father: {fileID: 755228093} + m_RootOrder: 4 + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &150074641 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} +--- !u!224 &150541160 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 995511693} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1755009746} + - {fileID: 1009960050} + m_Father: {fileID: 1100353297} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &151846855 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1604516197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 75900b9d8d4dc794bb7c2542dfa4c213, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &153533629 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!114 &160024342 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &164442325 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} +--- !u!114 &165179823 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 930409338} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &175934323 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1268118386} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &177986700 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1409751316} + - 222: {fileID: 477650649} + - 114: {fileID: 1637659026} + - 114: {fileID: 1508094591} + - 114: {fileID: 1162302459} + - 114: {fileID: 814334798} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &192246150 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1207020683} + - 114: {fileID: 958520631} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &195971391 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &201380991 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &206960080 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &239331512 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 814570776} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &243152263 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &244310717 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 281701112} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1352572392} + m_Father: {fileID: 428264852} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &249914463 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1045716497} + - 222: {fileID: 548319010} + - 114: {fileID: 1873196824} + m_Layer: 5 + m_Name: BoundsExpander + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &252147464 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1157488602} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1776485748} + m_Father: {fileID: 265086262} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &258001615 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 953135798} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 145406097} + m_RootOrder: 1 +--- !u!222 &261463580 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} +--- !u!224 &265086262 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 766145458} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 696907480} + - {fileID: 252147464} + - {fileID: 1350070593} + - {fileID: 1578751767} + - {fileID: 942762785} + - {fileID: 1487404241} + m_Father: {fileID: 145406097} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &266629178 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &267649509 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!114 &273691271 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &281448562 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &281701112 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 244310717} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &282698636 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} +--- !u!223 &289824880 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &290993037 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!224 &291462530 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2071114425} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1939679216} + - {fileID: 1203130719} + m_Father: {fileID: 883685833} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &296139721 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &309362623 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2071114425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &312750763 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 266629178} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &322935189 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &327413362 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} +--- !u!4 &327556742 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 823271601} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2137043576} + m_RootOrder: 1 +--- !u!224 &328449789 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1939679216} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &332408186 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1065677556} + - 222: {fileID: 1912284448} + - 114: {fileID: 753816397} + - 114: {fileID: 1067697837} + - 114: {fileID: 1694244629} + - 114: {fileID: 267649509} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &348697185 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!223 &354393365 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!222 &354872373 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} +--- !u!224 &361915101 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1019135100} + - {fileID: 1045716497} + m_Father: {fileID: 1850540112} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -825} + m_SizeDelta: {x: 1700, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &362790423 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 61493342} + - 114: {fileID: 1916215646} + m_Layer: 0 + m_Name: SwipeLeftSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &366391723 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cee9bf8d7a0fe4c348dc7216756fc588, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!222 &375957088 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} +--- !u!114 &376837279 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &402176634 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1499194019} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &402716411 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &406346484 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &410285204 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &416813654 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1269614958} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1566024492} + m_Father: {fileID: 428264852} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &428264852 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 614764302} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 463976051} + - {fileID: 244310717} + - {fileID: 687012180} + - {fileID: 609884770} + - {fileID: 416813654} + - {fileID: 71514943} + m_Father: {fileID: 2137043576} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &436224734 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!224 &442318203 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1578751767} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &445320450 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1732124470} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &447045818 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!222 &449390831 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} +--- !u!224 &456897257 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1054338521} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14066696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 986036233} + m_Father: {fileID: 772654506} + m_RootOrder: 8 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &460021660 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &463976051 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1110060615} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1777763453} + m_Father: {fileID: 428264852} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &466363067 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 83083013} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &472656984 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!114 &476707555 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1332774103} + - {fileID: 328449789} + - {fileID: 1576790446} + layoutTransform: {fileID: 883685833} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!222 &477650649 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} +--- !u!114 &490646309 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!224 &506801687 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1837566481} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 774717865} + m_Father: {fileID: 772654506} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &510281993 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1718281988} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &525184127 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!1 &531684633 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1159364220} + m_Layer: 0 + m_Name: Cell + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &532326915 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &537326553 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2012182497} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &539583263 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1470308148} + - {fileID: 774717865} + - {fileID: 135220956} + - {fileID: 1075189675} + - {fileID: 858204276} + - {fileID: 1508608250} + - {fileID: 1555633008} + - {fileID: 1346881190} + - {fileID: 986036233} + layoutTransform: {fileID: 772654506} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!222 &548319010 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 249914463} +--- !u!1 &549863797 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1156295079} + - 114: {fileID: 110096322} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &553881509 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2085592869} + m_Layer: 0 + m_Name: Cell8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &558516641 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!222 &572369819 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} +--- !u!114 &576015824 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 903ff5a247c7a42ef9a49292f4a04e66, type: 3} + m_Name: + m_EditorClassIdentifier: + Weights: {x: 1, y: 0, z: 0} + mirrorX: 0 + mirrorY: 0 + mirrorZ: 0 +--- !u!114 &586949103 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1456795108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 466, y: 466} + m_Spacing: {x: 50, y: 50} + m_Constraint: 1 + m_ConstraintCount: 3 +--- !u!1 &595143401 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1621406790} + - 222: {fileID: 621603878} + - 114: {fileID: 116619590} + - 114: {fileID: 1559005971} + - 114: {fileID: 322935189} + - 114: {fileID: 909490669} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &609884770 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 889956352} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1806639804} + m_Father: {fileID: 428264852} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &614764302 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 428264852} + - 114: {fileID: 2135791620} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &621603878 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} +--- !u!114 &643373462 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &646884362 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1327980834} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &650878065 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &653391650 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!1 &663851824 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2070123788} + - 222: {fileID: 1876235863} + - 114: {fileID: 1304648509} + - 114: {fileID: 1457134863} + - 114: {fileID: 348697185} + - 114: {fileID: 1238892517} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &665431807 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 273691271} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &667333888 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &668740081 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &672019417 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!223 &674805063 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &682060038 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!224 &687012180 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1569978569} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1064621812} + m_Father: {fileID: 428264852} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &696907480 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1445780168} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1789344815} + m_Father: {fileID: 265086262} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &703512335 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1352572392} + - 222: {fileID: 1770962231} + - 114: {fileID: 1646259858} + - 114: {fileID: 2094241633} + - 114: {fileID: 296139721} + - 114: {fileID: 1523004151} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &709843834 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!224 &716329340 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1610438603} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1801832805} + - {fileID: 1206051604} + m_Father: {fileID: 1755009746} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &729454119 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!114 &741684048 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1514931601} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &743910674 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} +--- !u!114 &753816397 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &755228093 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1100353297} + - {fileID: 911515628} + - {fileID: 1571134488} + - {fileID: 2137043576} + - {fileID: 145406097} + m_Father: {fileID: 1850540112} + m_RootOrder: 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: 5400, y: 1800} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &757982749 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1578751767} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &759775259 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &764830981 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 942762785} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &766145458 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 265086262} + - 114: {fileID: 2029261416} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &771817397 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1019135100} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &772654506 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1456795108} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1401057011} + - {fileID: 506801687} + - {fileID: 1907750711} + - {fileID: 1294832699} + - {fileID: 2012182497} + - {fileID: 1326965187} + - {fileID: 1234544633} + - {fileID: 2085592869} + - {fileID: 456897257} + m_Father: {fileID: 911515628} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &774717865 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 506801687} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &784283000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &796750673 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} +--- !u!224 &807479348 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2039757121} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &814334798 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!114 &814570776 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &815870046 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!1 &823271601 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 327556742} + - 114: {fileID: 1942284460} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &824747713 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1127543020} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &850739434 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!1 &852700558 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1458090507} + - 114: {fileID: 108245373} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &858204276 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2012182497} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &863924767 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 532326915} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &883685833 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 962011203} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1159364220} + - {fileID: 291462530} + m_Father: {fileID: 1571134488} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &887301759 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1009960050} + - 114: {fileID: 108932028} + m_Layer: 0 + m_Name: HorizontalGroup2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &887941098 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} +--- !u!1 &889956352 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 609884770} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &895213237 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 135220956} + - 222: {fileID: 261463580} + - 114: {fileID: 814570776} + - 114: {fileID: 239331512} + - 114: {fileID: 112667858} + - 114: {fileID: 1573815402} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &899025929 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} +--- !u!114 &909490669 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!224 &911515628 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 772654506} + - {fileID: 1660248062} + - {fileID: 1753859992} + m_Father: {fileID: 755228093} + m_RootOrder: 1 + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &930409338 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &933389328 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &942762785 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 764830981} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1831495200} + m_Father: {fileID: 265086262} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &943475359 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &953135798 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 258001615} + - 114: {fileID: 1532572999} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &954607618 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 442318203} + - 222: {fileID: 2011647217} + - 114: {fileID: 273691271} + - 114: {fileID: 665431807} + - 114: {fileID: 1682348398} + - 114: {fileID: 447045818} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &958520631 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192246150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!1 &962011203 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 883685833} + - 114: {fileID: 983285580} + m_Layer: 0 + m_Name: HorizontalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &965007490 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1844192170} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &983285580 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 962011203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 259 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 774 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!224 &986036233 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 456897257} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &994081642 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &995511693 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 150541160} + - 114: {fileID: 1174937750} + m_Layer: 0 + m_Name: VerticalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1009960050 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 887301759} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1127543020} + - {fileID: 2039757121} + - {fileID: 83083013} + m_Father: {fileID: 150541160} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1011615276 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1831495200} + - 222: {fileID: 150074641} + - 114: {fileID: 1933335607} + - 114: {fileID: 2106709201} + - 114: {fileID: 1162989796} + - 114: {fileID: 472656984} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1019135100 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 771817397} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1839007743} + m_Father: {fileID: 361915101} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1025196055 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!1 &1026193878 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2039757121} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1036035759 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1227354493} + - 114: {fileID: 1937133842} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1038714291 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1651406096} +--- !u!114 &1038978276 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1045716497 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 249914463} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 361915101} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.030456543, y: 0} + m_SizeDelta: {x: 1700, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1054338521 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 456897257} + m_Layer: 0 + m_Name: Cell9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1056141680 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1107969072} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1064621812 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 687012180} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1065677556 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 71514943} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1067697837 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 753816397} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1075189675 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1294832699} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1086433398 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 145406097} + - 225: {fileID: 1117796337} + - 114: {fileID: 1196954042} + - 223: {fileID: 674805063} + - 114: {fileID: 1371641948} + m_Layer: 5 + m_Name: Page5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1086956431 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} +--- !u!224 &1100353297 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 150541160} + - {fileID: 1156295079} + - {fileID: 1153345993} + m_Father: {fileID: 755228093} + m_RootOrder: 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1100985461 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1777763453} + - {fileID: 1352572392} + - {fileID: 1064621812} + - {fileID: 1806639804} + - {fileID: 1566024492} + - {fileID: 1065677556} + layoutTransform: {fileID: 428264852} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!114 &1107969072 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1110060615 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 463976051} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1113194818 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1801832805} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1117728870 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!225 &1117796337 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!224 &1127543020 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 824747713} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2070123788} + m_Father: {fileID: 1009960050} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1129552764 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1571134488} + - 225: {fileID: 1242459911} + - 114: {fileID: 476707555} + - 223: {fileID: 994081642} + - 114: {fileID: 1821961108} + m_Layer: 5 + m_Name: Page3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1133224343 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 755228093} + - 114: {fileID: 73941756} + - 114: {fileID: 1380904776} + - 223: {fileID: 402716411} + - 225: {fileID: 2138790002} + - 222: {fileID: 1866016212} + - 114: {fileID: 206960080} + - 114: {fileID: 576015824} + - 114: {fileID: 1252438061} + - 114: {fileID: 366391723} + - 114: {fileID: 406346484} + m_Layer: 5 + m_Name: PagedScrollRect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1137946553 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!4 &1153345993 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1228964540} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1100353297} + m_RootOrder: 2 +--- !u!4 &1156295079 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 549863797} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1100353297} + m_RootOrder: 1 +--- !u!1 &1157488602 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 252147464} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1159364220 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 531684633} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1332774103} + m_Father: {fileID: 883685833} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1161059474 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 807479348} + - 222: {fileID: 2011599041} + - 114: {fileID: 243152263} + - 114: {fileID: 1833195255} + - 114: {fileID: 1824613346} + - 114: {fileID: 1885551848} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1162302459 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1162989796 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1164637397 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 858204276} + - 222: {fileID: 887941098} + - 114: {fileID: 1718281988} + - 114: {fileID: 510281993} + - 114: {fileID: 1470848792} + - 114: {fileID: 1991652834} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1166787823 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1621406790} + - {fileID: 1113194818} + - {fileID: 1637519868} + - {fileID: 2070123788} + - {fileID: 807479348} + - {fileID: 466363067} + layoutTransform: {fileID: 150541160} + staggerAnimationIntensity: 0.5 + tileOrderBy: 2 +--- !u!114 &1174937750 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 995511693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &1196954042 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1789344815} + - {fileID: 1776485748} + - {fileID: 1439812546} + - {fileID: 442318203} + - {fileID: 1831495200} + - {fileID: 1409751316} + layoutTransform: {fileID: 265086262} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!224 &1203130719 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1474549354} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1576790446} + m_Father: {fileID: 291462530} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1206051604 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1756109189} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1637519868} + m_Father: {fileID: 716329340} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &1207020683 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192246150} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1571134488} + m_RootOrder: 2 +--- !u!114 &1212581670 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1776868919} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &1220545618 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!4 &1227354493 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1036035759} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2137043576} + m_RootOrder: 2 +--- !u!1 &1228964540 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1153345993} + - 114: {fileID: 2027357312} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1233598042 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1636167527} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1234544633 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1443826777} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14066696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1555633008} + m_Father: {fileID: 772654506} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1237122166 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1401057011} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1238892517 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!225 &1242459911 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1246447511 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1252438061 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8a1350d8c86b45c5b567988d0897a27, type: 3} + m_Name: + m_EditorClassIdentifier: + minAlpha: 0 +--- !u!1 &1263882503 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1439812546} + - 222: {fileID: 375957088} + - 114: {fileID: 1268118386} + - 114: {fileID: 175934323} + - 114: {fileID: 1416946743} + - 114: {fileID: 1137946553} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1268118386 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1269614958 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 416813654} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1294832699 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1871568221} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1075189675} + m_Father: {fileID: 772654506} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1295887803 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} +--- !u!1 &1297230052 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1776485748} + - 222: {fileID: 1295887803} + - 114: {fileID: 1636167527} + - 114: {fileID: 1233598042} + - 114: {fileID: 943475359} + - 114: {fileID: 850739434} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1304648509 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1315417691 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} +--- !u!114 &1320861889 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1326965187 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1602634039} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1508608250} + m_Father: {fileID: 772654506} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1327980834 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 13473936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1332774103 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1159364220} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 983, y: 983} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1346881190 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2085592869} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1348966956 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!114 &1349332302 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1651406096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.93333334, g: 0.93333334, b: 0.93333334, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1350070593 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1501344177} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1439812546} + m_Father: {fileID: 265086262} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1352572392 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 244310717} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1362415256 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!114 &1371641948 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1380904776 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c72accf6cbda24d54b10c062b49302db, type: 3} + m_Name: + m_EditorClassIdentifier: + spacing: 2000 +--- !u!1 &1395537906 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 328449789} + - 222: {fileID: 1514976284} + - 114: {fileID: 1497717604} + - 114: {fileID: 2020435885} + - 114: {fileID: 17810577} + - 114: {fileID: 153533629} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1401057011 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1237122166} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1470308148} + m_Father: {fileID: 772654506} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1409751316 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1487404241} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1415406652 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1416946743 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &1435708236 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} +--- !u!1 &1436057188 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1777763453} + - 222: {fileID: 2123188695} + - 114: {fileID: 532326915} + - 114: {fileID: 863924767} + - 114: {fileID: 1320861889} + - 114: {fileID: 490646309} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1439812546 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1350070593} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1439951346 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 460021660} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 958520631} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1441655546 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1443826777 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1234544633} + m_Layer: 0 + m_Name: Cell7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1445780168 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 696907480} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1456795108 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 772654506} + - 114: {fileID: 586949103} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1457134863 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1304648509} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!4 &1458090507 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 852700558} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 145406097} + m_RootOrder: 2 +--- !u!114 &1463905598 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 998e7801d843d29468b357afb447a8fb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1349332302} + m_HandleRect: {fileID: 1839007743} + m_Direction: 0 + m_Value: 0 + m_Size: 0 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + pagedScrollRect: {fileID: 73941756} +--- !u!1 &1464026554 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1075189675} + - 222: {fileID: 1483469717} + - 114: {fileID: 1844192170} + - 114: {fileID: 815870046} + - 114: {fileID: 965007490} + - 114: {fileID: 1038978276} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1466866226 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1327980834} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1470308148 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1401057011} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1470848792 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1474549354 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1203130719} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1483469717 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} +--- !u!224 &1487404241 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1965297652} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1409751316} + m_Father: {fileID: 265086262} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1497717604 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1499194019 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 402176634} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1621406790} + m_Father: {fileID: 1755009746} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1501344177 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1350070593} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1508094591 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1637659026} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1508608250 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1326965187} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1514325822 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} +--- !u!114 &1514931601 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1514976284 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} +--- !u!114 &1523004151 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!1 &1523594819 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1555633008} + - 222: {fileID: 354872373} + - 114: {fileID: 1514931601} + - 114: {fileID: 741684048} + - 114: {fileID: 784283000} + - 114: {fileID: 1961473475} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1528083455 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 410285204} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1532572999 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 953135798} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1555633008 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1234544633} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1559005971 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 116619590} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1565248734 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2137043576} + - 225: {fileID: 1987537107} + - 114: {fileID: 1100985461} + - 223: {fileID: 759775259} + - 114: {fileID: 130501394} + m_Layer: 5 + m_Name: Page4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1566024492 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 416813654} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1569978569 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 687012180} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1571134488 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 883685833} + - {fileID: 143058959} + - {fileID: 1207020683} + m_Father: {fileID: 755228093} + m_RootOrder: 2 + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1572960942 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1573815402 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!224 &1576790446 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1203130719} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1578751767 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 757982749} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 442318203} + m_Father: {fileID: 265086262} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1585032968 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1907750711} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1599779209 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 83083013} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1602634039 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1326965187} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1604516197 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 68171726} + - 114: {fileID: 151846855} + m_Layer: 0 + m_Name: SwipeRightSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1610438603 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 716329340} + - 114: {fileID: 1621018049} + m_Layer: 0 + m_Name: VerticalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1619463519 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} +--- !u!114 &1621018049 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1610438603} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!224 &1621406790 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1499194019} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 1.5, y: 0} + m_SizeDelta: {x: 983, y: 983} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1636167527 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1637519868 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1206051604} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1637659026 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1643801345 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1806639804} + - 222: {fileID: 1726020375} + - 114: {fileID: 1732124470} + - 114: {fileID: 445320450} + - 114: {fileID: 643373462} + - 114: {fileID: 1348966956} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1646259858 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &1651236224 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2053543511} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 259 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 774 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &1651406096 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1839007743} + - 222: {fileID: 1038714291} + - 114: {fileID: 1349332302} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1660248062 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112585717} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 911515628} + m_RootOrder: 1 +--- !u!114 &1680188311 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1682348398 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1684729129 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1113194818} + - 222: {fileID: 1086956431} + - 114: {fileID: 266629178} + - 114: {fileID: 312750763} + - 114: {fileID: 2011822401} + - 114: {fileID: 1025196055} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1694244629 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1718281988 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!225 &1718765989 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!222 &1726020375 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} +--- !u!114 &1732124470 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1733988396 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 774717865} + - 222: {fileID: 1737338415} + - 114: {fileID: 1107969072} + - 114: {fileID: 1362415256} + - 114: {fileID: 1056141680} + - 114: {fileID: 1246447511} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1737338415 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} +--- !u!1 &1739056958 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 466363067} + - 222: {fileID: 1514325822} + - 114: {fileID: 930409338} + - 114: {fileID: 165179823} + - 114: {fileID: 1572960942} + - 114: {fileID: 1117728870} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1739362131 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 71514943} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1752939401 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112585717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!4 &1753859992 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1776868919} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 911515628} + m_RootOrder: 2 +--- !u!114 &1754961376 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 160024342} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1755009746 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2053543511} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1499194019} + - {fileID: 716329340} + m_Father: {fileID: 150541160} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1756109189 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1206051604} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1770962231 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} +--- !u!224 &1776485748 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 252147464} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1776868919 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1753859992} + - 114: {fileID: 1212581670} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1777763453 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 463976051} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1789344815 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 696907480} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1801832805 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 91501290} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1113194818} + m_Father: {fileID: 716329340} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1801968738 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1806639804 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 609884770} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1821961108 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1824613346 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1831495200 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 942762785} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1833195255 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 243152263} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1837566481 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 506801687} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1839007743 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1651406096} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1019135100} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1844192170 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!4 &1850540112 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2070911031} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 755228093} + - {fileID: 61493342} + - {fileID: 68171726} + - {fileID: 361915101} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!222 &1866016212 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} +--- !u!1 &1866281367 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1637519868} + - 222: {fileID: 1619463519} + - 114: {fileID: 376837279} + - 114: {fileID: 33490176} + - 114: {fileID: 1415406652} + - 114: {fileID: 729454119} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1871568221 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1294832699} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1873196824 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 249914463} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!1 &1875508887 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 361915101} + - 222: {fileID: 743910674} + - 114: {fileID: 34166763} + - 114: {fileID: 1463905598} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1876235863 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} +--- !u!114 &1880318043 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1801968738} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1885551848 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!224 &1907750711 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1585032968} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 135220956} + m_Father: {fileID: 772654506} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911098943 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &1912284448 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} +--- !u!114 &1916215646 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 362790423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 14761055ede130c4d87d3d918ea7ca99, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &1933335607 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 25aba735c9ddf574fa29845715474fb6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &1937133842 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1036035759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1939679216 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107346513} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 328449789} + m_Father: {fileID: 291462530} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1942284460 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 823271601} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &1961473475 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!1 &1965297652 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1487404241} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!225 &1973103943 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!225 &1987537107 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1991652834 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!222 &2011599041 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} +--- !u!222 &2011647217 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} +--- !u!114 &2011822401 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &2012182497 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 537326553} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 858204276} + m_Father: {fileID: 772654506} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2017228980 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cab5532ccd3a4d339166fb99b903aed, type: 3} + m_Name: + m_EditorClassIdentifier: + movementWeight: 0.15 + scaleWeight: 1.4 + hoverPositionZMeters: 0.125 + interpolationSpeed: 8 +--- !u!114 &2020435885 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1497717604} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 958520631} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2027357312 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1228964540} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &2029261416 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 766145458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 466, y: 466} + m_Spacing: {x: 50, y: 50} + m_Constraint: 1 + m_ConstraintCount: 2 +--- !u!114 &2030389251 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 201380991} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &2039757121 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026193878} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 807479348} + m_Father: {fileID: 1009960050} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2053543511 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1755009746} + - 114: {fileID: 1651236224} + m_Layer: 0 + m_Name: HorizontalGroup1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2057788527 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1100353297} + - 225: {fileID: 1718765989} + - 114: {fileID: 1166787823} + - 223: {fileID: 354393365} + - 114: {fileID: 195971391} + m_Layer: 5 + m_Name: Page1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2070123788 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1127543020} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2070911031 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1850540112} + m_Layer: 0 + m_Name: TabMasked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2071114425 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 291462530} + - 114: {fileID: 309362623} + m_Layer: 0 + m_Name: VerticalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2085592869 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 553881509} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14066696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1346881190} + m_Father: {fileID: 772654506} + m_RootOrder: 7 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2094241633 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1646259858} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &2096264641 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1566024492} + - 222: {fileID: 1435708236} + - 114: {fileID: 667333888} + - 114: {fileID: 109659143} + - 114: {fileID: 1441655546} + - 114: {fileID: 653391650} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2105162198 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1508608250} + - 222: {fileID: 796750673} + - 114: {fileID: 672019417} + - 114: {fileID: 2017228980} + - 114: {fileID: 100056945} + - 114: {fileID: 2120558102} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2106709201 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1933335607} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2120558102 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &2123188695 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} +--- !u!1 &2123331887 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1346881190} + - 222: {fileID: 572369819} + - 114: {fileID: 1801968738} + - 114: {fileID: 525184127} + - 114: {fileID: 1880318043} + - 114: {fileID: 668740081} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2128400974 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1332774103} + - 222: {fileID: 899025929} + - 114: {fileID: 460021660} + - 114: {fileID: 1439951346} + - 114: {fileID: 1466866226} + - 114: {fileID: 436224734} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2131182141 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 281448562} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 958520631} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2135791620 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 614764302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 466, y: 466} + m_Spacing: {x: 50, y: 50} + m_Constraint: 1 + m_ConstraintCount: 3 +--- !u!224 &2137043576 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 428264852} + - {fileID: 327556742} + - {fileID: 1227354493} + m_Father: {fileID: 755228093} + m_RootOrder: 3 + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &2138790002 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabMasked.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabMasked.prefab.meta new file mode 100644 index 0000000..fd436bf --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabMasked.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0353b2157358b431b8ce1e26c59c737b +timeCreated: 1480455017 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabPooled.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabPooled.prefab new file mode 100644 index 0000000..fbd007d --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabPooled.prefab @@ -0,0 +1,686 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &34166763 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!4 &61493342 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 362790423} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1850540112} + m_RootOrder: 2 +--- !u!4 &68171726 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1604516197} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1850540112} + m_RootOrder: 3 +--- !u!114 &73941756 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe98bb862d52fdd47a0641556e3140f8, type: 3} + m_Name: + m_EditorClassIdentifier: + ScrollSensitivity: 1 + SnapSpeed: 6 + StartPage: 0 + loop: 0 + onlyScrollWhenPointing: 1 + numExtraPagesShown: 0 + showNextPagesAtRest: 0 + shouldTilesAlwaysBeInteractable: 1 + OnSwipeLeft: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1790696972} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSwipeRight: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1920335160} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSnapClosest: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 2070911031} + m_IsPrefabParent: 1 +--- !u!114 &148613986 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc1be33c2340b49b18cb74357e0bbfcd, type: 3} + m_Name: + m_EditorClassIdentifier: + pagePrefab: {fileID: 214200560, guid: 2ccbc6cdb24be40d99451ff274c2c345, type: 2} + spacing: 2000 + NumPages: 100 +--- !u!114 &206960080 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!224 &361915101 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1019135100} + - {fileID: 1781668347} + m_Father: {fileID: 1850540112} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -825} + m_SizeDelta: {x: 1700, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &362790423 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 61493342} + - 114: {fileID: 1790696972} + m_Layer: 0 + m_Name: SwipeLeftSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &402716411 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &406346484 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &576015824 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 903ff5a247c7a42ef9a49292f4a04e66, type: 3} + m_Name: + m_EditorClassIdentifier: + Weights: {x: 1, y: 0, z: 0} + mirrorX: 0 + mirrorY: 0 + mirrorZ: 0 +--- !u!1 &715216751 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1781668347} + - 222: {fileID: 1235177196} + - 114: {fileID: 1378048500} + m_Layer: 5 + m_Name: BoundsExpander + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &743910674 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} +--- !u!224 &755228093 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1850540112} + m_RootOrder: 1 + 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: 5400, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &771817397 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1019135100} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1019135100 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 771817397} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1839007743} + m_Father: {fileID: 361915101} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1038714291 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1651406096} +--- !u!1 &1133224343 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 755228093} + - 114: {fileID: 73941756} + - 223: {fileID: 402716411} + - 225: {fileID: 2138790002} + - 222: {fileID: 1866016212} + - 114: {fileID: 206960080} + - 114: {fileID: 576015824} + - 114: {fileID: 1252438061} + - 114: {fileID: 406346484} + - 114: {fileID: 148613986} + m_Layer: 5 + m_Name: PagedScrollRect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1235177196 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 715216751} +--- !u!114 &1252438061 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8a1350d8c86b45c5b567988d0897a27, type: 3} + m_Name: + m_EditorClassIdentifier: + minAlpha: 0 +--- !u!114 &1349332302 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1651406096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.93333334, g: 0.93333334, b: 0.93333334, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &1378048500 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 715216751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &1463905598 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 998e7801d843d29468b357afb447a8fb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1349332302} + m_HandleRect: {fileID: 1839007743} + m_Direction: 0 + m_Value: 0 + m_Size: 0 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + pagedScrollRect: {fileID: 73941756} +--- !u!1 &1604516197 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 68171726} + - 114: {fileID: 1920335160} + m_Layer: 0 + m_Name: SwipeRightSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1651406096 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1839007743} + - 222: {fileID: 1038714291} + - 114: {fileID: 1349332302} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1781668347 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 715216751} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 361915101} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.030456543, y: 0} + m_SizeDelta: {x: 1700, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1790696972 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 362790423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 14761055ede130c4d87d3d918ea7ca99, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1839007743 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1651406096} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1019135100} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &1850540112 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2070911031} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 361915101} + - {fileID: 755228093} + - {fileID: 61493342} + - {fileID: 68171726} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!222 &1866016212 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} +--- !u!1 &1875508887 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 361915101} + - 222: {fileID: 743910674} + - 114: {fileID: 34166763} + - 114: {fileID: 1463905598} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1920335160 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1604516197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 75900b9d8d4dc794bb7c2542dfa4c213, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!1 &2070911031 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1850540112} + m_Layer: 0 + m_Name: TabPooled + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!225 &2138790002 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabPooled.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabPooled.prefab.meta new file mode 100644 index 0000000..c5db33f --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabPooled.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ea319952e831e401eb5d6e0f1abfc482 +timeCreated: 1473208288 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabSimple.prefab b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabSimple.prefab new file mode 100644 index 0000000..f3466b4 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabSimple.prefab @@ -0,0 +1,8470 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2957591 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 986036233} + - 222: {fileID: 449390831} + - 114: {fileID: 650878065} + - 114: {fileID: 20499921} + - 114: {fileID: 1911098943} + - 114: {fileID: 1976832627} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &13473936 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 143058959} + - 114: {fileID: 1327980834} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &17810577 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1327980834} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &20499921 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 650878065} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &33490176 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 376837279} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &34166763 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &56404326 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1789344815} + - 222: {fileID: 164442325} + - 114: {fileID: 410285204} + - 114: {fileID: 481085624} + - 114: {fileID: 1528083455} + - 114: {fileID: 1680188311} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &61493342 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 362790423} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1850540112} + m_RootOrder: 2 +--- !u!4 &68171726 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1604516197} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1850540112} + m_RootOrder: 3 +--- !u!224 &71514943 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739362131} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1065677556} + m_Father: {fileID: 428264852} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &73941756 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe98bb862d52fdd47a0641556e3140f8, type: 3} + m_Name: + m_EditorClassIdentifier: + ScrollSensitivity: 1 + SnapSpeed: 6 + StartPage: 0 + loop: 0 + onlyScrollWhenPointing: 1 + numExtraPagesShown: 0 + showNextPagesAtRest: 0 + shouldTilesAlwaysBeInteractable: 1 + OnSwipeLeft: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1790696972} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSwipeRight: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1920335160} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnSnapClosest: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!224 &83083013 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1599779209} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 466363067} + m_Father: {fileID: 1009960050} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &84143703 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &85450165 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &91501290 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1801832805} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &100056945 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 672019417} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 2070911031} + m_IsPrefabParent: 1 +--- !u!1 &107346513 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1939679216} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &107404730 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1576790446} + - 222: {fileID: 1315417691} + - 114: {fileID: 281448562} + - 114: {fileID: 2131182141} + - 114: {fileID: 646884362} + - 114: {fileID: 306356665} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &108245373 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 852700558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &108932028 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 887301759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &109659143 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 667333888} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &110096322 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 549863797} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!1 &112585717 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1660248062} + - 114: {fileID: 1752939401} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &112667858 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &116619590 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &117888635 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 911515628} + - 225: {fileID: 1973103943} + - 114: {fileID: 539583263} + - 223: {fileID: 289824880} + - 114: {fileID: 682060038} + m_Layer: 5 + m_Name: Page2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &129231722 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1470308148} + - 222: {fileID: 282698636} + - 114: {fileID: 160024342} + - 114: {fileID: 1754961376} + - 114: {fileID: 933389328} + - 114: {fileID: 1237865510} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &130501394 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &134570864 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1064621812} + - 222: {fileID: 327413362} + - 114: {fileID: 201380991} + - 114: {fileID: 1142396866} + - 114: {fileID: 2030389251} + - 114: {fileID: 85450165} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &135220956 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1907750711} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &143058959 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 13473936} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1571134488} + m_RootOrder: 1 +--- !u!224 &145406097 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 265086262} + - {fileID: 258001615} + - {fileID: 1458090507} + m_Father: {fileID: 755228093} + m_RootOrder: 4 + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &150074641 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} +--- !u!224 &150541160 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 995511693} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1755009746} + - {fileID: 1009960050} + m_Father: {fileID: 1100353297} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &160024342 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &164442325 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} +--- !u!114 &165179823 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 930409338} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &175934323 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1268118386} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &177986700 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1409751316} + - 222: {fileID: 477650649} + - 114: {fileID: 1637659026} + - 114: {fileID: 1575457338} + - 114: {fileID: 1508094591} + - 114: {fileID: 1162302459} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &187264350 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &192246150 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1207020683} + - 114: {fileID: 958520631} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &195971391 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &201380991 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &206960080 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &239331512 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 814570776} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &243152263 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &244310717 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 281701112} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1352572392} + m_Father: {fileID: 428264852} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &247926048 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &252147464 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1157488602} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1776485748} + m_Father: {fileID: 265086262} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &258001615 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 953135798} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 145406097} + m_RootOrder: 1 +--- !u!222 &261463580 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} +--- !u!224 &265086262 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 766145458} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 696907480} + - {fileID: 252147464} + - {fileID: 1350070593} + - {fileID: 1578751767} + - {fileID: 942762785} + - {fileID: 1487404241} + m_Father: {fileID: 145406097} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &266629178 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &273691271 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &281448562 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &281701112 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 244310717} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &282698636 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} +--- !u!223 &289824880 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &291462530 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2071114425} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1939679216} + - {fileID: 1203130719} + m_Father: {fileID: 883685833} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &296139721 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &306356665 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &309362623 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2071114425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &312750763 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 266629178} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &322935189 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &327413362 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} +--- !u!4 &327556742 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 823271601} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2137043576} + m_RootOrder: 1 +--- !u!224 &328449789 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1939679216} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &332408186 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1065677556} + - 222: {fileID: 1912284448} + - 114: {fileID: 753816397} + - 114: {fileID: 1067697837} + - 114: {fileID: 1694244629} + - 114: {fileID: 629195781} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &348697185 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!223 &354393365 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!222 &354872373 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} +--- !u!224 &361915101 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1019135100} + - {fileID: 1781668347} + m_Father: {fileID: 1850540112} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -825} + m_SizeDelta: {x: 1700, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &362790423 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 61493342} + - 114: {fileID: 1790696972} + m_Layer: 0 + m_Name: SwipeLeftSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &366391723 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cee9bf8d7a0fe4c348dc7216756fc588, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &374508799 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!222 &375957088 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} +--- !u!114 &376837279 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &381612824 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &390594937 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &402176634 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1499194019} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &402716411 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &406346484 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &410285204 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &416813654 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1269614958} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1566024492} + m_Father: {fileID: 428264852} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &428264852 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 614764302} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 463976051} + - {fileID: 244310717} + - {fileID: 687012180} + - {fileID: 609884770} + - {fileID: 416813654} + - {fileID: 71514943} + m_Father: {fileID: 2137043576} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &432418958 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &442318203 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1578751767} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &445320450 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1732124470} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &449390831 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} +--- !u!224 &456897257 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1054338521} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14066696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 986036233} + m_Father: {fileID: 772654506} + m_RootOrder: 8 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &460021660 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &463976051 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1110060615} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1777763453} + m_Father: {fileID: 428264852} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &466363067 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 83083013} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &476707555 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1332774103} + - {fileID: 328449789} + - {fileID: 1576790446} + layoutTransform: {fileID: 883685833} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!222 &477650649 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} +--- !u!114 &481085624 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &483880720 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &497085375 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &506801687 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1837566481} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 774717865} + m_Father: {fileID: 772654506} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &510281993 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1718281988} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &531684633 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1159364220} + m_Layer: 0 + m_Name: Cell + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &532326915 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &537326553 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2012182497} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &539583263 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1470308148} + - {fileID: 774717865} + - {fileID: 135220956} + - {fileID: 1075189675} + - {fileID: 858204276} + - {fileID: 1508608250} + - {fileID: 1555633008} + - {fileID: 1346881190} + - {fileID: 986036233} + layoutTransform: {fileID: 772654506} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!1 &549863797 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1156295079} + - 114: {fileID: 110096322} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &553881509 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2085592869} + m_Layer: 0 + m_Name: Cell8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &572369819 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} +--- !u!114 &576015824 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 903ff5a247c7a42ef9a49292f4a04e66, type: 3} + m_Name: + m_EditorClassIdentifier: + Weights: {x: 1, y: 0, z: 0} + mirrorX: 0 + mirrorY: 0 + mirrorZ: 0 +--- !u!114 &578689725 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &580909915 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &586949103 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1456795108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 466, y: 466} + m_Spacing: {x: 50, y: 50} + m_Constraint: 1 + m_ConstraintCount: 3 +--- !u!1 &595143401 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1621406790} + - 222: {fileID: 621603878} + - 114: {fileID: 116619590} + - 114: {fileID: 1559005971} + - 114: {fileID: 322935189} + - 114: {fileID: 1769095442} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &609884770 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 889956352} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1806639804} + m_Father: {fileID: 428264852} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &614764302 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 428264852} + - 114: {fileID: 2135791620} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &621603878 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} +--- !u!114 &629195781 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &643373462 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &646884362 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1327980834} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &650878065 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &663851824 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2070123788} + - 222: {fileID: 1876235863} + - 114: {fileID: 1304648509} + - 114: {fileID: 1457134863} + - 114: {fileID: 348697185} + - 114: {fileID: 1730004195} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &665431807 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 273691271} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &667333888 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &668740081 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &672019417 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!223 &674805063 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &682060038 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!224 &687012180 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1569978569} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1064621812} + m_Father: {fileID: 428264852} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &696907480 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1445780168} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1789344815} + m_Father: {fileID: 265086262} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &703512335 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1352572392} + - 222: {fileID: 1770962231} + - 114: {fileID: 1646259858} + - 114: {fileID: 1403926196} + - 114: {fileID: 2094241633} + - 114: {fileID: 296139721} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &715216751 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1781668347} + - 222: {fileID: 1235177196} + - 114: {fileID: 1378048500} + m_Layer: 5 + m_Name: BoundsExpander + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &716329340 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1610438603} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1801832805} + - {fileID: 1206051604} + m_Father: {fileID: 1755009746} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &741684048 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1514931601} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &743910674 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} +--- !u!114 &753816397 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &755228093 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1100353297} + - {fileID: 911515628} + - {fileID: 1571134488} + - {fileID: 2137043576} + - {fileID: 145406097} + m_Father: {fileID: 1850540112} + m_RootOrder: 1 + 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: 5400, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &757982749 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1578751767} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &759775259 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &764830981 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 942762785} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &766145458 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 265086262} + - 114: {fileID: 2029261416} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &771817397 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1019135100} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &772654506 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1456795108} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1401057011} + - {fileID: 506801687} + - {fileID: 1907750711} + - {fileID: 1294832699} + - {fileID: 2012182497} + - {fileID: 1326965187} + - {fileID: 1234544633} + - {fileID: 2085592869} + - {fileID: 456897257} + m_Father: {fileID: 911515628} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &774717865 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 506801687} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &784283000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &796750673 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} +--- !u!224 &807479348 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2039757121} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &813596726 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &814570776 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 895213237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &823271601 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 327556742} + - 114: {fileID: 1942284460} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &824747713 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1127543020} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &852700558 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1458090507} + - 114: {fileID: 108245373} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &858204276 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2012182497} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &863924767 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 532326915} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &883685833 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 962011203} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1159364220} + - {fileID: 291462530} + m_Father: {fileID: 1571134488} + m_RootOrder: 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: 1500, y: 1500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &887301759 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1009960050} + - 114: {fileID: 108932028} + m_Layer: 0 + m_Name: HorizontalGroup2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &887941098 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} +--- !u!1 &889956352 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 609884770} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &895213237 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 135220956} + - 222: {fileID: 261463580} + - 114: {fileID: 814570776} + - 114: {fileID: 239331512} + - 114: {fileID: 112667858} + - 114: {fileID: 374508799} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &899025929 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} +--- !u!224 &911515628 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 772654506} + - {fileID: 1660248062} + - {fileID: 1753859992} + m_Father: {fileID: 755228093} + m_RootOrder: 1 + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &930409338 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &933389328 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &942762785 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 764830981} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1831495200} + m_Father: {fileID: 265086262} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &943475359 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &953135798 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 258001615} + - 114: {fileID: 1532572999} + m_Layer: 0 + m_Name: TileHoverSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &954607618 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 442318203} + - 222: {fileID: 2011647217} + - 114: {fileID: 273691271} + - 114: {fileID: 665431807} + - 114: {fileID: 1682348398} + - 114: {fileID: 1111772974} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &958520631 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192246150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!1 &962011203 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 883685833} + - 114: {fileID: 983285580} + m_Layer: 0 + m_Name: HorizontalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &965007490 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1844192170} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &983285580 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 962011203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 259 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 774 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!224 &986036233 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 456897257} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &994081642 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &995511693 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 150541160} + - 114: {fileID: 1174937750} + m_Layer: 0 + m_Name: VerticalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1002032021 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1009960050 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 887301759} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1127543020} + - {fileID: 2039757121} + - {fileID: 83083013} + m_Father: {fileID: 150541160} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1011615276 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1831495200} + - 222: {fileID: 150074641} + - 114: {fileID: 1933335607} + - 114: {fileID: 1730041705} + - 114: {fileID: 2106709201} + - 114: {fileID: 1162989796} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1019135100 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 771817397} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1839007743} + m_Father: {fileID: 361915101} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1026193878 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2039757121} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1036035759 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1227354493} + - 114: {fileID: 1937133842} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1038714291 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1651406096} +--- !u!114 &1038978276 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1041291615 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1047043806 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &1054338521 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 456897257} + m_Layer: 0 + m_Name: Cell9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1056141680 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1107969072} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1064621812 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 687012180} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1065677556 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 71514943} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1067697837 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 753816397} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1075189675 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1294832699} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1086433398 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 145406097} + - 225: {fileID: 1117796337} + - 114: {fileID: 1196954042} + - 223: {fileID: 674805063} + - 114: {fileID: 1371641948} + m_Layer: 5 + m_Name: Page5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1086956431 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} +--- !u!224 &1100353297 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 150541160} + - {fileID: 1156295079} + - {fileID: 1153345993} + m_Father: {fileID: 755228093} + m_RootOrder: 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1100985461 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1777763453} + - {fileID: 1352572392} + - {fileID: 1064621812} + - {fileID: 1806639804} + - {fileID: 1566024492} + - {fileID: 1065677556} + layoutTransform: {fileID: 428264852} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!114 &1107969072 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1110060615 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 463976051} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1111772974 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1113194818 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1801832805} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &1117796337 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!224 &1127543020 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 824747713} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2070123788} + m_Father: {fileID: 1009960050} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1129552764 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1571134488} + - 225: {fileID: 1242459911} + - 114: {fileID: 476707555} + - 223: {fileID: 994081642} + - 114: {fileID: 1821961108} + m_Layer: 5 + m_Name: Page3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1133224343 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 755228093} + - 114: {fileID: 73941756} + - 114: {fileID: 1380904776} + - 223: {fileID: 402716411} + - 225: {fileID: 2138790002} + - 222: {fileID: 1866016212} + - 114: {fileID: 206960080} + - 114: {fileID: 576015824} + - 114: {fileID: 1252438061} + - 114: {fileID: 366391723} + - 114: {fileID: 406346484} + m_Layer: 5 + m_Name: PagedScrollRect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1142396866 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!4 &1153345993 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1228964540} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1100353297} + m_RootOrder: 2 +--- !u!4 &1156295079 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 549863797} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1100353297} + m_RootOrder: 1 +--- !u!1 &1157488602 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 252147464} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1159364220 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 531684633} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1332774103} + m_Father: {fileID: 883685833} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1161059474 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 807479348} + - 222: {fileID: 2011599041} + - 114: {fileID: 243152263} + - 114: {fileID: 1833195255} + - 114: {fileID: 1824613346} + - 114: {fileID: 432418958} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1162302459 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1162989796 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1164637397 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 858204276} + - 222: {fileID: 887941098} + - 114: {fileID: 1718281988} + - 114: {fileID: 510281993} + - 114: {fileID: 1470848792} + - 114: {fileID: 813596726} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1166787823 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1621406790} + - {fileID: 1113194818} + - {fileID: 1637519868} + - {fileID: 2070123788} + - {fileID: 807479348} + - {fileID: 466363067} + layoutTransform: {fileID: 150541160} + staggerAnimationIntensity: 0.5 + tileOrderBy: 2 +--- !u!114 &1174937750 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 995511693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &1196954042 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff116a42749d24b4090791509db76fad, type: 3} + m_Name: + m_EditorClassIdentifier: + tiles: + - {fileID: 1789344815} + - {fileID: 1776485748} + - {fileID: 1439812546} + - {fileID: 442318203} + - {fileID: 1831495200} + - {fileID: 1409751316} + layoutTransform: {fileID: 265086262} + staggerAnimationIntensity: 0.5 + tileOrderBy: 0 +--- !u!224 &1203130719 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1474549354} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1576790446} + m_Father: {fileID: 291462530} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1206051604 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1756109189} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1637519868} + m_Father: {fileID: 716329340} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &1207020683 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192246150} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1571134488} + m_RootOrder: 2 +--- !u!114 &1212581670 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1776868919} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!4 &1227354493 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1036035759} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2137043576} + m_RootOrder: 2 +--- !u!1 &1228964540 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1153345993} + - 114: {fileID: 2027357312} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1233598042 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1636167527} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1234544633 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1443826777} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14066696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1555633008} + m_Father: {fileID: 772654506} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1235177196 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 715216751} +--- !u!1 &1237122166 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1401057011} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1237865510 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!225 &1242459911 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1246447511 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1252438061 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8a1350d8c86b45c5b567988d0897a27, type: 3} + m_Name: + m_EditorClassIdentifier: + minAlpha: 0 +--- !u!1 &1263882503 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1439812546} + - 222: {fileID: 375957088} + - 114: {fileID: 1268118386} + - 114: {fileID: 175934323} + - 114: {fileID: 1416946743} + - 114: {fileID: 247926048} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1268118386 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1269614958 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 416813654} + m_Layer: 0 + m_Name: Cell5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1294832699 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1871568221} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1075189675} + m_Father: {fileID: 772654506} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1295887803 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} +--- !u!1 &1297230052 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1776485748} + - 222: {fileID: 1295887803} + - 114: {fileID: 1636167527} + - 114: {fileID: 381612824} + - 114: {fileID: 1233598042} + - 114: {fileID: 943475359} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1304648509 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1315417691 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} +--- !u!114 &1320861889 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1326965187 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1602634039} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1508608250} + m_Father: {fileID: 772654506} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1327980834 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 13473936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1332774103 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1159364220} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 983, y: 983} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1346881190 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2085592869} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1349332302 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1651406096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.93333334, g: 0.93333334, b: 0.93333334, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3407c2ebca54945fe8f7e5ddfa9b20fa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1350070593 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1501344177} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1439812546} + m_Father: {fileID: 265086262} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1352572392 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 244310717} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1371641948 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086433398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1378048500 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 715216751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &1380904776 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c72accf6cbda24d54b10c062b49302db, type: 3} + m_Name: + m_EditorClassIdentifier: + spacing: 2000 +--- !u!1 &1395537906 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 328449789} + - 222: {fileID: 1514976284} + - 114: {fileID: 1497717604} + - 114: {fileID: 580909915} + - 114: {fileID: 2020435885} + - 114: {fileID: 17810577} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1401057011 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1237122166} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1470308148} + m_Father: {fileID: 772654506} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1403926196 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1409751316 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1487404241} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1415406652 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1416946743 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &1435708236 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} +--- !u!1 &1436057188 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1777763453} + - 222: {fileID: 2123188695} + - 114: {fileID: 532326915} + - 114: {fileID: 390594937} + - 114: {fileID: 863924767} + - 114: {fileID: 1320861889} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1439812546 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1263882503} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1350070593} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1439951346 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 460021660} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 958520631} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1441655546 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1443826777 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1234544633} + m_Layer: 0 + m_Name: Cell7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1445780168 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 696907480} + m_Layer: 0 + m_Name: Cell1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1456795108 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 772654506} + - 114: {fileID: 586949103} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1457134863 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1304648509} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!4 &1458090507 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 852700558} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 145406097} + m_RootOrder: 2 +--- !u!114 &1463905598 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1875508887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 998e7801d843d29468b357afb447a8fb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1349332302} + m_HandleRect: {fileID: 1839007743} + m_Direction: 0 + m_Value: 0 + m_Size: 0 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + pagedScrollRect: {fileID: 73941756} +--- !u!1 &1464026554 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1075189675} + - 222: {fileID: 1483469717} + - 114: {fileID: 1844192170} + - 114: {fileID: 965007490} + - 114: {fileID: 1038978276} + - 114: {fileID: 84143703} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1466866226 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2128400974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1327980834} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1470308148 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1401057011} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1470848792 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1474549354 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1203130719} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1483469717 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} +--- !u!224 &1487404241 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1965297652} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1409751316} + m_Father: {fileID: 265086262} + m_RootOrder: 5 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1497717604 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1499194019 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 402176634} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1621406790} + m_Father: {fileID: 1755009746} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1501344177 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1350070593} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1508094591 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1637659026} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1508608250 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1326965187} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1514325822 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} +--- !u!114 &1514931601 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1514976284 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} +--- !u!1 &1523594819 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1555633008} + - 222: {fileID: 354872373} + - 114: {fileID: 1514931601} + - 114: {fileID: 741684048} + - 114: {fileID: 784283000} + - 114: {fileID: 1047043806} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1528083455 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 410285204} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1532572999 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 953135798} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1555633008 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1523594819} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1234544633} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1559005971 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 116619590} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1565248734 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2137043576} + - 225: {fileID: 1987537107} + - 114: {fileID: 1100985461} + - 223: {fileID: 759775259} + - 114: {fileID: 130501394} + m_Layer: 5 + m_Name: Page4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1566024492 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2096264641} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 416813654} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1569978569 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 687012180} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1571134488 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 883685833} + - {fileID: 143058959} + - {fileID: 1207020683} + m_Father: {fileID: 755228093} + m_RootOrder: 2 + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1572960942 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1739056958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1575457338 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!224 &1576790446 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1203130719} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1578751767 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 757982749} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 442318203} + m_Father: {fileID: 265086262} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1585032968 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1907750711} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1599779209 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 83083013} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1602634039 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1326965187} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1604516197 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 68171726} + - 114: {fileID: 1920335160} + m_Layer: 0 + m_Name: SwipeRightSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1610438603 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 716329340} + - 114: {fileID: 1621018049} + m_Layer: 0 + m_Name: VerticalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1619463519 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} +--- !u!114 &1621018049 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1610438603} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 516 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!224 &1621406790 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1499194019} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 1.5, y: 0} + m_SizeDelta: {x: 983, y: 983} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1636167527 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1637519868 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1866281367} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1206051604} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1637659026 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177986700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1643801345 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1806639804} + - 222: {fileID: 1726020375} + - 114: {fileID: 1732124470} + - 114: {fileID: 445320450} + - 114: {fileID: 643373462} + - 114: {fileID: 1683843080} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1646259858 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &1651236224 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2053543511} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 259 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 774 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &1651406096 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1839007743} + - 222: {fileID: 1038714291} + - 114: {fileID: 1349332302} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1660248062 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112585717} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 911515628} + m_RootOrder: 1 +--- !u!114 &1680188311 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1682348398 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532572999} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1683843080 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!1 &1684729129 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1113194818} + - 222: {fileID: 1086956431} + - 114: {fileID: 266629178} + - 114: {fileID: 312750763} + - 114: {fileID: 2011822401} + - 114: {fileID: 1817260519} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1694244629 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1942284460} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1718281988 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164637397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!225 &1718765989 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2057788527} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!222 &1726020375 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} +--- !u!114 &1730004195 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1730041705 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1732124470 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 9b406d527c89e4724a237dc365c342fc, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1733988396 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 774717865} + - 222: {fileID: 1737338415} + - 114: {fileID: 1107969072} + - 114: {fileID: 1056141680} + - 114: {fileID: 1246447511} + - 114: {fileID: 1861389165} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1737338415 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} +--- !u!1 &1739056958 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 466363067} + - 222: {fileID: 1514325822} + - 114: {fileID: 930409338} + - 114: {fileID: 165179823} + - 114: {fileID: 1572960942} + - 114: {fileID: 1002032021} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1739362131 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 71514943} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1752939401 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 112585717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!4 &1753859992 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1776868919} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 911515628} + m_RootOrder: 2 +--- !u!114 &1754961376 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 129231722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 160024342} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1755009746 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2053543511} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1499194019} + - {fileID: 716329340} + m_Father: {fileID: 150541160} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1756109189 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1206051604} + m_Layer: 0 + m_Name: Cell3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1769095442 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 595143401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!222 &1770962231 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} +--- !u!224 &1776485748 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297230052} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 252147464} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1776868919 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1753859992} + - 114: {fileID: 1212581670} + m_Layer: 0 + m_Name: TileClickSound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1777763453 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 463976051} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1781668347 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 715216751} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 361915101} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.030456543, y: 0} + m_SizeDelta: {x: 1700, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1789344815 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 56404326} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 696907480} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1790696972 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 362790423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 14761055ede130c4d87d3d918ea7ca99, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1801832805 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 91501290} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1113194818} + m_Father: {fileID: 716329340} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1801968738 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: a237529f339064338bef1948038ca734, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1806639804 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1643801345} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 609884770} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1817260519 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!114 &1821961108 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1129552764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1824613346 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &1831495200 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 942762785} + m_RootOrder: 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: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1833195255 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 243152263} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2027357312} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1837566481 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 506801687} + m_Layer: 0 + m_Name: Cell2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1839007743 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1651406096} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1019135100} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1844192170 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1464026554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6ff3cce9f466e4093bb3873ba2318bd1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!4 &1850540112 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2070911031} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 361915101} + - {fileID: 755228093} + - {fileID: 61493342} + - {fileID: 68171726} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &1861389165 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1733988396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!222 &1866016212 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} +--- !u!1 &1866281367 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1637519868} + - 222: {fileID: 1619463519} + - 114: {fileID: 376837279} + - 114: {fileID: 33490176} + - 114: {fileID: 1415406652} + - 114: {fileID: 497085375} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1871568221 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1294832699} + m_Layer: 0 + m_Name: Cell4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1875508887 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 361915101} + - 222: {fileID: 743910674} + - 114: {fileID: 34166763} + - 114: {fileID: 1463905598} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1876235863 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} +--- !u!114 &1880318043 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2123331887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1801968738} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1212581670} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &1907750711 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1585032968} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 135220956} + m_Father: {fileID: 772654506} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911098943 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &1912284448 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 332408186} +--- !u!114 &1920335160 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1604516197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 75900b9d8d4dc794bb7c2542dfa4c213, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &1933335607 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e1cc9be6506fa4bdd802d6bb46aea28e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: e555aaa2e768247feb98e3b6ad5958ae, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &1937133842 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1036035759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!224 &1939679216 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107346513} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 328449789} + m_Father: {fileID: 291462530} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1942284460 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 823271601} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: d6a5401c53f86174799228f65f4f9b4d, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!1 &1965297652 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1487404241} + m_Layer: 0 + m_Name: Cell6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!225 &1973103943 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117888635} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1976832627 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2957591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89007d35048604468b7ff786ea401523, type: 3} + m_Name: + m_EditorClassIdentifier: + hoverScale: 1.2 + hoverPositionZMeters: 0.225 + maximumRotationDegreesCamera: 15 + maximumRotationDegreesPointer: 3 + interpolationSpeed: 8 +--- !u!225 &1987537107 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!222 &2011599041 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1161059474} +--- !u!222 &2011647217 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 954607618} +--- !u!114 &2011822401 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1684729129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 110096322} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &2012182497 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 537326553} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14073181} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 858204276} + m_Father: {fileID: 772654506} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2020435885 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1395537906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1497717604} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 958520631} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2027357312 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1228964540} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + bypassRoomEffects: 0 + directivityAlpha: 0 + directivitySharpness: 1 + listenerDirectivityAlpha: 0 + listenerDirectivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 0 + sourceClip: {fileID: 8300000, guid: 1092bf4d7d12aa441ad10818fcbab240, type: 3} + sourceLoop: 0 + sourceMute: 0 + sourcePitch: 1 + sourcePriority: 128 + sourceDopplerLevel: 1 + sourceSpread: 0 + sourceVolume: 1 + sourceRolloffMode: 0 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 + audioSource: {fileID: 0} +--- !u!114 &2029261416 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 766145458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 466, y: 466} + m_Spacing: {x: 50, y: 50} + m_Constraint: 1 + m_ConstraintCount: 2 +--- !u!114 &2030389251 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134570864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 201380991} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &2039757121 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026193878} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 807479348} + m_Father: {fileID: 1009960050} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2053543511 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1755009746} + - 114: {fileID: 1651236224} + m_Layer: 0 + m_Name: HorizontalGroup1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2057788527 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1100353297} + - 225: {fileID: 1718765989} + - 114: {fileID: 1166787823} + - 223: {fileID: 354393365} + - 114: {fileID: 195971391} + m_Layer: 5 + m_Name: Page1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2070123788 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 663851824} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1127543020} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 466, y: 466} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2070911031 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1850540112} + m_Layer: 0 + m_Name: TabSimple + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2071114425 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 291462530} + - 114: {fileID: 309362623} + m_Layer: 0 + m_Name: VerticalGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2085592869 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 553881509} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.14066696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1346881190} + m_Father: {fileID: 772654506} + m_RootOrder: 7 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2094241633 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 703512335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1646259858} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1937133842} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &2096264641 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1566024492} + - 222: {fileID: 1435708236} + - 114: {fileID: 667333888} + - 114: {fileID: 109659143} + - 114: {fileID: 1441655546} + - 114: {fileID: 187264350} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2105162198 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1508608250} + - 222: {fileID: 796750673} + - 114: {fileID: 672019417} + - 114: {fileID: 100056945} + - 114: {fileID: 2120558102} + - 114: {fileID: 1041291615} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2106709201 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1011615276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1933335607} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 108245373} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2120558102 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2105162198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1752939401} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!222 &2123188695 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1436057188} +--- !u!1 &2123331887 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1346881190} + - 222: {fileID: 572369819} + - 114: {fileID: 1801968738} + - 114: {fileID: 1880318043} + - 114: {fileID: 668740081} + - 114: {fileID: 578689725} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2128400974 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1332774103} + - 222: {fileID: 899025929} + - 114: {fileID: 460021660} + - 114: {fileID: 483880720} + - 114: {fileID: 1439951346} + - 114: {fileID: 1466866226} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2131182141 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 107404730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 281448562} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 958520631} + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2135791620 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 614764302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 466, y: 466} + m_Spacing: {x: 50, y: 50} + m_Constraint: 1 + m_ConstraintCount: 3 +--- !u!224 &2137043576 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1565248734} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 428264852} + - {fileID: 327556742} + - {fileID: 1227354493} + m_Father: {fileID: 755228093} + m_RootOrder: 3 + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &2138790002 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1133224343} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 diff --git a/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabSimple.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabSimple.prefab.meta new file mode 100644 index 0000000..8d35030 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/ScrollingUIDemo/Tabs/TabSimple.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54a44e4c78a9f46c79cfebe8c638dc37 +timeCreated: 1473208288 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/VideoDemo.meta b/Assets/GoogleVR/Demos/Prefabs/VideoDemo.meta new file mode 100644 index 0000000..c9dc982 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/VideoDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 52b7479757bdb4bca9e5036b244c3c93 +folderAsset: yes +timeCreated: 1471470468 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/VideoDemo/MenuBar.prefab b/Assets/GoogleVR/Demos/Prefabs/VideoDemo/MenuBar.prefab new file mode 100644 index 0000000..bd3d144 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/VideoDemo/MenuBar.prefab @@ -0,0 +1,507 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1596676483} + m_IsPrefabParent: 1 +--- !u!1 &174288875 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1225916774} + - 222: {fileID: 1300329510} + - 114: {fileID: 1685894217} + - 114: {fileID: 169017167} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1590874943 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 863570889} + - 222: {fileID: 1868668733} + - 114: {fileID: 1488426162} + m_Layer: 5 + m_Name: VideoSize + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1617223201 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 294705724} + - 222: {fileID: 512967037} + - 114: {fileID: 694042128} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1596676483 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 824776444} + - 223: {fileID: 1755358597} + - 114: {fileID: 80762351} + - 114: {fileID: 421771429} + - 225: {fileID: 1092422400} + - 114: {fileID: 1960324903} + - 114: {fileID: 1336403911} + - 114: {fileID: 2043292222} + - 114: {fileID: 1516951237} + m_Layer: 5 + m_Name: MenuBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &80762351 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596676483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &1516951237 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596676483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7304a3fe3b19a4eb8ba4e4b21008b2f0, type: 3} + m_Name: + m_EditorClassIdentifier: + menuObjects: + - {fileID: 0} + - {fileID: 0} +--- !u!114 &1960324903 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596676483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 499621f70ffb54e8bad37f748aed85f2, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1336403911 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596676483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9e216f327e132794b8e02093522ae84c, type: 3} + m_Name: + m_EditorClassIdentifier: + OnAppUp: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: GVR.Input.ButtonEvent, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnAppDown: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2043292222} + m_MethodName: Toggle + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: GVR.Input.ButtonEvent, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null +--- !u!114 &169017167 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174288875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1685894217} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: ShowMainMenu + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &421771429 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596676483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2043292222 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596676483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d1b8f07442700094898145567ef1f203, type: 3} + m_Name: + m_EditorClassIdentifier: + OnToggleOn: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1516951237} + m_MethodName: ShowMenu + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnToggleOff: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1516951237} + m_MethodName: HideMenu + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + InitialState: 1 + RaiseEventForInitialState: 0 + Cooldown: 0 +--- !u!114 &1488426162 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1590874943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 100 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &694042128 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1617223201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 100 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Back to Menu +--- !u!114 &1685894217 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174288875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1868668733 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1590874943} +--- !u!222 &1300329510 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174288875} +--- !u!222 &512967037 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1617223201} +--- !u!223 &1755358597 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596676483} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &294705724 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1617223201} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1225916774} + m_RootOrder: 0 + m_AnchorMin: {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} +--- !u!224 &1225916774 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174288875} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 294705724} + m_Father: {fileID: 824776444} + m_RootOrder: 0 + m_AnchorMin: {x: 0.2, y: 0.1} + m_AnchorMax: {x: 0.8, y: 0.25} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &863570889 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1590874943} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 824776444} + m_RootOrder: 1 + m_AnchorMin: {x: 0.009542092, y: 0.1} + m_AnchorMax: {x: 1, y: 0.17400001} + m_AnchoredPosition: {x: -9.9961, y: -149} + m_SizeDelta: {x: 19.992, y: 15} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &824776444 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596676483} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 4} + m_LocalScale: {x: 0.001, y: 0.001, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1225916774} + - {fileID: 863570889} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -0.02, y: -0.82} + m_SizeDelta: {x: 2095.15, y: 1918.35} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &1092422400 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1596676483} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 diff --git a/Assets/GoogleVR/Demos/Prefabs/VideoDemo/MenuBar.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/VideoDemo/MenuBar.prefab.meta new file mode 100644 index 0000000..f8a6db4 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/VideoDemo/MenuBar.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 421f38d36955b4473b99800e7cc5ee37 +timeCreated: 1475163586 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Prefabs/VideoDemo/VideoControls.prefab b/Assets/GoogleVR/Demos/Prefabs/VideoDemo/VideoControls.prefab new file mode 100644 index 0000000..47d85bc --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/VideoDemo/VideoControls.prefab @@ -0,0 +1,2866 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!222 &18538445 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 725742927} +--- !u!114 &37083777 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1075224535} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 33fe2a867f53b4dd7b47d13503efb4de, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &59339357 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1137111031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &91833519 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 747062055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &95282846 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1345198074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 738cb298280e345f4908ffe19a6cd591, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 650846444} + m_IsPrefabParent: 1 +--- !u!114 &110164717 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 650846444} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70f36fab7a81646eeb5c083264db5be0, type: 3} + m_Name: + m_EditorClassIdentifier: + player: {fileID: 0} +--- !u!114 &139209893 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2092375200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.541} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &152245717 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1550274822} +--- !u!114 &167946883 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1889339327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 36597cf9c1ebe400c99c9affa94cfd24, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!1 &174405581 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 670958713} + - 222: {fileID: 780039787} + - 114: {fileID: 1841903541} + m_Layer: 5 + m_Name: settings_image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &230187223 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 846340090} + - 222: {fileID: 1014126416} + - 114: {fileID: 2101800346} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &250310558 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1535195243} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.29411766, g: 0.303, b: 0.81568635, a: 0.691} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &265220946 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 842406552} + - 222: {fileID: 1744419420} + - 114: {fileID: 1220986348} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &265926893 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1075224535} +--- !u!224 &271662729 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 834822196} + 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_Children: + - {fileID: 1286145430} + - {fileID: 1355393028} + - {fileID: 1053754247} + - {fileID: 1493204893} + m_Father: {fileID: 2042328513} + m_RootOrder: 1 + m_AnchorMin: {x: 0.20300001, y: 0.04} + m_AnchorMax: {x: 0.79700005, y: 0.08} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: -0.000015258789} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &293026199 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 842897185} + 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_Children: [] + m_Father: {fileID: 652672571} + m_RootOrder: 0 + m_AnchorMin: {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} +--- !u!114 &299345355 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 850598152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &350827436 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 850598152} +--- !u!1 &386531953 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1355393028} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &427223765 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086507754} +--- !u!1 &435672934 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1310915070} + m_Layer: 5 + m_Name: settings + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &459900200 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1240802587} + 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_Children: [] + m_Father: {fileID: 1307927409} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 2.4, y: -0.9} + m_SizeDelta: {x: 132.6, y: 49.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &477284213 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2092375200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cc7f51d6c6b140f79f7afded8b84284, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &498814467 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 853069448} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.509} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &499153277 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1857102488} +--- !u!222 &513964706 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1889339327} +--- !u!114 &528625580 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 962069258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9117647, g: 0, b: 0.16176471, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &539183185 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086507754} + m_LocalRotation: {x: -0, y: -0, z: 0.0037209068, w: -0.9999931} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 1} + m_Children: + - {fileID: 2097420047} + - {fileID: 780487871} + - {fileID: 685128331} + m_Father: {fileID: 2042328513} + m_RootOrder: 5 + m_AnchorMin: {x: 0.4214107, y: 0.25687796} + m_AnchorMax: {x: 0.52236396, y: 0.4575355} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &542357450 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1766262893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9117647, g: 0, b: 0.16176471, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: fe4fc8c33a7454cbf8504991c47a12a8, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &544655656 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 842897185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7843138, g: 0.79215693, b: 0.80392164, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 2d89a5f92f03449f2bd6c28c914115fc, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &588158655 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1291849241} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &619811956 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2092375200} +--- !u!222 &630495252 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 843878323} +--- !u!1 &650846444 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2079246903} + - 114: {fileID: 110164717} + m_Layer: 0 + m_Name: VideoControls + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &652672571 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 850598152} + 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_Children: + - {fileID: 293026199} + - {fileID: 1420181710} + m_Father: {fileID: 2042328513} + m_RootOrder: 4 + m_AnchorMin: {x: 0.2, y: 0.14620341} + m_AnchorMax: {x: 0.24800001, y: 0.28311586} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &663490201 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 717212708} +--- !u!114 &664824289 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1672313607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &670958713 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174405581} + 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_Children: [] + m_Father: {fileID: 1988323867} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: -0.0000038146973} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &676506846 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1345198074} +--- !u!224 &685128331 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1075224535} + 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_Children: [] + m_Father: {fileID: 539183185} + m_RootOrder: 2 + m_AnchorMin: {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} +--- !u!1 &717212708 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1130589988} + - 222: {fileID: 663490201} + - 114: {fileID: 775779508} + m_Layer: 5 + m_Name: settings_buttonCircle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &721874683 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 783778481} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7843138, g: 0.79215693, b: 0.80392164, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 2d89a5f92f03449f2bd6c28c914115fc, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!1 &725742927 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1141502232} + - 222: {fileID: 18538445} + - 114: {fileID: 1813628901} + - 114: {fileID: 1894154550} + m_Layer: 5 + m_Name: vol_up + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &731248162 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1137111031} +--- !u!114 &732869598 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 747062055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &747062055 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2042328513} + - 223: {fileID: 1686446061} + - 114: {fileID: 91833519} + - 225: {fileID: 1484849856} + - 114: {fileID: 1633499005} + - 114: {fileID: 732869598} + m_Layer: 5 + m_Name: DisplayCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &775779508 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 717212708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7843138, g: 0.79215693, b: 0.80392164, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 2d89a5f92f03449f2bd6c28c914115fc, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &777902215 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2072198232} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &780039787 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174405581} +--- !u!224 &780487871 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1889339327} + 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_Children: [] + m_Father: {fileID: 539183185} + m_RootOrder: 1 + m_AnchorMin: {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} +--- !u!1 &783778481 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2097420047} + - 222: {fileID: 1052060675} + - 114: {fileID: 721874683} + m_Layer: 5 + m_Name: volumeCircle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &797842343 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1137111031} + 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_Children: [] + m_Father: {fileID: 1458877334} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &834822196 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 271662729} + - 114: {fileID: 1797793609} + m_Layer: 5 + m_Name: video_slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &842406552 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 265220946} + 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_Children: [] + m_Father: {fileID: 1522574926} + m_RootOrder: 0 + m_AnchorMin: {x: 0.25, y: 0} + m_AnchorMax: {x: 0.75, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &842897185 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 293026199} + - 222: {fileID: 1331976630} + - 114: {fileID: 544655656} + m_Layer: 5 + m_Name: volumeCircle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &843878323 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2123468901} + - 222: {fileID: 630495252} + - 114: {fileID: 1307758141} + m_Layer: 5 + m_Name: title_text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &846340090 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 230187223} + 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_Children: [] + m_Father: {fileID: 2010285796} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &850598152 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 652672571} + - 222: {fileID: 350827436} + - 114: {fileID: 299345355} + - 114: {fileID: 2023576010} + m_Layer: 5 + m_Name: volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &853069448 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1369105660} + - 222: {fileID: 1887605779} + - 114: {fileID: 498814467} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &878767707 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 962069258} +--- !u!1 &962069258 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1279982647} + - 222: {fileID: 878767707} + - 114: {fileID: 528625580} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &982932567 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2053350985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d1b8f07442700094898145567ef1f203, type: 3} + m_Name: + m_EditorClassIdentifier: + OnToggleOn: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1633499005} + m_MethodName: Fade + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + OnToggleOff: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1633499005} + m_MethodName: Fade + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + InitialState: 0 + RaiseEventForInitialState: 1 + Cooldown: 0 +--- !u!222 &1014126416 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 230187223} +--- !u!222 &1052060675 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 783778481} +--- !u!224 &1053754247 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1535195243} + 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_Children: [] + m_Father: {fileID: 271662729} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0.24} + m_AnchorMax: {x: 1, y: 0.76} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1074563955 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1240802587} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: (No settings in sample code) +--- !u!1 &1075224535 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 685128331} + - 222: {fileID: 265926893} + - 114: {fileID: 37083777} + m_Layer: 5 + m_Name: pauseImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &1086507754 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 539183185} + - 222: {fileID: 427223765} + - 114: {fileID: 2139718752} + - 114: {fileID: 2073392283} + m_Layer: 5 + m_Name: playpause_button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1100586081 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1283635433} + - 222: {fileID: 2107542926} + - 114: {fileID: 1732824922} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1129845788 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1530223494} + 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_Children: [] + m_Father: {fileID: 1141502232} + m_RootOrder: 0 + m_AnchorMin: {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} +--- !u!224 &1130589988 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 717212708} + 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_Children: [] + m_Father: {fileID: 1988323867} + m_RootOrder: 0 + m_AnchorMin: {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} +--- !u!1 &1137111031 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 797842343} + - 222: {fileID: 731248162} + - 114: {fileID: 59339357} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1141502232 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 725742927} + 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_Children: + - {fileID: 1129845788} + m_Father: {fileID: 1534731733} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.818} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.000091552734, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1164402124 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1672313607} + 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_Children: [] + m_Father: {fileID: 1355393028} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1217811730 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1697584635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 4 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0:00 +--- !u!114 &1220986348 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 265220946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1221321103 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1522574926} + - 114: {fileID: 1426491928} + m_Layer: 5 + m_Name: volume_slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1240802587 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 459900200} + - 222: {fileID: 1580715401} + - 114: {fileID: 1074563955} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1248321020 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1672313607} +--- !u!224 &1279982647 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 962069258} + 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_Children: [] + m_Father: {fileID: 1493204893} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1283635433 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1100586081} + 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_Children: [] + m_Father: {fileID: 1554607865} + m_RootOrder: 0 + m_AnchorMin: {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} +--- !u!224 &1286145430 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2092375200} + 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_Children: + - {fileID: 1677584699} + m_Father: {fileID: 271662729} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1291849241 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1988323867} + - 222: {fileID: 1457541051} + - 114: {fileID: 588158655} + - 114: {fileID: 1539831591} + m_Layer: 5 + m_Name: settings_button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1307758141 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 843878323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ' Settings ' +--- !u!224 &1307927409 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2072198232} + 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_Children: + - {fileID: 2123468901} + - {fileID: 459900200} + m_Father: {fileID: 1310915070} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -47.8, y: 172.99997} + m_SizeDelta: {x: 44.46147, y: 142.71797} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1310915070 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 435672934} + 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_Children: + - {fileID: 1988323867} + - {fileID: 1307927409} + m_Father: {fileID: 2042328513} + m_RootOrder: 6 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 204.95172, y: -136.96338} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1318588105 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1530223494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.634, b: 0, a: 0.966} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1331976630 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 842897185} +--- !u!1 &1345198074 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1420181710} + - 222: {fileID: 676506846} + - 114: {fileID: 95282846} + m_Layer: 5 + m_Name: vol_image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1355393028 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 386531953} + 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_Children: + - {fileID: 1164402124} + m_Father: {fileID: 271662729} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1369105660 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 853069448} + 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_Children: [] + m_Father: {fileID: 1534731733} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.16222608, y: -0.066288844} + m_SizeDelta: {x: -0.29312086, y: -0.11961} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1420181710 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1345198074} + 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_Children: [] + m_Father: {fileID: 652672571} + m_RootOrder: 1 + m_AnchorMin: {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} +--- !u!114 &1426491928 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1221321103} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -113659843, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2101800346} + m_FillRect: {fileID: 797842343} + m_HandleRect: {fileID: 846340090} + m_Direction: 2 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &1457541051 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1291849241} +--- !u!224 &1458877334 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1946923112} + 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_Children: + - {fileID: 797842343} + m_Father: {fileID: 1522574926} + m_RootOrder: 1 + m_AnchorMin: {x: 0.25, y: 0} + m_AnchorMax: {x: 0.75, y: 1} + m_AnchoredPosition: {x: 0, y: -5} + m_SizeDelta: {x: 0, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &1484849856 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 747062055} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!224 &1493204893 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1895363828} + 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_Children: + - {fileID: 1279982647} + m_Father: {fileID: 271662729} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1521022023 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1857102488} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 4 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0:00 +--- !u!224 &1522574926 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1221321103} + 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_Children: + - {fileID: 842406552} + - {fileID: 1458877334} + - {fileID: 2010285796} + m_Father: {fileID: 1534731733} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.2} + m_AnchorMax: {x: 0.5, y: 0.818} + m_AnchoredPosition: {x: 2.7, y: 0} + m_SizeDelta: {x: 14.8, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1530223494 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1129845788} + - 222: {fileID: 1685389313} + - 114: {fileID: 1318588105} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1534731733 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1979691154} + 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_Children: + - {fileID: 1369105660} + - {fileID: 1141502232} + - {fileID: 1554607865} + - {fileID: 1522574926} + m_Father: {fileID: 2042328513} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 141.5, y: -172.05} + m_SizeDelta: {x: 67.4, y: 344} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1535195243 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1053754247} + - 222: {fileID: 2055148572} + - 114: {fileID: 250310558} + m_Layer: 5 + m_Name: BufferedBackground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1539831591 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1291849241} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 588158655} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1633499005} + m_MethodName: OnToggleSettings + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1550274822 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1554607865} + - 222: {fileID: 152245717} + - 114: {fileID: 1982092948} + - 114: {fileID: 1604737073} + m_Layer: 5 + m_Name: vol_down + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1554607865 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1550274822} + 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_Children: + - {fileID: 1283635433} + m_Father: {fileID: 1534731733} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0.24998474} + m_SizeDelta: {x: 0, y: -0.50003} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1580715401 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1240802587} +--- !u!222 &1604081944 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1697584635} +--- !u!114 &1604737073 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1550274822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1633499005} + m_MethodName: OnVolumeDown + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &1618335311 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2053350985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9e216f327e132794b8e02093522ae84c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1633499005 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 747062055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ce60bdf78924133940a4a64555e784, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &1639035537 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1697584635} + m_LocalRotation: {x: -0, y: -0, z: 0.0098030325, w: -0.999952} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2042328513} + m_RootOrder: 2 + m_AnchorMin: {x: 0.81, y: 0.03} + m_AnchorMax: {x: 0.99, y: 0.1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1672313607 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1164402124} + - 222: {fileID: 1248321020} + - 114: {fileID: 664824289} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1677584699 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1766262893} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 1} + m_Children: [] + m_Father: {fileID: 1286145430} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 46.6, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1685389313 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1530223494} +--- !u!223 &1686446061 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 747062055} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1697584635 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1639035537} + - 222: {fileID: 1604081944} + - 114: {fileID: 1217811730} + m_Layer: 5 + m_Name: duration_text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1732824922 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1100586081} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.875, g: 0.17371324, b: 0.17371324, a: 0.9019608} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1744419420 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 265220946} +--- !u!1 &1766262893 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1677584699} + - 222: {fileID: 2077714971} + - 114: {fileID: 542357450} + m_Layer: 5 + m_Name: newPositionHandle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &1773914611 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2010285796} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1797793609 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 834822196} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -113659843, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 528625580} + m_FillRect: {fileID: 1164402124} + m_HandleRect: {fileID: 1279982647} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1813628901 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 725742927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_Color: {r: 0.2188776, g: 0.74264705, b: 0.12013406, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: + +--- !u!4 &1834979375 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2053350985} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 9} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2079246903} + m_RootOrder: 1 +--- !u!114 &1841903541 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174405581} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: c693e0aaddd03420fa79689875f39f93, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!1 &1857102488 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2026081615} + - 222: {fileID: 499153277} + - 114: {fileID: 1521022023} + m_Layer: 5 + m_Name: curpos_text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1887605779 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 853069448} +--- !u!1 &1889339327 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 780487871} + - 222: {fileID: 513964706} + - 114: {fileID: 167946883} + m_Layer: 5 + m_Name: playImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1894154550 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 725742927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1633499005} + m_MethodName: OnVolumeUp + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!1 &1895363828 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1493204893} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1946923112 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1458877334} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1979691154 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1534731733} + m_Layer: 5 + m_Name: volume_widget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &1982092948 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1550274822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: '-' +--- !u!224 &1988323867 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1291849241} + 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_Children: + - {fileID: 1130589988} + - {fileID: 670958713} + m_Father: {fileID: 1310915070} + m_RootOrder: 0 + m_AnchorMin: {x: 0.78214216, y: 0.14620341} + m_AnchorMax: {x: 0.858332, y: 0.28311586} + m_AnchoredPosition: {x: -32.023716, y: 28.534002} + m_SizeDelta: {x: 41.142494, y: 52.026726} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2001213904 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2072198232} +--- !u!224 &2010285796 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1773914611} + 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_Children: + - {fileID: 846340090} + m_Father: {fileID: 1522574926} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2023576010 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 850598152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 299345355} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1633499005} + m_MethodName: OnToggleVolume + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!224 &2026081615 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1857102488} + 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_Children: [] + m_Father: {fileID: 2042328513} + m_RootOrder: 0 + m_AnchorMin: {x: 0.017226387, y: 0.03} + m_AnchorMax: {x: 0.17987883, y: 0.1} + m_AnchoredPosition: {x: -0.9500122, y: -0.25} + m_SizeDelta: {x: -1.9, y: 0.5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2029052262 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2092375200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 477284213} + m_MethodName: OnPointerEnter + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 477284213} + m_MethodName: OnPointerExit + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 477284213} + m_MethodName: OnPointerClick + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - eventID: 11 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 477284213} + m_MethodName: OnPointerMove + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!224 &2042328513 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 747062055} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.00468, y: 0.00208, z: 1} + m_Children: + - {fileID: 2026081615} + - {fileID: 271662729} + - {fileID: 1639035537} + - {fileID: 1534731733} + - {fileID: 652672571} + - {fileID: 539183185} + - {fileID: 1310915070} + m_Father: {fileID: 2079246903} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 640, y: 480} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2053350985 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1834979375} + - 114: {fileID: 1618335311} + - 114: {fileID: 982932567} + m_Layer: 0 + m_Name: ControllerManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &2055148572 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1535195243} +--- !u!1 &2072198232 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1307927409} + - 222: {fileID: 2001213904} + - 114: {fileID: 777902215} + m_Layer: 5 + m_Name: settings_panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &2073392283 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086507754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2139718752} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1633499005} + m_MethodName: OnPlayPause + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &2077714971 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1766262893} +--- !u!4 &2079246903 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 650846444} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -0.5, z: 3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2042328513} + - {fileID: 1834979375} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &2092375200 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1286145430} + - 222: {fileID: 619811956} + - 114: {fileID: 139209893} + - 114: {fileID: 477284213} + - 114: {fileID: 2029052262} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2097420047 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 783778481} + 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_Children: [] + m_Father: {fileID: 539183185} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.005, y: 0} + m_SizeDelta: {x: -0.01, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2101800346 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 230187223} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &2107542926 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1100586081} +--- !u!224 &2123468901 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 843878323} + 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_Children: [] + m_Father: {fileID: 1307927409} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.6, y: -24} + m_SizeDelta: {x: -10.9, y: 34} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2139718752 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086507754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 diff --git a/Assets/GoogleVR/Demos/Prefabs/VideoDemo/VideoControls.prefab.meta b/Assets/GoogleVR/Demos/Prefabs/VideoDemo/VideoControls.prefab.meta new file mode 100644 index 0000000..bfb5183 --- /dev/null +++ b/Assets/GoogleVR/Demos/Prefabs/VideoDemo/VideoControls.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1a62dfff2c15946c6a3caf52aef4bcf4 +timeCreated: 1472152474 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/README.md b/Assets/GoogleVR/Demos/README.md new file mode 100644 index 0000000..8c222ea --- /dev/null +++ b/Assets/GoogleVR/Demos/README.md @@ -0,0 +1,71 @@ +# Google VR SDK for Unity - Demo Scenes + +Copyright (c) 2016 Google Inc. All rights reserved. + +## Headset Demo Scene + +File: **Assets/Gvr/DemoScenes/HeadsetDemo/DemoScene.unity** + +This demo is a simple scene that uses the headset with gaze input (without a +controller). The "game" consists of locating the cube and clicking the viewer's +trigger button. Compatible with a traditional Cardboard viewer. + +## Controller Demo Scene + +File: **Assets/Gvr/DemoScenes/ControllerDemo/ControllerDemo.unity** + +This is a demo of how to use the controller. Running this scene on an +actual phone requires an Android N build running on a supported VR device (for +example, a Nexus 6P), and a controller or controller emulator. + +If you want to run the scene in the Unity Editor only, you only need a +phone with the controller emulator installed. + +For instructions on how download and set up your controller emulator, see +the information about controller support in +[https://developers.google.com/vr](https://developers.google.com/vr). + +Summary: + + * The controller phone can be running any version of Android supported + by the controller emulator app (Lollipop and above, at the time of this + writing). + * Install the controller emulator app on the controller phone. + +To run the scene in the Unity Editor: + + * Make sure you have the Android SDK installed, and that the ``adb`` + command is in your PATH environment variable. + * Connect your controller phone to your computer with a USB cable. + * Verify that you are correctly set up by typing ``adb devices`` on + a terminal. That should list your device. + * Click Play on the Unity Editor. + +To run the scene on your headset phone: + + * You will need two phones, one for the headset and one to use as a + controller emulator. + * The headset phone must be running an Android N build. + * Set up a WiFi hotspot on your controller phone, and have your headset + phone connect to it (remove your SIM card if you want to avoid mobile + data charges). + * Make sure you've gone through the necessary setup steps to enable + controller emulator support on your headset phone (in particular, + verify that **Enable Controller Emulator** is enabled in + **Google VR Services Settings**). + * Launch the Controller Demo scene on the headset phone. + +How to play: + + * Point at cubes using your controller or controller emulator. + * Hold the controller's touchpad as you move your controller to drag the + cubes around the scene. + * Repeat until happiness is achieved. + +Note: the controller can only be used on a supported VR-enabled Android device +(at the time of this writing, the Nexus 6P) running a VR-enabled build of +Android N (the latest Android N developer preview build). On any other +device or platform (e.g. unsupported Android device, iOS, desktop, etc), the +controller API will still be present, but will always report the controller as +being disconnected. + diff --git a/Assets/GoogleVR/Demos/README.md.meta b/Assets/GoogleVR/Demos/README.md.meta new file mode 100644 index 0000000..19d70ec --- /dev/null +++ b/Assets/GoogleVR/Demos/README.md.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f581aee129c18447080589185abc5082 +timeCreated: 1462395708 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scenes.meta b/Assets/GoogleVR/Demos/Scenes.meta new file mode 100644 index 0000000..0cec1c2 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scenes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dcc56223db7e54229a24c587c334e51d +folderAsset: yes +timeCreated: 1479427356 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scenes/GVRDemo.unity b/Assets/GoogleVR/Demos/Scenes/GVRDemo.unity new file mode 100644 index 0000000..9a63c87 Binary files /dev/null and b/Assets/GoogleVR/Demos/Scenes/GVRDemo.unity differ diff --git a/Assets/GoogleVR/Demos/Scenes/GVRDemo.unity.meta b/Assets/GoogleVR/Demos/Scenes/GVRDemo.unity.meta new file mode 100644 index 0000000..d82116b --- /dev/null +++ b/Assets/GoogleVR/Demos/Scenes/GVRDemo.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bb36d2905dc634f1c9eecb35beecaca8 +timeCreated: 1479266156 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scenes/KeyboardDemo.unity b/Assets/GoogleVR/Demos/Scenes/KeyboardDemo.unity new file mode 100644 index 0000000..e7a121f Binary files /dev/null and b/Assets/GoogleVR/Demos/Scenes/KeyboardDemo.unity differ diff --git a/Assets/GoogleVR/Demos/Scenes/KeyboardDemo.unity.meta b/Assets/GoogleVR/Demos/Scenes/KeyboardDemo.unity.meta new file mode 100644 index 0000000..56d9fc1 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scenes/KeyboardDemo.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a44fd944cf574740a8f88ff7e39a487 +timeCreated: 1462053048 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scenes/PermissionsDemo.unity b/Assets/GoogleVR/Demos/Scenes/PermissionsDemo.unity new file mode 100644 index 0000000..c375a7c Binary files /dev/null and b/Assets/GoogleVR/Demos/Scenes/PermissionsDemo.unity differ diff --git a/Assets/GoogleVR/Demos/Scenes/PermissionsDemo.unity.meta b/Assets/GoogleVR/Demos/Scenes/PermissionsDemo.unity.meta new file mode 100644 index 0000000..8f03fad --- /dev/null +++ b/Assets/GoogleVR/Demos/Scenes/PermissionsDemo.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d5572a3735414cc9ad53b169fe2c7e8 +timeCreated: 1462053048 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scenes/ScrollingUIDemo.unity b/Assets/GoogleVR/Demos/Scenes/ScrollingUIDemo.unity new file mode 100644 index 0000000..7c688f9 Binary files /dev/null and b/Assets/GoogleVR/Demos/Scenes/ScrollingUIDemo.unity differ diff --git a/Assets/GoogleVR/Demos/Scenes/ScrollingUIDemo.unity.meta b/Assets/GoogleVR/Demos/Scenes/ScrollingUIDemo.unity.meta new file mode 100644 index 0000000..8da12ed --- /dev/null +++ b/Assets/GoogleVR/Demos/Scenes/ScrollingUIDemo.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6fba7be6829dc4f879b3d4c41cce6ab7 +timeCreated: 1473206139 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scenes/VideoDemo.unity b/Assets/GoogleVR/Demos/Scenes/VideoDemo.unity new file mode 100644 index 0000000..d953568 Binary files /dev/null and b/Assets/GoogleVR/Demos/Scenes/VideoDemo.unity differ diff --git a/Assets/GoogleVR/Demos/Scenes/VideoDemo.unity.meta b/Assets/GoogleVR/Demos/Scenes/VideoDemo.unity.meta new file mode 100644 index 0000000..f229b57 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scenes/VideoDemo.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c79d901ffb34f428eadaa3a7269a6c7c +timeCreated: 1479427319 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts.meta b/Assets/GoogleVR/Demos/Scripts.meta new file mode 100644 index 0000000..323c508 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 388cdc51b5a45405999224aeec93edbc +folderAsset: yes +timeCreated: 1479426561 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/DemoInputManager.cs b/Assets/GoogleVR/Demos/Scripts/DemoInputManager.cs new file mode 100644 index 0000000..3b9bb99 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/DemoInputManager.cs @@ -0,0 +1,297 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using System; + +public class DemoInputManager : MonoBehaviour { +// Build for iOS, or for a pre-native integration Unity version, for Android, and running on-device. +#if UNITY_IOS || (!UNITY_HAS_GOOGLEVR && !UNITY_5_6_OR_NEWER && UNITY_ANDROID && !UNITY_EDITOR) + void Start() { + GameObject messageCanvas = transform.Find("MessageCanvas").gameObject; + messageCanvas.SetActive(false); + } +#endif // UNITY_IOS || (!UNITY_HAS_GOOGLEVR && !UNITY_5_6_OR_NEWER && UNITY_ANDROID && !UNITY_EDITOR) + +// Cardboard / Daydream switching does not apply to pre-native integration versions +// of Unity, or platforms other than Android, since those are Cardboard-only. +#if UNITY_HAS_GOOGLEVR && UNITY_ANDROID + private const string MESSAGE_CANVAS_NAME = "MessageCanvas"; + private const string MESSAGE_TEXT_NAME = "MessageText"; + private const string LASER_GAMEOBJECT_NAME = "Laser"; + + private const string CONTROLLER_CONNECTING_MESSAGE = "Controller connecting..."; + private const string CONTROLLER_DISCONNECTED_MESSAGE = "Controller disconnected"; + private const string CONTROLLER_SCANNING_MESSAGE = "Controller scanning..."; + private const string EMPTY_VR_SDK_WARNING_MESSAGE = + "Please enable a VR SDK in Player Settings > Virtual Reality Supported\n"; + + // Java class, method, and field constants. + private const int ANDROID_MIN_DAYDREAM_API = 24; + private const string FIELD_SDK_INT = "SDK_INT"; + private const string PACKAGE_BUILD_VERSION = "android.os.Build$VERSION"; + private const string PACKAGE_DAYDREAM_API_CLASS = "com.google.vr.ndk.base.DaydreamApi"; + private const string METHOD_IS_DAYDREAM_READY = "isDaydreamReadyPlatform"; + + private bool isDaydream = false; + + public static string CARDBOARD_DEVICE_NAME = "cardboard"; + public static string DAYDREAM_DEVICE_NAME = "daydream"; + + [Tooltip("Reference to GvrControllerMain")] + public GameObject controllerMain; + public static string CONTROLLER_MAIN_PROP_NAME = "controllerMain"; + + [Tooltip("Reference to GvrControllerPointer")] + public GameObject controllerPointer; + public static string CONTROLLER_POINTER_PROP_NAME = "controllerPointer"; + + [Tooltip("Reference to GvrReticlePointer")] + public GameObject reticlePointer; + public static string RETICLE_POINTER_PROP_NAME = "reticlePointer"; + + public GameObject messageCanvas; + public Text messageText; + +#if UNITY_EDITOR + public enum EmulatedPlatformType { + Daydream, + Cardboard + } + // Cardboard by default if there is no native integration. + [Tooltip("Emulated GVR Platform")] + public EmulatedPlatformType gvrEmulatedPlatformType = EmulatedPlatformType.Daydream; + public static string EMULATED_PLATFORM_PROP_NAME = "gvrEmulatedPlatformType"; +#else + private GvrSettings.ViewerPlatformType viewerPlatform; +#endif // UNITY_EDITOR + + void Start() { + if (messageCanvas == null) { + messageCanvas = transform.Find(MESSAGE_CANVAS_NAME).gameObject; + if (messageCanvas != null) { + messageText = messageCanvas.transform.Find(MESSAGE_TEXT_NAME).GetComponent(); + } + } +#if UNITY_EDITOR + if (playerSettingsHasDaydream() || playerSettingsHasCardboard()) { + // The list is populated with valid VR SDK(s), pick the first one. + gvrEmulatedPlatformType = + (UnityEngine.VR.VRSettings.supportedDevices[0] == DAYDREAM_DEVICE_NAME) ? + EmulatedPlatformType.Daydream : + EmulatedPlatformType.Cardboard; + } + isDaydream = (gvrEmulatedPlatformType == EmulatedPlatformType.Daydream); +#else + viewerPlatform = GvrSettings.ViewerPlatform; + // First loaded device in Player Settings. + string vrDeviceName = UnityEngine.VR.VRSettings.loadedDeviceName; + if (vrDeviceName != CARDBOARD_DEVICE_NAME && + vrDeviceName != DAYDREAM_DEVICE_NAME) { + Debug.LogErrorFormat("Loaded device was '{0}', must be one of '{1}' or '{2}'", + vrDeviceName, DAYDREAM_DEVICE_NAME, CARDBOARD_DEVICE_NAME); + return; + } + + // On a non-Daydream ready phone, fall back to Cardboard if it's present in the list of + // enabled VR SDKs. + // On a Daydream-ready phone, go into Cardboard mode if it's the currently-paired viewer. + if ((!IsDeviceDaydreamReady() && playerSettingsHasCardboard()) || + (IsDeviceDaydreamReady() && playerSettingsHasCardboard() && + GvrSettings.ViewerPlatform == GvrSettings.ViewerPlatformType.Cardboard)) { + vrDeviceName = CARDBOARD_DEVICE_NAME; + } + isDaydream = (vrDeviceName == DAYDREAM_DEVICE_NAME); +#endif // UNITY_EDITOR + SetVRInputMechanism(); + } + + // Runtime switching enabled only in-editor. + void Update() { + UpdateStatusMessage(); + +#if UNITY_EDITOR + UpdateEmulatedPlatformIfPlayerSettingsChanged(); + if ((isDaydream && gvrEmulatedPlatformType == EmulatedPlatformType.Daydream) || + (!isDaydream && gvrEmulatedPlatformType == EmulatedPlatformType.Cardboard)) { + return; + } + isDaydream = (gvrEmulatedPlatformType == EmulatedPlatformType.Daydream); + SetVRInputMechanism(); +#else + // Viewer type switched at runtime. + if (!IsDeviceDaydreamReady() || viewerPlatform == GvrSettings.ViewerPlatform) { + return; + } + isDaydream = (GvrSettings.ViewerPlatform == GvrSettings.ViewerPlatformType.Daydream); + viewerPlatform = GvrSettings.ViewerPlatform; + SetVRInputMechanism(); +#endif // UNITY_EDITOR + } + + public bool IsCurrentlyDaydream() { + return isDaydream; + } + + public static bool playerSettingsHasDaydream() { + string[] playerSettingsVrSdks = UnityEngine.VR.VRSettings.supportedDevices; + return Array.Exists(playerSettingsVrSdks, + element => element.Equals(DemoInputManager.DAYDREAM_DEVICE_NAME)); + } + + public static bool playerSettingsHasCardboard() { + string[] playerSettingsVrSdks = UnityEngine.VR.VRSettings.supportedDevices; + return Array.Exists(playerSettingsVrSdks, + element => element.Equals(DemoInputManager.CARDBOARD_DEVICE_NAME)); + } + +#if UNITY_EDITOR + private void UpdateEmulatedPlatformIfPlayerSettingsChanged() { + if (!playerSettingsHasDaydream() && !playerSettingsHasCardboard()) { + return; + } + + // Player Settings > VR SDK list may have changed at runtime. The emulated platform + // may not have been manually updated if that's the case. + if (gvrEmulatedPlatformType == EmulatedPlatformType.Daydream && + !playerSettingsHasDaydream()) { + gvrEmulatedPlatformType = EmulatedPlatformType.Cardboard; + } else if (gvrEmulatedPlatformType == EmulatedPlatformType.Cardboard && + !playerSettingsHasCardboard()) { + gvrEmulatedPlatformType = EmulatedPlatformType.Daydream; + } + } +#endif // UNITY_EDITOR + +#if !UNITY_EDITOR // Running on an Android device. + private static bool IsDeviceDaydreamReady() { + // Check API level. + using (var version = new AndroidJavaClass(PACKAGE_BUILD_VERSION)) { + if (version.GetStatic(FIELD_SDK_INT) < ANDROID_MIN_DAYDREAM_API) { + return false; + } + } + // API level > 24, check whether the device is Daydream-ready.. + AndroidJavaObject androidActivity = null; + try { + androidActivity = GvrActivityHelper.GetActivity(); + } catch (AndroidJavaException e) { + Debug.LogError("Exception while connecting to the Activity: " + e); + return false; + } + AndroidJavaClass daydreamApiClass = new AndroidJavaClass(PACKAGE_DAYDREAM_API_CLASS); + if (daydreamApiClass == null || androidActivity == null) { + return false; + } + return daydreamApiClass.CallStatic(METHOD_IS_DAYDREAM_READY, androidActivity); + } +#endif // !UNITY_EDITOR + + private void UpdateStatusMessage() { + if (messageText == null || messageCanvas == null) { + return; + } + bool isVrSdkListEmpty = !playerSettingsHasCardboard() && !playerSettingsHasDaydream(); + if (!isDaydream) { + if (messageCanvas.activeSelf) { + messageText.text = EMPTY_VR_SDK_WARNING_MESSAGE; + messageCanvas.SetActive(false || isVrSdkListEmpty); + } + return; + } + + string vrSdkWarningMessage = isVrSdkListEmpty ? EMPTY_VR_SDK_WARNING_MESSAGE : ""; + string controllerMessage = ""; + GvrPointerGraphicRaycaster graphicRaycaster = + messageCanvas.GetComponent(); + // This is an example of how to process the controller's state to display a status message. + switch (GvrController.State) { + case GvrConnectionState.Connected: + break; + case GvrConnectionState.Disconnected: + controllerMessage = CONTROLLER_DISCONNECTED_MESSAGE; + messageText.color = Color.white; + break; + case GvrConnectionState.Scanning: + controllerMessage = CONTROLLER_SCANNING_MESSAGE; + messageText.color = Color.cyan; + break; + case GvrConnectionState.Connecting: + controllerMessage = CONTROLLER_CONNECTING_MESSAGE; + messageText.color = Color.yellow; + break; + case GvrConnectionState.Error: + controllerMessage = "ERROR: " + GvrController.ErrorDetails; + messageText.color = Color.red; + break; + default: + // Shouldn't happen. + Debug.LogError("Invalid controller state: " + GvrController.State); + break; + } + messageText.text = string.Format("{0}{1}", vrSdkWarningMessage, controllerMessage); + if (graphicRaycaster != null) { + graphicRaycaster.enabled = + !isVrSdkListEmpty || GvrController.State != GvrConnectionState.Connected; + } + messageCanvas.SetActive(isVrSdkListEmpty || + (GvrController.State != GvrConnectionState.Connected)); + } + + private void SetVRInputMechanism() { + SetGazeInputActive(!isDaydream); + SetControllerInputActive(isDaydream); + } + + private void SetGazeInputActive(bool active) { + if (reticlePointer == null) { + return; + } + reticlePointer.SetActive(active); + + // Update the pointer type only if this is currently activated. + if (!active) { + return; + } + + GvrReticlePointer pointer = + reticlePointer.GetComponent(); + if (pointer != null) { + pointer.SetAsMainPointer(); + } + } + + private void SetControllerInputActive(bool active) { + if (controllerMain != null) { + controllerMain.SetActive(active); + } + if (controllerPointer == null) { + return; + } + controllerPointer.SetActive(active); + + // Update the pointer type only if this is currently activated. + if (!active) { + return; + } + GvrLaserPointer pointer = + controllerPointer.GetComponentInChildren(true); + if (pointer != null) { + pointer.SetAsMainPointer(); + } + } + +#endif // UNITY_HAS_GOOGLEVR && UNITY_ANDROID +} diff --git a/Assets/GoogleVR/Demos/Scripts/DemoInputManager.cs.meta b/Assets/GoogleVR/Demos/Scripts/DemoInputManager.cs.meta new file mode 100644 index 0000000..1dca2ad --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/DemoInputManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ddd25f1308577456cbaa207901961126 +timeCreated: 1479273440 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/DemoSceneManager.cs b/Assets/GoogleVR/Demos/Scripts/DemoSceneManager.cs new file mode 100644 index 0000000..6dc0306 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/DemoSceneManager.cs @@ -0,0 +1,29 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +// Ensures correct app and scene setup. +public class DemoSceneManager : MonoBehaviour { + void Start() { + Input.backButtonLeavesApp = true; + } + + void Update() { + // Exit when (X) is tapped. + if (Input.GetKeyDown(KeyCode.Escape)) { + Application.Quit(); + } + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/DemoSceneManager.cs.meta b/Assets/GoogleVR/Demos/Scripts/DemoSceneManager.cs.meta new file mode 100644 index 0000000..74bf15e --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/DemoSceneManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1bec9ea3efe7849ffae666549aca3cad +timeCreated: 1485218787 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/GVRDemo.meta b/Assets/GoogleVR/Demos/Scripts/GVRDemo.meta new file mode 100644 index 0000000..03deca9 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/GVRDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b8da0c492ae2543a2a0198a7187320c0 +folderAsset: yes +timeCreated: 1479426567 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/GVRDemo/GVRDemoManager.cs b/Assets/GoogleVR/Demos/Scripts/GVRDemo/GVRDemoManager.cs new file mode 100644 index 0000000..2d4f1fb --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/GVRDemo/GVRDemoManager.cs @@ -0,0 +1,47 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +public class GVRDemoManager : MonoBehaviour { + public GameObject m_launchVrHomeButton; + public DemoInputManager m_demoInputManager; + + void Start() { +#if !UNITY_HAS_GOOGLEVR || !UNITY_ANDROID || UNITY_EDITOR + if (m_launchVrHomeButton == null) { + return; + } + m_launchVrHomeButton.SetActive(false); +#else + GvrDaydreamApi.Create(); +#endif // !UNITY_HAS_GOOGLEVR || !UNITY_ANDROID || UNITY_EDITOR + } + +#if UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + void Update() { + if (m_launchVrHomeButton == null || m_demoInputManager == null) { + return; + } + m_launchVrHomeButton.SetActive(m_demoInputManager.IsCurrentlyDaydream()); + } +#endif // UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + + public void LaunchVrHome() { +#if UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + GvrDaydreamApi.LaunchVrHome(); +#endif // UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/GVRDemo/GVRDemoManager.cs.meta b/Assets/GoogleVR/Demos/Scripts/GVRDemo/GVRDemoManager.cs.meta new file mode 100644 index 0000000..cc0a8a5 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/GVRDemo/GVRDemoManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ae2d286fc7c3e427bbde238c0ebb970b +timeCreated: 1490659306 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/GVRDemo/Teleport.cs b/Assets/GoogleVR/Demos/Scripts/GVRDemo/Teleport.cs new file mode 100644 index 0000000..71277dc --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/GVRDemo/Teleport.cs @@ -0,0 +1,61 @@ +// Copyright 2014 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +using System.Collections; + +[RequireComponent(typeof(Collider))] +public class Teleport : MonoBehaviour { + private Vector3 startingPosition; + + public Material inactiveMaterial; + public Material gazedAtMaterial; + + void Start() { + startingPosition = transform.localPosition; + SetGazedAt(false); + } + + public void SetGazedAt(bool gazedAt) { + if (inactiveMaterial != null && gazedAtMaterial != null) { + GetComponent().material = gazedAt ? gazedAtMaterial : inactiveMaterial; + return; + } + GetComponent().material.color = gazedAt ? Color.green : Color.red; + } + + public void Reset() { + transform.localPosition = startingPosition; + } + + public void Recenter() { +#if !UNITY_EDITOR + GvrCardboardHelpers.Recenter(); +#else + GvrEditorEmulator emulator = FindObjectOfType(); + if (emulator == null) { + return; + } + emulator.Recenter(); +#endif // !UNITY_EDITOR + } + + public void TeleportRandomly() { + Vector3 direction = Random.onUnitSphere; + direction.y = Mathf.Clamp(direction.y, 0.5f, 1f); + float distance = 2 * Random.value + 1.5f; + transform.localPosition = direction * distance; + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/GVRDemo/Teleport.cs.meta b/Assets/GoogleVR/Demos/Scripts/GVRDemo/Teleport.cs.meta new file mode 100644 index 0000000..2ef2988 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/GVRDemo/Teleport.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6d9412aff759420192d8dcf33f969bb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/GoogleVR/Demos/Scripts/KeyboardDemo.meta b/Assets/GoogleVR/Demos/Scripts/KeyboardDemo.meta new file mode 100644 index 0000000..4430139 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/KeyboardDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 28bcc019cfb364ff4a611197fd324537 +folderAsset: yes +timeCreated: 1478818536 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/KeyboardDemo/KeyboardDelegateExample.cs b/Assets/GoogleVR/Demos/Scripts/KeyboardDemo/KeyboardDelegateExample.cs new file mode 100644 index 0000000..cfeee2e --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/KeyboardDemo/KeyboardDelegateExample.cs @@ -0,0 +1,95 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using System; + +public class KeyboardDelegateExample : GvrKeyboardDelegateBase { + + public Text KeyboardText; + public Canvas UpdateCanvas; + + public override event EventHandler KeyboardHidden; + public override event EventHandler KeyboardShown; + + private const string DD_KEYBOARD_NOT_INSTALLED_MSG = "Please update the Daydream Keyboard app from the Play Store."; + + void Awake() { + if (UpdateCanvas != null) { + UpdateCanvas.gameObject.SetActive(false); + } + } + + public override void OnKeyboardShow() { + Debug.Log("Calling Keyboard Show Delegate!"); + EventHandler handler = KeyboardShown; + if (handler != null) { + handler(this, null); + } + } + + public override void OnKeyboardHide() { + Debug.Log("Calling Keyboard Hide Delegate!"); + EventHandler handler = KeyboardHidden; + if (handler != null) { + handler(this, null); + } + } + + public override void OnKeyboardUpdate(string text) { + if (KeyboardText != null) { + KeyboardText.text = text; + } else { + Debug.Log("Keyboard text is null...."); + } + } + + public override void OnKeyboardEnterPressed(string text) { + Debug.Log("Calling Keyboard Enter Pressed Delegate: " + text); + } + + public override void OnKeyboardError(GvrKeyboardError errCode) { + Debug.Log("Calling Keyboard Error Delegate: "); + switch(errCode) { + case GvrKeyboardError.UNKNOWN: + Debug.Log("Unknown Error"); + break; + case GvrKeyboardError.SERVICE_NOT_CONNECTED: + Debug.Log("Service not connected"); + break; + case GvrKeyboardError.NO_LOCALES_FOUND: + Debug.Log("No locales found"); + break; + case GvrKeyboardError.SDK_LOAD_FAILED: + Debug.LogWarning(DD_KEYBOARD_NOT_INSTALLED_MSG); + if (KeyboardText != null) { + KeyboardText.text = DD_KEYBOARD_NOT_INSTALLED_MSG; + } + if (UpdateCanvas != null) { + UpdateCanvas.gameObject.SetActive(true); + } + break; + } + } + + public void LaunchPlayStore() { + if (UpdateCanvas != null) { + UpdateCanvas.gameObject.SetActive(false); +#if UNITY_ANDROID || UNITY_EDITOR + GvrKeyboardIntent.Instance.LaunchPlayStore(); +#endif + } + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/KeyboardDemo/KeyboardDelegateExample.cs.meta b/Assets/GoogleVR/Demos/Scripts/KeyboardDemo/KeyboardDelegateExample.cs.meta new file mode 100644 index 0000000..4351d80 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/KeyboardDemo/KeyboardDelegateExample.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ff12693eea0a446d0a2183f2ffe9c711 +timeCreated: 1478820263 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/PermissionsDemo.meta b/Assets/GoogleVR/Demos/Scripts/PermissionsDemo.meta new file mode 100644 index 0000000..8094421 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/PermissionsDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 34618aef1cb8e43378c9777f103319ea +folderAsset: yes +timeCreated: 1479427139 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/PermissionsDemo/PermissionsFlowManager.cs b/Assets/GoogleVR/Demos/Scripts/PermissionsDemo/PermissionsFlowManager.cs new file mode 100644 index 0000000..c1e48ac --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/PermissionsDemo/PermissionsFlowManager.cs @@ -0,0 +1,74 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0(the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +using UnityEngine; +using System.Collections.Generic; +using UnityEngine.UI; + +// Manages the permission flow in PermissionsDemo. +#if UNITY_ANDROID || UNITY_EDITOR +public class PermissionsFlowManager : MonoBehaviour { + private static string[] permissionNames = { "android.permission.READ_EXTERNAL_STORAGE" }; + + public Text statusText; + + private static List permissionList = + new List(); + + public void CheckPermission() { + statusText.text = "Checking permission...."; + GvrPermissionsRequester permissionRequester = GvrPermissionsRequester.Instance; + if (permissionRequester != null) { + bool granted = permissionRequester.IsPermissionGranted(permissionNames[0]); + statusText.text = permissionNames[0] + ": " + (granted ? "Granted" : "Denied"); + } else { + statusText.text = "Permission requester cannot be initialized."; + } + } + + public void RequestPermissions() { + if (statusText != null) { + statusText.text = "Requesting permission...."; + } + GvrPermissionsRequester permissionRequester = GvrPermissionsRequester.Instance; + if (permissionRequester == null) { + statusText.text = "Permission requester cannot be initialized."; + return; + } + Debug.Log("Permissions.RequestPermisions: Check if permission has been granted"); + if (!permissionRequester.IsPermissionGranted(permissionNames[0])) { + Debug.Log("Permissions.RequestPermisions: Permission has not been previously granted"); + if (permissionRequester.ShouldShowRational(permissionNames[0])) { + statusText.text = "This game needs to access external storage. Please grant permission when prompted."; + statusText.color = Color.red; + } + permissionRequester.RequestPermissions(permissionNames, + (GvrPermissionsRequester.PermissionStatus[] permissionResults) => + { + statusText.color = Color.cyan; + permissionList.Clear(); + permissionList.AddRange(permissionResults); + string msg = ""; + foreach (GvrPermissionsRequester.PermissionStatus p in permissionList) { + msg += p.Name + ": " + (p.Granted ? "Granted" : "Denied") + "\n"; + } + statusText.text = msg; + }); + } + else { + statusText.text = "ExternalStorage permission already granted!"; + } + } +} +#endif // (UNITY_ANDROID || UNITY_EDITOR) diff --git a/Assets/GoogleVR/Demos/Scripts/PermissionsDemo/PermissionsFlowManager.cs.meta b/Assets/GoogleVR/Demos/Scripts/PermissionsDemo/PermissionsFlowManager.cs.meta new file mode 100644 index 0000000..fb92f39 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/PermissionsDemo/PermissionsFlowManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4e8df902e7cb54f57bd1492b46fbe33d +timeCreated: 1477353933 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo.meta new file mode 100644 index 0000000..d8692b2 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 08ee29a1d833d114b9568a93414f6bdd +folderAsset: yes +timeCreated: 1465846778 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Editor.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Editor.meta new file mode 100644 index 0000000..74416f1 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c2b000adb274840caa6db8db08d2767e +folderAsset: yes +timeCreated: 1481673779 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Editor/PagedScrollbarEditor.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Editor/PagedScrollbarEditor.cs new file mode 100644 index 0000000..2abf375 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Editor/PagedScrollbarEditor.cs @@ -0,0 +1,38 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEditor; +using UnityEditor.UI; +using System.Collections; + +[CustomEditor(typeof(PagedScrollBar))] +public class PagedScrollbarEditor : ScrollbarEditor { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private SerializedProperty pagedScrollRect; + + protected override void OnEnable() { + base.OnEnable(); + pagedScrollRect = serializedObject.FindProperty(PagedScrollBar.PAGED_SCROLL_RECT_PROP_NAME); + } + + public override void OnInspectorGUI() { + serializedObject.Update(); + EditorGUILayout.PropertyField(pagedScrollRect); + serializedObject.ApplyModifiedProperties(); + + base.OnInspectorGUI(); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Editor/PagedScrollbarEditor.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Editor/PagedScrollbarEditor.cs.meta new file mode 100644 index 0000000..54c7768 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Editor/PagedScrollbarEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b317abbf384384356a25c21e04d7a07d +timeCreated: 1481673788 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling.meta new file mode 100644 index 0000000..7c5c8b9 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d228599ceaac14dc4be511a93750d9ba +folderAsset: yes +timeCreated: 1475020732 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/JumpToPage.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/JumpToPage.cs new file mode 100644 index 0000000..b024084 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/JumpToPage.cs @@ -0,0 +1,123 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using System.Collections; + +/// Jumps to a specified page in a PagedScrollRect when it is clicked on. +public class JumpToPage : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + [Tooltip("Destination page.")] + public RectTransform page; + + [Tooltip("The transform to modify when the pointer is hovering over this script.")] + public RectTransform hoverTransform; + + [Range(0.01f, 0.5f)] + [Tooltip("Tile forward distance when the pointer over the tile.")] + public float hoverPositionZMeters = 0.225f; + + [Range(1.0f, 10.0f)] + [Tooltip("Speed used for lerping the rotation/scale/position of the tile.")] + public float interpolationSpeed = 8.0f; + + private Graphic graphic; + private float desiredPositionZ; + + /// The scroll rect that owns the destination page. + public PagedScrollRect PageOwnerScrollRect { + get { + if (cachedPagedScrollRect != null) { + return cachedPagedScrollRect; + } + + if (page != null) { + cachedPagedScrollRect = page.GetComponentInParent(); + } + + return cachedPagedScrollRect; + } + } + private PagedScrollRect cachedPagedScrollRect; + + public bool CanClick { + get { + if (PageOwnerScrollRect != null) { + bool isActivePage = PageOwnerScrollRect.ActivePage == page; + return !PageOwnerScrollRect.IsMoving && !isActivePage; + } + + return false; + } + } + + void Awake() { + graphic = GetComponent(); + if (graphic == null) { + Debug.LogWarning("Graphic is null, won't be able to click on JumpToPage."); + } + } + + void OnEnable() { + cachedPagedScrollRect = null; + } + + void OnDisable() { + cachedPagedScrollRect = null; + } + + void Update() { + if (graphic != null) { + graphic.raycastTarget = CanClick; + } + + float finalDesiredPositionZ = desiredPositionZ; + if (!CanClick) { + finalDesiredPositionZ = 0.0f; + } + + if (hoverTransform != null && finalDesiredPositionZ != hoverTransform.localPosition.z) { + Vector3 localPosition = hoverTransform.localPosition; + Vector3 desiredPosition = localPosition; + desiredPosition.z = finalDesiredPositionZ; + localPosition = Vector3.Lerp(localPosition, desiredPosition, Time.deltaTime * interpolationSpeed); + hoverTransform.localPosition = localPosition; + } + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + public void OnPointerEnter(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + // Since canvas graphics render facing the negative Z direction, + // negative z is the forward direction for a canvas element. + float metersToCanvasScale = GvrUIHelpers.GetMetersToCanvasScale(page); + desiredPositionZ = -hoverPositionZMeters / metersToCanvasScale; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public void OnPointerExit(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + desiredPositionZ = 0.0f; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public void OnPointerClick(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + if (CanClick) { + PageOwnerScrollRect.SnapToVisiblePage(page); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/JumpToPage.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/JumpToPage.cs.meta new file mode 100644 index 0000000..a35b7b4 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/JumpToPage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 12a1c3242abf449bc9a04b3538e9d3b5 +timeCreated: 1481676642 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders.meta new file mode 100644 index 0000000..4990300 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ec6a9eb5488994b0d837a1dad9aa1ad8 +folderAsset: yes +timeCreated: 1476817749 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/ChildrenPageProvider.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/ChildrenPageProvider.cs new file mode 100644 index 0000000..13ba1f1 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/ChildrenPageProvider.cs @@ -0,0 +1,72 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +/// Provides pages to a PagedScrollRect. +/// +/// Treats each child of the scroll rect as a page. The pages are ordered +/// by their sibling index in the scene hierarchy. +/// +/// Instead of allocating/deallocating pages, they are added and removed simply by +/// setting them active/inactive. +/// +public class ChildrenPageProvider : MonoBehaviour, IPageProvider { + /// The pages, in order. + /// The active page is moved to be the last sibling after the scroll rect + /// is initialized, so we need to store the pages in + /// a seprate list to maintain the correct order. + private List pages = new List(); + + /// The spacing between pages in local coordinates. + [Tooltip("The spacing between pages.")] + public float spacing = 2000.0f; + + public float GetSpacing() { + return spacing; + } + + public int GetNumberOfPages() { + return pages.Count; + } + + public RectTransform ProvidePage(int index) { + Transform pageTransform = pages[index]; + RectTransform page = pageTransform.GetComponent(); + + Vector2 middleAnchor = new Vector2(0.5f, 0.5f); + page.anchorMax = middleAnchor; + page.anchorMin = middleAnchor; + + pageTransform.gameObject.SetActive(true); + + return page; + } + + public void RemovePage(int index, RectTransform page) { + page.gameObject.SetActive(false); + } + + void Awake() { + /// Disable all the pages to make sure + /// none of them are visible initially before + /// scrolling. + foreach (Transform page in transform) { + page.gameObject.SetActive(false); + pages.Add(page); + } + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/ChildrenPageProvider.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/ChildrenPageProvider.cs.meta new file mode 100644 index 0000000..918147e --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/ChildrenPageProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c72accf6cbda24d54b10c062b49302db +timeCreated: 1472506885 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/IPageProvider.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/IPageProvider.cs new file mode 100644 index 0000000..41be042 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/IPageProvider.cs @@ -0,0 +1,53 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// This script is an in interface that provides content pages +/// for a PagedScrollRect (Paginated Scrolling) +/// +/// The derived class must inherit from MonoBehaviour and be placed on the +/// same object as PagedScrollRect +/// +/// Two generic implementations are included: +/// +/// ChildrenPageProvider - This implementation automatically uses the children of the +/// PagedScrollRect as the pages. The pages are in order of their SiblingIndex in the scene. +/// This is the simplest way to do PaginatedScrolling. +/// +/// PrefabPageProvider - This implementation takes a serialized list of prefabs that are +/// dynamically instantiated/destroyed as the user scrolls through the ScrollRect. +/// +/// Here are some example use cases for a custom implementation: +/// 1. Page content is provided asynchronously by a network call. +/// 2. Page content utilizes pooling/object re-use to optimize memory/allocations. +/// 3. Page content could be data-driven by ScriptableObjects or some other data file. +/// +public interface IPageProvider { + /// Returns a float that represents the amount of space between pages + /// in coordinates local to the PagedScrollRect. + float GetSpacing(); + + /// Returns the total number of pages. + int GetNumberOfPages(); + + /// Returns the appropriate page to display at the index passed in. + /// This could be implemented by allocating the page, or by just showing it. + RectTransform ProvidePage(int index); + + /// Removes the page passed in, as it has been scrolled out of view. + /// This could be implemented by destroying the page, or by just hiding it. + void RemovePage(int index, RectTransform page); +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/IPageProvider.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/IPageProvider.cs.meta new file mode 100644 index 0000000..e3a3799 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/IPageProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b6c5a94baab204e19b11089e79af0fa5 +timeCreated: 1472494392 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PooledPageProvider.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PooledPageProvider.cs new file mode 100644 index 0000000..444d78a --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PooledPageProvider.cs @@ -0,0 +1,82 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.Assertions; +using System.Collections; + +/// Example page provider that shows how to use Object Pooling to +/// re-use pages instead of re-allocating them as the player scrolls. +/// A full description of Object Pooling can be found at https://en.wikipedia.org/wiki/Object_pool_pattern. +/// Doing this will significantly improve performance by preventing garbage collection and +/// reducing time spent allocating memory. +public class PooledPageProvider : MonoBehaviour, IPageProvider { + [Tooltip("The prefab for each page.")] + public GameObject pagePrefab; + + /// The spacing between pages in local coordinates. + [Tooltip("The spacing between pages.")] + public float spacing = 2000.0f; + + [SerializeField] + [Tooltip("The number of pages.")] + [Range(1, 200)] + private int NumPages = 100; + + private string prefabName; + + private GameObjectPool Pool { + get { + ObjectPoolManager poolManager = ObjectPoolManager.Instance; + Assert.IsNotNull(poolManager); + + GameObjectPool pool = poolManager.GetPool(prefabName); + + if (pool == null) { + pool = new GameObjectPool(pagePrefab, 2); + poolManager.AddPool(prefabName, pool); + } + + return pool; + } + } + + void Awake() { + Assert.IsNotNull(pagePrefab); + prefabName = pagePrefab.name; + } + + public float GetSpacing() { + return spacing; + } + + public int GetNumberOfPages() { + return NumPages; + } + + public RectTransform ProvidePage(int index) { + GameObject pageTransform = Pool.Borrow(); + RectTransform page = pageTransform.GetComponent(); + + Vector2 middleAnchor = new Vector2(0.5f, 0.5f); + page.anchorMax = middleAnchor; + page.anchorMin = middleAnchor; + + return page; + } + + public void RemovePage(int index, RectTransform page) { + Pool.Return(page.gameObject); + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PooledPageProvider.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PooledPageProvider.cs.meta new file mode 100644 index 0000000..bd26669 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PooledPageProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dc1be33c2340b49b18cb74357e0bbfcd +timeCreated: 1489708929 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PrefabPageProvider.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PrefabPageProvider.cs new file mode 100644 index 0000000..e925948 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PrefabPageProvider.cs @@ -0,0 +1,50 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +public class PrefabPageProvider : MonoBehaviour, IPageProvider { + /// The prefabs for each page. + /// The pages are ordered based on the order of this array. + [Tooltip("The prefabs for each page.")] + public GameObject[] prefabs; + + /// The spacing between pages in local coordinates. + [Tooltip("The spacing between pages.")] + public float spacing = 2000.0f; + + public float GetSpacing() { + return spacing; + } + + public int GetNumberOfPages() { + return prefabs.Length; + } + + public RectTransform ProvidePage(int index) { + GameObject pageTransform = GameObject.Instantiate(prefabs[index]); + RectTransform page = pageTransform.GetComponent(); + + Vector2 middleAnchor = new Vector2(0.5f, 0.5f); + page.anchorMax = middleAnchor; + page.anchorMin = middleAnchor; + + return page; + } + + public void RemovePage(int index, RectTransform page) { + GameObject.Destroy(page.gameObject); + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PrefabPageProvider.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PrefabPageProvider.cs.meta new file mode 100644 index 0000000..a57b6bf --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PageProviders/PrefabPageProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b1374e4769ab841f0868774620e9340e +timeCreated: 1472494593 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollBar.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollBar.cs new file mode 100644 index 0000000..c22b512 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollBar.cs @@ -0,0 +1,91 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using System.Collections; + +/// Extension of Unity's built-in Scrollbar that integrates with PagedScrollRect. +/// Dragging the scrollbar will control the PagedScrollRect. +/// The Scrollbar will also automatically update when the PagedScrollRect +/// is scrolled directly. +public class PagedScrollBar : Scrollbar { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + public const string PAGED_SCROLL_RECT_PROP_NAME = "pagedScrollRect"; + + [SerializeField] + private PagedScrollRect pagedScrollRect; + + private bool isDragging = false; + + private const float LERP_SPEED = 12.0f; + + private bool IsDragging { + get { + return isDragging; + } + set { + if (isDragging == value) { + return; + } + + isDragging = value; + + if (!isDragging && pagedScrollRect != null) { + pagedScrollRect.SetScrollOffsetOverride(null); + } + } + } + + void Update() { + if (pagedScrollRect == null) { + Debug.LogWarning("PagedScrollRect must be set."); + return; + } + + + // Update the size of the handle in case the PageCount has changed. + float desiredSize = 1.0f / pagedScrollRect.PageCount; + if (size != desiredSize) { + size = desiredSize; + } + + if (IsDragging) { + float offset = value * (pagedScrollRect.PageCount - 1) * pagedScrollRect.PageSpacing; + pagedScrollRect.SetScrollOffsetOverride(offset); + } else { + // If the PageCount is 1 make sure we don't divide by zero by just setting the value to 0 directly. + if (pagedScrollRect.PageCount == 1) { + value = 0.0f; + } else { + // Calculate the desired a value of the scrollbar. + float desiredValue = (float) pagedScrollRect.ActivePageIndex / (pagedScrollRect.PageCount - 1); + + // Animate towards the desired value. + value = Mathf.Lerp(value, desiredValue, Time.deltaTime * LERP_SPEED); + } + } + } + + public override void OnPointerDown(UnityEngine.EventSystems.PointerEventData eventData) { + base.OnPointerDown(eventData); + IsDragging = true; + } + + public override void OnPointerUp(UnityEngine.EventSystems.PointerEventData eventData) { + base.OnPointerUp(eventData); + IsDragging = false; + } +#endif // UNITY_HAS_GOOGLEVR &&(UNITY_ANDROID || UNITY_EDITOR +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollBar.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollBar.cs.meta new file mode 100644 index 0000000..7517dfa --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollBar.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 998e7801d843d29468b357afb447a8fb +timeCreated: 1475104891 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollRect.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollRect.cs new file mode 100644 index 0000000..01ec883 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollRect.cs @@ -0,0 +1,804 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine.Events; + +public class PagedScrollRect : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + /// Allows you to control how sensitive the paged + /// Scroll rect is to events from the gvr controller. + [Tooltip("The sensitivity to gvr touch events.")] + public float ScrollSensitivity = 1.0f; + + /// The speed that the scroll rect snaps to a page + /// When the gvr touchpad is released. + [Tooltip("The speed that the rect snaps to a page.")] + public float SnapSpeed = 6.0f; + + /// The index of the page to start the scroll rect on. + /// Will changes the local position of the transform on Start. + [Tooltip("The index of the page to start the scroll rect on.")] + public int StartPage = 0; + + /// If true, the user can scroll continuously in any direction + /// and the pages will loop. + [Tooltip("Determines if the pages loop when scrolling.")] + public bool loop = false; + + /// If true, the user must be pointing at the scroll rect with the controller + /// to be able to scroll. + [Tooltip("Determines whether the user must be pointing at the scroll rect with the controller to be able to scroll.")] + public bool onlyScrollWhenPointing = true; + + /// Determines how many extra pages are shown on each side of + /// the scroll rect is shown when the scroll view is not moving. + /// If set to 0, only the activePage is shown. + /// If set to 1, an extra page is shown on each side. + [Tooltip("Determines how many extra pages are shown on each side of the scroll rect when the scroll view is not moving.")] + public int numExtraPagesShown = 0; + + /// This is used to determine if the leftmost and rightmost page + /// should be shown when the scroll rect is not moving. + /// If numExtraPagesShown is zero, then this is the previous and next page. + [Tooltip("Determines if the last extra page should be shown when the scroll rect is at rest.")] + public bool showNextPagesAtRest = false; + + /// This is used to determine if the tiles will be interactable + /// regardless of the state of the paged scroll rect. If false, + /// then tiles will not be interactable if they aren't on the active page. + [Tooltip("Determines if the tiles should always be interactable.")] + public bool shouldTilesAlwaysBeInteractable = true; + + [Tooltip("Determines if scrolling is enabled.")] + public bool scrollingEnabled = true; + + /// A callback to indicate that the active page has changed. + public delegate void ActivePageChangedDelegate(RectTransform activePage,int activePageIndex,RectTransform previousPage,int previousPageIndex); + + /// Called whenever the active page changes. + public event ActivePageChangedDelegate OnActivePageChanged; + + public UnityEvent OnSwipeLeft; + public UnityEvent OnSwipeRight; + public UnityEvent OnSnapClosest; + + /// Interface used as the data source for the content in this scroll rect. + private IPageProvider pageProvider; + + /// Interface used to implement visual effect for scrolling this scroll rect. + private BaseScrollEffect[] scrollEffects; + + /// Keep track of the last few frames of touch positions, and the initial position + private bool isTrackingTouches = false; + private Vector2 initialTouchPos; + private Vector2 previousTouchPos; + private float previousTouchTimestamp; + private Vector2 overallVelocity; + + private bool isScrolling = false; + private bool isPointerHovering = false; + private float scrollOffset = float.MaxValue; + + /// Lerp towards the target scroll offset to smooth the motion. + private float targetScrollOffset; + + // True is the scroll offset is overridden by an external source. + private bool isScrollOffsetOverridden = false; + + private RectTransform activePage; + private Coroutine activeSnapCoroutine; + + /// Keep track of the currently visible pages + private Dictionary indexToVisiblePage = new Dictionary(); + private Dictionary visiblePageToIndex = new Dictionary(); + + /// Store the visible pages in a separate list + /// so that we have a collection that we can remove elements from while iterating through it. + private List visiblePages = new List(); + + /// Touch Delta is required to be higher than + /// the click threshold to avoid detecting clicks as swipes. + private const float kClickThreshold = 0.15f; + + /// overallVelocity must be greater than the swipe threshold + /// to detect a swipe. + private const float kSwipeThreshold = 0.75f; + + /// The difference between two timestamps must be greater than + /// this value to be considered different. Helps reduce noise. + private const float kTimestampDeltaThreshold = 1.0e-7f; + + /// If the difference between the target scroll offset + /// and the current scroll offset is greater than the moving threshold, + /// then we are considered to be moving. This coeff is multiplied by the spacing + /// to get the moving threshold. + private const float kIsMovingThresholdCoeff = 0.1f; + + // Snap the scroll offset to the target scroll offset when the delta between the two + // becomes smaller than kSnapScrollOffsetThresholdCoeff * pageProvider.GetSpacing(). + private const float kSnapScrollOffsetThresholdCoeff = 0.002f; + + /// Values used for low-pass-filter to improve the accuracy of + /// our tracked velocity. + private const float kCuttoffHz = 10.0f; + private const float kRc = (float) (1.0 / (2.0 * Mathf.PI * kCuttoffHz)); + + private enum SnapDirection { + Left, + Right, + Closest + } + + /// The active page in the scroll rect. + public RectTransform ActivePage { + get { + return activePage; + } + private set { + if (value == ActivePage) { + return; + } + + RectTransform previousPage = ActivePage; + int previousPageIndex = ActivePageIndex; + + activePage = value; + activePage.SetAsLastSibling(); + + if (OnActivePageChanged != null) { + OnActivePageChanged(ActivePage, ActivePageIndex, previousPage, previousPageIndex); + } + } + } + + /// The index of the active page. + /// If there is no active page, returns -1. + public int ActivePageIndex { + get { + if (ActivePage != null && visiblePageToIndex.ContainsKey(ActivePage)) { + int index = PageIndexFromRealIndex(ActiveRealIndex); + return index; + } + return -1; + } + } + + /// If loop is set to false, this will always be the same as the ActivePageIndex + /// Otherwise, this will be the index the player is looking at, including all + /// of the aditional loops that the player has swiped through. + /// + /// i.e. + /// If the user has swiped to the right 8 times and there are 5 pages: + /// ActivePageIndex will return 3. + /// ActiveRealIndex will return 8. + public int ActiveRealIndex { + get { + if (ActivePage != null && visiblePageToIndex.ContainsKey(ActivePage)) { + int index = visiblePageToIndex[ActivePage]; + return index; + } + return -1; + } + } + + /// The number of pages in the scroll rect. + /// If there is no pageProvider, returns -1. + public int PageCount { + get { + if (pageProvider == null) { + return -1; + } + return pageProvider.GetNumberOfPages(); + } + } + + /// The spacing between pages in the local coordinate system of this PagedScrollRect. + public float PageSpacing { + get { + if (pageProvider == null) { + return 0.0f; + } + return pageProvider.GetSpacing(); + } + } + + /// Returns the amount that the + /// rect has been scrolled in local coordinates. + public float ScrollOffset { + get { + return scrollOffset; + } + private set { + if (value != ScrollOffset) { + scrollOffset = value; + OnScrolled(); + } + } + } + + /// Returns true if scrolling is currently allowed + public bool CanScroll { + get { + return scrollingEnabled && (isPointerHovering || !onlyScrollWhenPointing); + } + } + + /// Returns true if the scroll region is currently moving. + /// This is the case if the player is actively scrolling, and + /// when the scroll region is snapping to a page. + public bool IsMoving { + get { + if (isScrolling) { + return true; + } + + float moveDistance = CurrentMoveDistance; + if (moveDistance > GetMovingThreshold()) { + return true; + } + + return false; + } + } + + /// Returns the distance between the targetScrollOffset and the ScrollOffset. + /// This can be used to determine how quickly the PagedScrollRect is scrolling. + public float CurrentMoveDistance { + get { + return Mathf.Abs(targetScrollOffset - ScrollOffset); + } + } + + /// + /// Snaps the scroll rect to a particular page. + /// + /// the index of the page to snap to. + /// If set to true then snapping happens instantly, + /// otherwise it is animated. + public void SnapToPage(int index, bool immediate = false, bool supressEvents=false) { + if (!loop && (index < 0 || index >= PageCount)) { + Debug.LogWarning("Attempting to snap to non-existant page: " + index); + return; + } + + if (immediate) { + float offset = OffsetFromIndex(index); + targetScrollOffset = offset; + ScrollOffset = offset; + } else { + activeSnapCoroutine = StartCoroutine(SnapToPageCoroutine(index)); + } + + if (!supressEvents) { + int currentIndex = ActiveRealIndex; + if (index < currentIndex) { + OnSwipeLeft.Invoke(); + } else { + OnSwipeRight.Invoke(); + } + } + } + + /// + /// Snaps the scroll rect to a particular page. Only works for pages that are + /// currently visible. + /// + /// The page to snap to. + /// If set to true then snapping happens instantly, + /// otherwise it is animated. + public void SnapToVisiblePage(RectTransform visiblePage, bool immediate = false) { + if (visiblePage == null) { + Debug.LogWarning("visiblePage is null, cannot snap to it."); + return; + } + + if (!visiblePageToIndex.ContainsKey(visiblePage)) { + Debug.LogWarning(visiblePage.name + " is not a visible page, cannot snap to it."); + return; + } + + int index = visiblePageToIndex[visiblePage]; + SnapToPage(index, immediate); + } + + /// + /// Explicitly set the scroll offset of the PagedScrollRect. Useful when you need to control + /// the scroll offset from an external source (I.E. a scroll bar). When unset, the PagedScrollRect + /// will snap to the closest page. + /// + /// The scroll offset to set. + /// If set to true then the scroll offset is set instantly, + /// otherwise it is animated. + public void SetScrollOffsetOverride(float? offsetOverride, bool immediate = false) { + bool newIsScrollOffsetOverridden = offsetOverride != null; + + // If we didn't previously have an offset override, stop scrolling. + if (!isScrollOffsetOverridden && newIsScrollOffsetOverridden) { + StopScrolling(false); + StopTouchTracking(); + } + + if (newIsScrollOffsetOverridden) { + targetScrollOffset = offsetOverride.Value; + if (immediate) { + ScrollOffset = targetScrollOffset; + } + } else if (isScrollOffsetOverridden) { + SnapToPageInDirection(SnapDirection.Closest); + } + + isScrollOffsetOverridden = newIsScrollOffsetOverridden; + } + + /// Removes all pages and goes back to the starting page. + /// Call this function if the PageProvider changes. + public void Reset() { + foreach (KeyValuePair pair in visiblePageToIndex) { + pageProvider.RemovePage(pair.Value, pair.Key); + } + + visiblePageToIndex.Clear(); + indexToVisiblePage.Clear(); + scrollOffset = float.MaxValue; + targetScrollOffset = 0.0f; + SetScrollOffsetOverride(null, true); + ScrollOffset = targetScrollOffset; + } + + void OnDisable() { + if (pageProvider == null) { + return; + } + + SetScrollOffsetOverride(null, true); + StopScrolling(true, true); + StopTouchTracking(); + } + + void Start() { + pageProvider = GetComponent(); + + if (pageProvider == null) { + throw new System.NullReferenceException( + "PagedScrollRect is missing an IPageProvider. " + + "Please look at IPageProvider.cs for details."); + } + + scrollEffects = GetComponents(); + if (scrollEffects.Length == 0) { + Debug.LogWarning( + "PagedScrollRect does not have any BaseScrollEffects. " + + "Adding defaults."); + gameObject.AddComponent(); + gameObject.AddComponent(); + scrollEffects = GetComponents(); + } + + // Immediately snap to the starting page. + SnapToPage(StartPage, true, true); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + + public void OnPointerEnter(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + if (onlyScrollWhenPointing) { + isPointerHovering = true; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public void OnPointerExit(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + if (onlyScrollWhenPointing) { + isPointerHovering = false; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + void Update() { + if (isScrollOffsetOverridden) { + LerpTowardsOffset(targetScrollOffset); + return; + } + + if (!CanScroll) { + StopScrolling(); + StopTouchTracking(); + return; + } + + /// Don't start scrolling until the touch pos has moved. + /// This is to prevent scrolling when the user intended to click. + if (!isScrolling && GvrController.IsTouching) { + if (!isTrackingTouches) { + StartTouchTracking(); + } else { + Vector2 touchDelta = GvrController.TouchPos - initialTouchPos; + float xDeltaMagnitude = Mathf.Abs(touchDelta.x); + float yDeltaMagnitude = Mathf.Abs(touchDelta.y); + + if (xDeltaMagnitude > kClickThreshold && xDeltaMagnitude > yDeltaMagnitude) { + StartScrolling(); + } + } + } + + if (isScrolling && GvrController.IsTouching) { + Vector2 touchDelta = GvrController.TouchPos - previousTouchPos; + + if (Mathf.Abs(touchDelta.x) > 0) { + // Translate directly based on the touch value. + float spacingCoeff = -pageProvider.GetSpacing(); + targetScrollOffset += touchDelta.x * spacingCoeff * ScrollSensitivity; + } + + LerpTowardsOffset(targetScrollOffset); + } + + if (GvrController.TouchUp) { + StopScrolling(); + StopTouchTracking(); + } + + if (isTrackingTouches && GvrController.IsTouching) { + TrackTouch(); + } + } + + private void StartScrolling() { + if (isScrolling) { + return; + } + + targetScrollOffset = ScrollOffset; + + if (activeSnapCoroutine != null) { + StopCoroutine(activeSnapCoroutine); + } + + isScrolling = true; + } + + private void StopScrolling(bool snapToPage = true, bool snapImmediate = false) { + if (!isScrolling) { + return; + } + + if (snapToPage) { + if (overallVelocity.x > kSwipeThreshold) { + /// If I was swiping to the right. + SnapToPageInDirection(SnapDirection.Left, snapImmediate); + } else if (overallVelocity.x < -kSwipeThreshold) { + /// If I was swiping to the left. + SnapToPageInDirection(SnapDirection.Right, snapImmediate); + } else { + /// If the touch delta is not big enough, just snap to the closest page. + SnapToPageInDirection(SnapDirection.Closest, snapImmediate); + } + } + + isScrolling = false; + } + + private void StartTouchTracking() { + isTrackingTouches = true; + initialTouchPos = GvrController.TouchPos; + previousTouchPos = initialTouchPos; + previousTouchTimestamp = Time.time; + overallVelocity = Vector2.zero; + } + + private void StopTouchTracking() { + if (!isTrackingTouches) { + return; + } + + isTrackingTouches = false; + initialTouchPos = Vector2.zero; + previousTouchPos = Vector2.zero; + previousTouchTimestamp = 0.0f; + overallVelocity = Vector2.zero; + } + + private void TrackTouch() { + if (!isTrackingTouches) { + Debug.LogWarning("StartTouchTracking must be called before touches can be tracked."); + return; + } + + float timeElapsedSeconds = (Time.time - previousTouchTimestamp); + + // If the timestamp has not changed, do not update. + if (timeElapsedSeconds < kTimestampDeltaThreshold) { + return; + } + + // Update velocity + Vector2 touchDelta = GvrController.TouchPos - previousTouchPos; + Vector2 velocity = touchDelta / timeElapsedSeconds; + float weight = timeElapsedSeconds / (kRc + timeElapsedSeconds); + overallVelocity = Vector2.Lerp(overallVelocity, velocity, weight); + + // Update the previous touch + previousTouchPos = GvrController.TouchPos; + previousTouchTimestamp = Time.time; + } + + + private void SnapToPageInDirection(SnapDirection snapDirection, bool immediate = false) { + int closestPageIndex = 0; + bool didClamp; + float directionBias = pageProvider.GetSpacing() * 0.55f; + + switch (snapDirection) { + case SnapDirection.Right: + float rightOffset = targetScrollOffset + directionBias; + closestPageIndex = IndexFromOffset(rightOffset, out didClamp); + if (!didClamp) { + OnSwipeRight.Invoke(); + } + break; + case SnapDirection.Left: + float leftOffset = targetScrollOffset - directionBias; + closestPageIndex = IndexFromOffset(leftOffset, out didClamp); + if (!didClamp) { + OnSwipeLeft.Invoke(); + } + break; + case SnapDirection.Closest: + closestPageIndex = IndexFromOffset(targetScrollOffset, out didClamp); + OnSnapClosest.Invoke(); + break; + default: + throw new System.Exception("Invalid SnapDirection: " + snapDirection); + } + + /// If we found a page in that direction. + SnapToPage(closestPageIndex, immediate, true); + } + + private void OnScrolled() { + bool didClamp; + int newActiveIndex = IndexFromOffset(scrollOffset, out didClamp); + + /// Make sure to update the active page + if (IsPageVisible(newActiveIndex)) { + ActivePage = indexToVisiblePage[newActiveIndex]; + } + + /// Update existing pages + for (int i = visiblePages.Count - 1; i >= 0; i--) { + RectTransform page = visiblePages[i]; + + /// If this object doesn't have a RectTransform it isn't a valid page. + /// Not necessarily an issue, could be something else. + if (page == null) { + continue; + } + + bool isVisiblePage = visiblePageToIndex.ContainsKey(page); + + /// This accounts for the case where not all of the children + /// are visible pages. Helpful to keep the ScrollRect flexible + /// and for potential pooling implementations. + if (!isVisiblePage) { + continue; + } + + int pageIndex = visiblePageToIndex[page]; + + if (ShouldShowIndexForOffset(ScrollOffset, pageIndex)) { + ApplyScrollEffects(page); + } else { + RemovePage(page); + } + } + + /// Add active page if it doesn't already exist + if (!indexToVisiblePage.ContainsKey(newActiveIndex)) { + AddPage(newActiveIndex, true); + } + + /// Add additional pages to the left of the active page. + int nextIndex = newActiveIndex - 1; + while (true) { + if (!loop && nextIndex < 0) { + break; + } + + if (IsPageVisible(nextIndex)) { + nextIndex--; + continue; + } + + if (!AddPageIfNecessary(nextIndex)) { + break; + } + + nextIndex--; + } + + /// Add additional pages to the right of the active page. + nextIndex = newActiveIndex + 1; + while (true) { + if (!loop && nextIndex >= pageProvider.GetNumberOfPages()) { + break; + } + + if (IsPageVisible(nextIndex)) { + nextIndex++; + continue; + } + + if (!AddPageIfNecessary(nextIndex)) { + break; + } + + nextIndex++; + } + } + + private IEnumerator SnapToPageCoroutine(int index) { + targetScrollOffset = OffsetFromIndex(index); + + while (true) { + if (LerpTowardsOffset(targetScrollOffset)) { + yield return null; + } else { + break; + } + } + } + + /// Returns false if the ScrollOffset is already the same as the targetOffset. + private bool LerpTowardsOffset(float targetOffset) { + if (ScrollOffset == targetOffset) { + return false; + } + + float diff = Mathf.Abs(ScrollOffset - targetScrollOffset); + float threshold = pageProvider.GetSpacing() * kSnapScrollOffsetThresholdCoeff; + if (diff < threshold) { + ScrollOffset = targetScrollOffset; + } else { + ScrollOffset = Mathf.Lerp(ScrollOffset, targetOffset, SnapSpeed * Time.deltaTime); + } + + ScrollOffset = Mathf.Lerp(ScrollOffset, targetOffset, SnapSpeed * Time.deltaTime); + return true; + } + + private float OffsetFromIndex(int index) { + return index * pageProvider.GetSpacing(); + } + + private int IndexFromOffset(float offset, out bool didClamp) { + int index = Mathf.RoundToInt(offset / pageProvider.GetSpacing()); + didClamp = false; + + if (!loop) { + int clampedIndex = Mathf.Clamp(index, 0, pageProvider.GetNumberOfPages() - 1); + didClamp = clampedIndex != index; + return clampedIndex; + } + + return index; + } + + private int PageIndexFromRealIndex(int index) { + int loopAmount = Mathf.FloorToInt((float)index / (float)PageCount); + index = index - (loopAmount * PageCount); + + return index; + } + + private bool ShouldShowIndexForOffset(float offset, int index) { + float indexOffset = OffsetFromIndex(index); + float diff = Mathf.RoundToInt(indexOffset - offset); + float absoluteDiff = Mathf.Abs(diff); + + int pagesShown = 1 + numExtraPagesShown; + if (showNextPagesAtRest) { + return absoluteDiff <= pageProvider.GetSpacing() * pagesShown; + } else { + return absoluteDiff < pageProvider.GetSpacing() * pagesShown; + } + } + + private bool IsPageVisible(int index) { + return indexToVisiblePage.ContainsKey(index); + } + + private bool AddPageIfNecessary(int index) { + if (ShouldShowIndexForOffset(scrollOffset, index)) { + AddPage(index); + return true; + } + + return false; + } + + private void AddPage(int index, bool isActivePage=false) { + int pageIndex = PageIndexFromRealIndex(index); + RectTransform page = pageProvider.ProvidePage(pageIndex); + page.SetParent(transform, false); + indexToVisiblePage[index] = page; + visiblePageToIndex[page] = index; + visiblePages.Add(page); + + if (isActivePage) { + ActivePage = page; + } + + ApplyScrollEffects(page); + + if (activePage) { + activePage.SetAsLastSibling(); + } + } + + private void RemovePage(RectTransform page) { + int index = visiblePageToIndex[page]; + int pageIndex = PageIndexFromRealIndex(index); + + visiblePageToIndex.Remove(page); + indexToVisiblePage.Remove(index); + + // This could be slow if numExtraPagesShown is set to a large number. + // Considering having numExtraPagesShown set above 1 is against UX recommendations, + // this should be all right. + visiblePages.Remove(page); + + pageProvider.RemovePage(pageIndex, page); + } + + private void ApplyScrollEffects(RectTransform page) { + int index = visiblePageToIndex[page]; + float offset = OffsetFromIndex(index); + + bool isActivePage = page == activePage; + bool isInteractable = shouldTilesAlwaysBeInteractable || isActivePage; + + BaseScrollEffect.UpdateData updateData = new BaseScrollEffect.UpdateData(); + updateData.page = page; + updateData.pageIndex = index; + updateData.pageCount = PageCount; + updateData.pageOffset = offset; + updateData.scrollOffset = ScrollOffset; + updateData.spacing = pageProvider.GetSpacing(); + updateData.looping = loop; + updateData.isInteractable = isInteractable; + updateData.moveDistance = CurrentMoveDistance; + + for (int i = 0; i < scrollEffects.Length; i++) { + BaseScrollEffect scrollEffect = scrollEffects[i]; + if (scrollEffect.enabled) { + scrollEffect.ApplyEffect(updateData); + } + } + } + + private float GetMovingThreshold() { + return pageProvider.GetSpacing() * kIsMovingThresholdCoeff; + } + +#endif // UNITY_HAS_GOOGLEVR &&(UNITY_ANDROID || UNITY_EDITOR +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollRect.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollRect.cs.meta new file mode 100644 index 0000000..f39c7d5 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/PagedScrollRect.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fe98bb862d52fdd47a0641556e3140f8 +timeCreated: 1472579999 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects.meta new file mode 100644 index 0000000..0d6f453 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0a33fe8029d4247f6bd64047b3452158 +folderAsset: yes +timeCreated: 1476756761 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseScrollEffect.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseScrollEffect.cs new file mode 100644 index 0000000..d9002da --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseScrollEffect.cs @@ -0,0 +1,45 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// This script implements effects for visualizing +/// the scrolling of a PagedScrollRect. +/// +/// Scroll effects must be placed on the same object as the PagedScrollRect. +/// Multiple scroll effects can be mixed together. They will be applied in the order +/// of the components on the object. +/// +/// Three example implementations are included: +/// TranslateScrollEffect - Change the position of the page linearly based on the scroll offset. +/// FadeScrollEffect - Change the opacity of the page linearly based on the scroll offset. +/// ScaleScrollEffect - Change the scale of the page linearly based on the scroll offset. +public abstract class BaseScrollEffect : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + public struct UpdateData { + public RectTransform page; + public int pageIndex; + public int pageCount; + public float pageOffset; + public float scrollOffset; + public float spacing; + public bool looping; + public bool isInteractable; + public float moveDistance; + } + + public abstract void ApplyEffect(UpdateData updateData); +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseScrollEffect.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseScrollEffect.cs.meta new file mode 100644 index 0000000..2f91bc0 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseScrollEffect.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: edb327471a85e400395cd5c49a96ca66 +timeCreated: 1476751507 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseTile.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseTile.cs new file mode 100644 index 0000000..11a9615 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseTile.cs @@ -0,0 +1,146 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using UnityEngine.Events; + +// Used inside a scrolling page view. It contains abstract functions for handling +// interactions between itself and the gvr controller. +public abstract class BaseTile : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IGvrPointerHoverHandler { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + protected Transform originalParent; + protected Quaternion originalRotation; + protected Vector3 originalPosition; + protected Vector3 originalScale; + protected TiledPage page; + + protected bool isInteractable = true; + protected bool isHovering = false; + + // Ratio between meters (Unity Units) to the parent canvas that + // this tile is part of. + private float? metersToCanvasScale; + + /// Returns the tile's outer container's rect transform. + public RectTransform Cell { + get { + return originalParent ? originalParent.GetComponent() : null; + } + } + + public virtual void Reset() { + OnPointerExit(null); + + transform.SetParent(originalParent, true); + transform.localRotation = originalRotation; + transform.localPosition = originalPosition; + transform.localScale = originalScale; + + page = null; + metersToCanvasScale = null; + } + + protected virtual void Awake() { + originalParent = transform.parent; + originalRotation = transform.localRotation; + originalPosition = transform.localPosition; + originalScale = transform.localScale; + } + + protected virtual void OnEnable() { + Reset(); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + + public abstract void OnPointerEnter(PointerEventData eventData); + + public abstract void OnPointerExit(PointerEventData eventData); + + public abstract void OnGvrPointerHover(PointerEventData eventData); + +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + public bool IsInteractable { + get { + return isInteractable; + } + set { + if (isInteractable == value) { + return; + } + + isInteractable = value; + SetEventTriggersInteractable(isInteractable); + SetSelectablesInteractable(isInteractable); + SetGraphicsRaycastTarget(isInteractable); + } + } + + + protected TiledPage GetPage() { + if (page == null) { + page = GetComponentInParent(); + } + return page ? page : null; + } + + protected float GetMetersToCanvasScale() { + if (metersToCanvasScale == null) { + metersToCanvasScale = GvrUIHelpers.GetMetersToCanvasScale(transform); + } + + return metersToCanvasScale.Value; + } + + private void SetEventTriggersInteractable(bool interactable) { + EventTrigger[] triggers = GetComponentsInChildren(); + if (triggers == null) { + return; + } + + int numTriggers = triggers.Length; + for (int i = 0; i < numTriggers; i++) { + EventTrigger trigger = triggers[i]; + trigger.enabled = interactable; + } + } + + private void SetSelectablesInteractable(bool interactable) { + Selectable[] selectables = GetComponentsInChildren(); + if (selectables == null) { + return; + } + + int numSelectables = selectables.Length; + for (int i = 0; i < numSelectables; i++) { + Selectable selectable = selectables[i]; + selectable.interactable = interactable; + } + } + + private void SetGraphicsRaycastTarget(bool isRaycastTarget) { + Graphic[] graphics = GetComponentsInChildren(); + if (graphics == null) { + return; + } + + int numGraphics = graphics.Length; + for (int i = 0; i < numGraphics; i++) { + Graphic graphic = graphics[i]; + graphic.raycastTarget = isRaycastTarget; + } + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseTile.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseTile.cs.meta new file mode 100644 index 0000000..cad5c3d --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/BaseTile.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a1b403f35d6a042d680f153b25664cf1 +timeCreated: 1479345415 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FadeScrollEffect.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FadeScrollEffect.cs new file mode 100644 index 0000000..8f386c4 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FadeScrollEffect.cs @@ -0,0 +1,56 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// Class that can fade the pages of a PagedScrollRect based on the page's offset. +public class FadeScrollEffect : BaseScrollEffect { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + [Range(0.0f, 1.0f)] + [Tooltip("The alpha of the page when it is one page-length away.")] + public float minAlpha = 0.0f; + + public override void ApplyEffect(BaseScrollEffect.UpdateData updateData) { + CanvasGroup pageCanvasGroup = updateData.page.GetComponent(); + + /// All pages require a CanvasGroup for manipulating Alpha. + if (pageCanvasGroup == null) { + Debug.LogError("Cannot adjust alpha for page " + updateData.page.name + ", missing CanvasGroup"); + return; + } + + // Calculate the difference + float difference = updateData.scrollOffset - updateData.pageOffset; + + /// Calculate the alpha for this page. + float alpha = 1.0f - (Mathf.Abs(difference) / updateData.spacing); + alpha = (alpha * (1.0f - minAlpha)) + minAlpha; + alpha = Mathf.Clamp(alpha, 0.0f, 1.0f); + + /// If this is the last page or the first page, + /// Then we clamp the alpha to 1 when dragging past the edge + /// Of the scrolling region. + if (!updateData.looping) { + if (updateData.pageIndex == 0 && difference < 0) { + alpha = 1.0f; + } else if (updateData.pageIndex == updateData.pageCount - 1 && difference > 0) { + alpha = 1.0f; + } + } + + pageCanvasGroup.alpha = alpha; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FadeScrollEffect.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FadeScrollEffect.cs.meta new file mode 100644 index 0000000..fd3902a --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FadeScrollEffect.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c8a1350d8c86b45c5b567988d0897a27 +timeCreated: 1476757106 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FloatTile.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FloatTile.cs new file mode 100644 index 0000000..c325149 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FloatTile.cs @@ -0,0 +1,209 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using UnityEngine.Events; + +// This class is an implementation of Basetile in which tiles float forward along +// the z-axis and tilt towards the camera when the gvr controller pointer is +// hovering over them. +public class FloatTile : BaseTile { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private const float PARENT_CHANGE_THRESHOLD_PERCENT = 0.33f; + private const float _360_DEGREES = 360.0f; + private const float _180_DEGREES = 180.0f; + + private Quaternion desiredRotation = Quaternion.identity; + private float desiredPositionZ; + private Vector3 desiredScale = Vector3.one; + + [Range(1.0f, 2.0f)] + [Tooltip("Tile scale when the pointer over the tile.")] + public float hoverScale = 1.2f; + + [Range(0.01f, 0.5f)] + [Tooltip("Tile forward distance when the pointer over the tile.")] + public float hoverPositionZMeters = 0.225f; + + [Range(0.0f, 30.0f)] + [Tooltip("Maximum tile rotation towards the camera.")] + public float maximumRotationDegreesCamera = 15.0f; + + [Range(0.0f, 5.0f)] + [Tooltip("Maximum tile rotation towards the pointer.")] + public float maximumRotationDegreesPointer = 3.0f; + + [Range(1.0f, 10.0f)] + [Tooltip("Speed used for lerping the rotation/scale/position of the tile.")] + public float interpolationSpeed = 8.0f; + + public override void Reset() { + base.Reset(); + + Transform myTransform = transform; + myTransform.SetParent(originalParent, true); + myTransform.SetAsLastSibling(); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + + + public override void OnPointerEnter(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + isHovering = true; + + // Since canvas graphics render facing the negative Z direction, + // negative z is the forward direction for a canvas element. + desiredPositionZ = -hoverPositionZMeters / GetMetersToCanvasScale(); + desiredScale = new Vector3(hoverScale, hoverScale, hoverScale); +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public override void OnPointerExit(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + isHovering = false; + + desiredRotation = Quaternion.identity; + desiredPositionZ = 0.0f; + desiredScale = Vector3.one; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public override void OnGvrPointerHover(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + isHovering = true; + UpdateDesiredRotation(eventData.pointerCurrentRaycast.worldPosition); +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + void Update() { + UpdateRotation(); + UpdateFloatPosition(); + UpdateScale(); + } + + private void UpdateRotation() { + Quaternion finalDesiredRotation = desiredRotation; + if (!isInteractable) { + finalDesiredRotation = Quaternion.identity; + } + + if (finalDesiredRotation != transform.localRotation) { + Quaternion localRotation = transform.localRotation; + localRotation = Quaternion.Lerp(localRotation, finalDesiredRotation, Time.deltaTime * interpolationSpeed); + transform.localRotation = localRotation; + } + } + + private void UpdateFloatPosition() { + float finalDesiredPositionZ = desiredPositionZ; + if (!isInteractable) { + finalDesiredPositionZ = 0.0f; + } + + if (finalDesiredPositionZ != transform.localPosition.z) { + Vector3 localPosition = transform.localPosition; + Vector3 desiredPosition = localPosition; + desiredPosition.z = finalDesiredPositionZ; + localPosition = Vector3.Lerp(localPosition, desiredPosition, Time.deltaTime * interpolationSpeed); + transform.localPosition = localPosition; + + TiledPage page = GetPage(); + if (page != null) { + float diff = Mathf.Abs(localPosition.z); + + if (diff < ((PARENT_CHANGE_THRESHOLD_PERCENT * hoverPositionZMeters) / GetMetersToCanvasScale()) && + transform.parent == page.transform) { + transform.SetParent(originalParent, true); + transform.SetAsLastSibling(); + } else if (isHovering && diff >= 0 && transform.parent == originalParent) { + transform.SetParent(page.transform, true); + } + } + } + } + + private void UpdateScale() { + Vector3 finalDesiredScale = desiredScale; + if (!isInteractable) { + finalDesiredScale = Vector3.one; + } + + if (finalDesiredScale != transform.localScale) { + Vector3 localScale = transform.localScale; + localScale = Vector3.Lerp(localScale, finalDesiredScale, Time.deltaTime * interpolationSpeed); + transform.localScale = localScale; + } + } + + private void UpdateDesiredRotation(Vector3 pointerIntersectionWorldPosition) { + Vector3 localCenter = CalculateLocalCenter(); + Vector3 worldCenter = transform.TransformPoint(localCenter); + Vector2 localSize = CalculateLocalSize(); + + Vector3 pointerLocalPositionOnTile = transform.InverseTransformPoint(pointerIntersectionWorldPosition); + + Vector3 pointerDiffFromCenter = pointerLocalPositionOnTile - localCenter; + float pointerRatioX = pointerDiffFromCenter.x / localSize.x; + float pointerRatioY = pointerDiffFromCenter.y / localSize.y; + Vector2 pointerRatioFromCenter = new Vector2(pointerRatioX, pointerRatioY); + + float axisCoeff = maximumRotationDegreesPointer * 2.0f; + + Vector3 worldDirection = worldCenter - Camera.main.transform.position; + Vector3 localDirection = transform.parent.InverseTransformDirection(worldDirection); + Quaternion lookRotation = Quaternion.LookRotation(localDirection, Vector3.up); + Vector3 lookEuler = clampEuler(lookRotation.eulerAngles, maximumRotationDegreesCamera); + float eulerX = lookEuler.x - pointerRatioFromCenter.y * axisCoeff; + float eulerY = lookEuler.y + pointerRatioFromCenter.x * axisCoeff; + desiredRotation = Quaternion.Euler(eulerX, eulerY, lookEuler.z); + } + + private Vector2 CalculateLocalSize() { + RectTransform rectTransform = GetComponent(); + if (rectTransform) { + Vector3 localMax = rectTransform.rect.max; + Vector3 localMin = rectTransform.rect.min; + return localMax - localMin; + } + return Vector2.zero; + } + + protected Vector3 CalculateLocalCenter() { + RectTransform rectTransform = GetComponent(); + if (rectTransform) { + Vector3 localCenter = rectTransform.rect.center; + return localCenter; + } + return Vector3.zero; + } + + private Vector3 clampEuler(Vector3 rotation, float maxDegrees) { + rotation.x = clampDegrees(rotation.x, maxDegrees); + rotation.y = clampDegrees(rotation.y, maxDegrees); + rotation.z = clampDegrees(rotation.z, maxDegrees); + return rotation; + } + + private float clampDegrees(float degrees, float maxDegrees) { + if (degrees > _180_DEGREES) { + degrees -= _360_DEGREES; + } + + return Mathf.Clamp(degrees, -maxDegrees, maxDegrees); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FloatTile.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FloatTile.cs.meta new file mode 100644 index 0000000..ed02682 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/FloatTile.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 89007d35048604468b7ff786ea401523 +timeCreated: 1479345415 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/MaskedTile.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/MaskedTile.cs new file mode 100644 index 0000000..bcb8a3a --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/MaskedTile.cs @@ -0,0 +1,222 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.Events; +using UnityEngine.EventSystems; +using System.Collections; + +// This class is an implementation of Basetile in which the image on each tile +// zooms inward and scrolls along with the controller retical as it is hovering +// over the tile. The edges of the image are masked off if they go beyond the +// bounding rectangle of the tile. +public class MaskedTile : BaseTile { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private const string OBJ_NAME_MASKED_IMAGE = "MaskedImage"; + + private const float PARENT_CHANGE_THRESHOLD_PERCENT = 0.33f; + + private Image maskedImage; + private GameObject maskedImageObject; + + private Vector3 originalMaskedPosition; // Start position when pointer is not on tile. + private Vector3 maskedScrollOffset; + private Vector2 originalImageSize; + private Vector2 enlargedImageSize; + private float desiredPositionZ; + + [Range(0.1f, 0.5f)] + [Tooltip("Image scroll amount when the pointer over the tile.")] + public float movementWeight = 0.15f; + + [Range(1.1f, 2.0f)] + [Tooltip("Image scale amount when the pointer over the tile.")] + public float scaleWeight = 1.4f; + + [Range(0.01f, 0.2f)] + [Tooltip("Tile forward distance when the pointer over the tile.")] + public float hoverPositionZMeters = 0.125f; + + [Range(0.1f, 10.0f)] + [Tooltip("Speed used for lerping the rotation/scale/position of the tile.")] + public float interpolationSpeed = 8.0f; + + protected override void Awake() { + base.Awake(); + + // Get current image. + Image image = GetComponent(); + + // Create mask. + gameObject.AddComponent(); + + // Save size data. + originalImageSize = image.rectTransform.sizeDelta; + enlargedImageSize = originalImageSize; + enlargedImageSize.x *= scaleWeight; + enlargedImageSize.y *= scaleWeight; + + // Save position data. + originalMaskedPosition = new Vector3(originalImageSize.x / 2.0f, -originalImageSize.y / 2.0f, 0); + + // Set data that varies. + maskedScrollOffset = Vector3.zero; + + // Create game object for masked image. + maskedImageObject = new GameObject(OBJ_NAME_MASKED_IMAGE); + RectTransform maskedTransform = maskedImageObject.AddComponent(); + maskedTransform.SetParent(transform); // Set as child of this game object. + + // Create maskedImage as component of child game object and initialize to base image. + maskedImage = maskedImageObject.AddComponent(); + maskedImage.sprite = image.sprite; + maskedImage.color = image.color; + maskedImage.material = image.material; + image.sprite = null; + + // If this object has a selectable referencing the original image, + // then we set the selectable to the masked image. + Selectable selectable = GetComponent(); + if (selectable != null && selectable.image == image) { + selectable.image = maskedImage; + } + + // Set size, scale, rotation and position. + maskedImage.rectTransform.sizeDelta = originalImageSize; + maskedImage.rectTransform.localScale = Vector3.one; + maskedImage.rectTransform.localRotation = Quaternion.identity; + maskedImage.rectTransform.anchoredPosition3D = originalMaskedPosition; + + // Set masked image alignment to top-left. + Vector2 anchor = new Vector2(0, 1); + maskedImage.rectTransform.anchorMin = anchor; + maskedImage.rectTransform.anchorMax = anchor; + maskedImage.rectTransform.pivot = new Vector2(0.5f, 0.5f); + } + + void Update() { + // Make sure to always ignore raycasts. + // This may be set back to true by BaseTile when the Tile becomes interactable. + maskedImage.raycastTarget = false; + + UpdateScrollPosition(); + UpdateFloatPosition(); + UpdateScale(); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + + public override void OnPointerEnter(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + isHovering = true; + desiredPositionZ = -hoverPositionZMeters / GetMetersToCanvasScale(); +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public override void OnPointerExit(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + isHovering = false; + maskedScrollOffset = Vector3.zero; + desiredPositionZ = 0.0f; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public override void OnGvrPointerHover(PointerEventData eventData) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + isHovering = true; + Vector3 pos = eventData.pointerCurrentRaycast.worldPosition; + + RectTransform rectTransform = null; + if (maskedImageObject) { + rectTransform = maskedImageObject.GetComponent(); + } + + if (!rectTransform || !isInteractable) { + return; + } + + Rect rect = rectTransform.rect; + Vector3 localCenter = rect.center; + Vector3 worldCenter = maskedImageObject.transform.TransformPoint(localCenter); + + Vector3 localMin = new Vector3(rect.min.x, rect.min.y, 0.0f); + Vector3 worldMin = maskedImageObject.transform.TransformPoint(localMin); + + worldCenter -= worldMin; + pos -= worldMin; + + Vector3 direction = pos - worldCenter; + maskedScrollOffset.x = movementWeight * enlargedImageSize.x * direction.x; + maskedScrollOffset.y = movementWeight * enlargedImageSize.y * direction.y; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private void UpdateScrollPosition() { + Vector3 desiredPosition = originalMaskedPosition; + + if (isInteractable && isHovering) { + desiredPosition.x += maskedScrollOffset.x; + desiredPosition.y += maskedScrollOffset.y; + } + + Vector3 position = maskedImage.rectTransform.anchoredPosition3D; + position = Vector3.Lerp(position, desiredPosition, Time.deltaTime * interpolationSpeed); + maskedImage.rectTransform.anchoredPosition3D = position; + } + + private void UpdateFloatPosition() { + float finalDesiredPositionZ = desiredPositionZ; + + if (!isInteractable) { + finalDesiredPositionZ = 0.0f; + } + + if (finalDesiredPositionZ != transform.localPosition.z) { + Vector3 localPosition = transform.localPosition; + Vector3 desiredPosition = localPosition; + desiredPosition.z = finalDesiredPositionZ; + localPosition = Vector3.Lerp(localPosition, desiredPosition, Time.deltaTime * interpolationSpeed); + transform.localPosition = localPosition; + + TiledPage page = GetPage(); + if (page != null) { + float diff = Mathf.Abs(localPosition.z); + + if (diff < ((PARENT_CHANGE_THRESHOLD_PERCENT * hoverPositionZMeters) / GetMetersToCanvasScale()) && + transform.parent == page.transform) { + transform.SetParent(originalParent, true); + transform.SetAsLastSibling(); + } else if (isHovering && diff >= 0 && transform.parent == originalParent) { + transform.SetParent(page.transform, true); + } + } + } + } + + private void UpdateScale() { + Vector2 currentSize = maskedImage.rectTransform.sizeDelta; + Vector2 desiredSize; + + if (IsInteractable && isHovering) { + desiredSize = enlargedImageSize; + } else { + desiredSize = originalImageSize; + } + + currentSize = Vector2.Lerp(currentSize, desiredSize, Time.deltaTime * interpolationSpeed); + maskedImage.rectTransform.sizeDelta = currentSize; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/MaskedTile.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/MaskedTile.cs.meta new file mode 100644 index 0000000..b418cb9 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/MaskedTile.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8cab5532ccd3a4d339166fb99b903aed +timeCreated: 1479160922 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/ScaleScrollEffect.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/ScaleScrollEffect.cs new file mode 100644 index 0000000..22295e4 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/ScaleScrollEffect.cs @@ -0,0 +1,38 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// Class that can scale the pages of a PagedScrollRect based on the page's offset. +public class ScaleScrollEffect : BaseScrollEffect { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + [Range(0.0f, 1.0f)] + [Tooltip("The scale of the page when it is one page-length away.")] + public float minScale; + + public override void ApplyEffect(BaseScrollEffect.UpdateData updateData) { + // Calculate the difference. + float difference = updateData.scrollOffset - updateData.pageOffset; + + // Calculate the scale for this page. + float ratioScrolled = Mathf.Abs(difference) / updateData.spacing; + float scale = ((1.0f - ratioScrolled) * (1.0f - minScale)) + minScale; + scale = Mathf.Clamp(scale, 0.0f, 1.0f); + + // Update the scale. + updateData.page.localScale = new Vector3(scale, scale, scale); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/ScaleScrollEffect.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/ScaleScrollEffect.cs.meta new file mode 100644 index 0000000..3291637 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/ScaleScrollEffect.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 33bf08613783c41f7b57052eaa664c7f +timeCreated: 1476756816 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TileScrollEffect.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TileScrollEffect.cs new file mode 100644 index 0000000..c3cd098 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TileScrollEffect.cs @@ -0,0 +1,41 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// Class that will translate the tiles of a page +/// in a PagedScrollRect based on the page's offset. +/// This creates a visual effect where the tiles will animate +/// in a staggered fashion relative to the page. +/// Requires the pages to have a TiledPage script. +public class TileScrollEffect : BaseScrollEffect { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + public override void ApplyEffect(BaseScrollEffect.UpdateData updateData) { + TiledPage tiledPage = updateData.page.GetComponent(); + + if (tiledPage == null) { + Debug.LogError("Page (" + updateData.page.name + ") does not have TiledPage. " + + "Cannot apply TileScrollEffect."); + return; + } + + /// Calculate the distance between the scroll position and this page. + float difference = updateData.scrollOffset - updateData.pageOffset; + float clampedDifference = Mathf.Clamp(difference, -updateData.spacing, updateData.spacing); + + tiledPage.ApplyScrollEffect(clampedDifference, updateData.spacing, updateData.isInteractable); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TileScrollEffect.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TileScrollEffect.cs.meta new file mode 100644 index 0000000..83de2b2 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TileScrollEffect.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cee9bf8d7a0fe4c348dc7216756fc588 +timeCreated: 1476816751 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TiledPage.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TiledPage.cs new file mode 100644 index 0000000..f827711 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TiledPage.cs @@ -0,0 +1,269 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using System.Collections; +using System.Collections.Generic; +using System.Linq; + +[RequireComponent(typeof(CanvasGroup))] +public class TiledPage : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + /// Allows you to assign a custom set of tiles + /// To animate when this page is scrolling. + [SerializeField] + [Tooltip("The tiles to animate when scrolling.")] + private Transform[] tiles; + + /// The RectTransform that tiles animate relative to. + /// The width and height of the layout transform will control + /// when the tiles start animating while scrolling. + [SerializeField] + [Tooltip("The RectTransform that tiles animate relative to.")] + private RectTransform layoutTransform; + + /// Controls how much the tiles move when they are animating. + /// Set to 0 to turn off animation. + [SerializeField] + [Tooltip("Controls how much the tiles move when they are animating.")] + private float staggerAnimationIntensity = 0.5f; + + public enum TileOrderBy { + Center, + LeftEdge, + LeftEdgeBySize, + RightEdge, + RightEdgeBySize + } + + /// Controls the order that tiles move in when they are animating. + /// This is useful when a page has non-uniform tiles. + [SerializeField] + [Tooltip("Controls the order that tiles move in when they are animating.")] + private TileOrderBy tileOrderBy = TileOrderBy.Center; + + /// The Key is an x position relative to the left side of the layoutTransform. + /// The value is a list of tiles that exist at that x position. + private List> tilesByDistanceFromLeft; + + /// When the distance between two tiles is within + /// TileGroupThreshold from eachother, they + /// Are considered within the same tile group + /// For animation purposes. + private const float kTileGroupThreshold = 5.0f; + + /// Getter/Setter for tiles that ensures that the + /// layout cache is flushed when the tiles change. + public Transform[] Tiles { + get { + return tiles; + } + set { + tiles = value; + FlushLayoutCache(); + } + } + + /// + /// Call if the layout of tiles on this page has changed. + /// This will flush the cache to make sure the staggered + /// tiles animation plays correctly. + /// + public void FlushLayoutCache() { + tilesByDistanceFromLeft = null; + } + + /// + /// Called by PagedScrollRect when scrolling occurs. + /// Do not call manually. + /// + /// Signed scroll distance for this page. + /// Spacing between pages. + /// True is the PagedScrollRect is currently scrolling. + public void ApplyScrollEffect(float scrollDistance, float scrollSpacing, bool isInteractable) { + if (Tiles == null) { + FlushLayoutCache(); + return; + } + + /// Organize the tiles by their x position + /// So that we can stagger them correctly. + CalculateTilesByDistance(); + + int iterateIndex; + int increment; + + if (scrollDistance > 0) { + /// Scrolling Left + iterateIndex = 0; + increment = 1; + } else { + /// Scrolling Right + iterateIndex = tilesByDistanceFromLeft.Count - 1; + increment = -1; + } + + float scrollMagnitude = Mathf.Abs(scrollDistance); + float ratioScrolled = scrollMagnitude / scrollSpacing; + int index = 0; + float directionCoeff = -increment; + bool updatedAnimatingTiles = false; + + for (; iterateIndex >= 0 && iterateIndex < tilesByDistanceFromLeft.Count; iterateIndex += increment) { + List tiles = tilesByDistanceFromLeft[iterateIndex]; + float tileGroupRatio = (index + 1.0f) / tilesByDistanceFromLeft.Count; + float tileGroupInterval = scrollSpacing / tilesByDistanceFromLeft.Count; + tileGroupInterval *= staggerAnimationIntensity; + + /// These tiles are currently animating based on the + /// Amount that the user has scrolled the scroll rect. + if (ratioScrolled < tileGroupRatio && !updatedAnimatingTiles) { + for (int i = 0; i < tiles.Count; i++) { + Transform tile = tiles[i]; + float offset = tileGroupInterval * index; + float animatedXPos = + (scrollMagnitude * staggerAnimationIntensity * directionCoeff) - (offset * directionCoeff); + + RectTransform cellRect = GetTileCell(tile); + Vector3 position = cellRect.TransformPoint(new Vector3(animatedXPos, 0.0f, 0.0f)); + UpdateTile(tile, position, isInteractable); + } + updatedAnimatingTiles = true; + } else { + /// These tiles have not been animated yet, + /// Make sure their local position is reset. + if (updatedAnimatingTiles) { + for (int i = 0; i < tiles.Count; i++) { + Transform tile = tiles[i]; + RectTransform cellRect = GetTileCell(tile); + Vector3 position = cellRect.TransformPoint(Vector3.zero); + UpdateTile(tile, position, isInteractable); + } + } else { + /// These tiles have already finished animating + /// Make sure they snap to their final position. + for (int i = 0; i < tiles.Count; i++) { + Transform tile = tiles[i]; + RectTransform cellRect = GetTileCell(tile); + Vector3 position = cellRect.TransformPoint(new Vector3(tileGroupInterval * directionCoeff, 0.0f, 0.0f)); + UpdateTile(tile, position, isInteractable); + } + } + } + + index += 1; + } + } + + private void UpdateTile(Transform tile, Vector3 position, bool isInteractable) { + // The Tile's cell is not necessarily the parent of the tile due + // to work arounds for the fact that depth sorting of Unity UI is tied to + // the objects location in the scene hierarchy instead of the z-position. + // As a result, the staggered position of the tile is passed into this function + // in world space. It must be translated back into the local space of the + // tile's parent to make sure that the the staggered animation is only overriding the + // x-axis of the tile in local space. + Vector3 animatedLocalPos = tile.parent.InverseTransformPoint(position); + Vector3 localPosition = tile.localPosition; + localPosition.x = animatedLocalPos.x; + tile.localPosition = localPosition; + BaseTile Tile = tile.GetComponent(); + if (Tile != null) { + Tile.IsInteractable = isInteractable; + } + } + + private void CalculateTilesByDistance() { + /// Only do this if we haven't already calculated it. + if (tilesByDistanceFromLeft != null) { + return; + } + + Canvas.ForceUpdateCanvases(); + + SortedDictionary> tilesByDistance = new SortedDictionary>(); + + // Ignore disabled tiles, otherwise this won't behave correctly when some tiles are disabled. + foreach (Transform tile in tiles) { + if (!tile.gameObject.activeInHierarchy) { + continue; + } + + RectTransform cellRect = GetTileCell(tile); + RectTransform tileRect = tile.GetComponent(); + + /// Find how far this cell is from the left side of the layout. + Vector3 tilePoint = GetTilePoint(tileRect); + Vector3 worldPoint = cellRect.TransformPoint(tilePoint); + Vector3 layoutPoint = layoutTransform.InverseTransformPoint(worldPoint); + float distanceFromLeft = layoutPoint.x - layoutTransform.rect.xMin; + + /// Add the tile into the appropriate group based on it's x position. + List tilesAtDistance; + if (tilesByDistance.TryGetValue(distanceFromLeft, out tilesAtDistance)) { + tilesAtDistance.Add(tile); + } else { + /// See if their is already a tile group that exists + /// Within range of the TileGroupThreshold. + tilesAtDistance = tilesByDistance.FirstOrDefault( + pair => { + float distance = Mathf.Abs(distanceFromLeft - pair.Key); + return distance < kTileGroupThreshold; + }).Value; + + /// Found a tile group within range. + if (tilesAtDistance != null) { + tilesAtDistance.Add(tile); + } else { + tilesAtDistance = new List(); + tilesAtDistance.Add(tile); + tilesByDistance.Add(distanceFromLeft, tilesAtDistance); + } + } + } + + tilesByDistanceFromLeft = tilesByDistance.Values.ToList(); + } + + private Vector3 GetTilePoint(RectTransform tileRect) { + switch (tileOrderBy) { + case TileOrderBy.Center: + return tileRect.rect.center; + case TileOrderBy.LeftEdge: + return tileRect.rect.min; + case TileOrderBy.LeftEdgeBySize: + return tileRect.rect.min - (tileRect.rect.size * 0.5f); + case TileOrderBy.RightEdge: + return tileRect.rect.max; + case TileOrderBy.RightEdgeBySize: + return tileRect.rect.max + (tileRect.rect.size * 0.5f); + default: + return Vector3.zero; + } + } + + private RectTransform GetTileCell(Transform tile) { + RectTransform cellRect; + + BaseTile Tile = tile.GetComponent(); + if (Tile != null) { + cellRect = Tile.Cell; + } else { + cellRect = tile.parent.GetComponent(); + } + return cellRect; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TiledPage.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TiledPage.cs.meta new file mode 100644 index 0000000..8be23ed --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TiledPage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ff116a42749d24b4090791509db76fad +timeCreated: 1471543441 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TranslateScrollEffect.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TranslateScrollEffect.cs new file mode 100644 index 0000000..abf00bf --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TranslateScrollEffect.cs @@ -0,0 +1,42 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// Class that will translate the pages of a PagedScrollRect based on the page's offset. +public class TranslateScrollEffect : BaseScrollEffect { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + [Tooltip("Determines the percentage of the page's offset that is applied to each axis.")] + public Vector3 Weights = new Vector3(1.0f, 0.0f, 0.0f); + + [Tooltip("Determines if the absolute offset will be used for the X axis.")] + public bool mirrorX; + + [Tooltip("Determines if the absolute offset will be used for the Y axis.")] + public bool mirrorY; + + [Tooltip("Determines if the absolute offset will be used for the Z axis.")] + public bool mirrorZ; + + public override void ApplyEffect(BaseScrollEffect.UpdateData updateData) { + float distance = updateData.pageOffset - updateData.scrollOffset; + float absDistance = Mathf.Abs(distance); + updateData.page.anchoredPosition3D = new Vector3( + (mirrorX ? absDistance : distance) * Weights.x, + (mirrorY ? absDistance : distance) * Weights.y, + (mirrorZ ? absDistance : distance) * Weights.z); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TranslateScrollEffect.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TranslateScrollEffect.cs.meta new file mode 100644 index 0000000..42663c1 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/PaginatedScrolling/ScrollEffects/TranslateScrollEffect.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 903ff5a247c7a42ef9a49292f4a04e66 +timeCreated: 1476756800 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling.meta new file mode 100644 index 0000000..eca677b --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0f48e3954868845b2aba4a12c3a0db62 +folderAsset: yes +timeCreated: 1489708605 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPool.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPool.cs new file mode 100644 index 0000000..4196ad7 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPool.cs @@ -0,0 +1,72 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.Assertions; +using System.Collections; +using System.Collections.Generic; + +/// Specialized version of Pool specifically built to work with GameObjects. +/// +/// GameObjects in the pool are stored underneath a container object in the scene. +/// This container is scaled to (0,0,0) to hide the pooled objects. This is done instead +/// of disabling the pooled objects to prevent an issue where disabling & enabling objects +/// will generate a large amount of memory allocations. +/// +/// Additionally, when an object is returned to the pool it isn't reparented to the container +/// object until the end of the frame. This way, if the same object is borrowed again before +/// the end of the frame (a common occurence), it isn't reparented an extra time. +/// Reparenting an object can cause a significant amount of memory allocations and CPU load. +public class GameObjectPool : ObjectPool { + private GameObject prefab; + private GameObjectPoolController poolController; + + public GameObjectPool(GameObject prefab, int capacity) + : this(prefab, capacity, 0) { + } + + public GameObjectPool(GameObject prefab, int capacity, int preAllocateAmount) { + Assert.IsNotNull(prefab); + this.prefab = prefab; + + GameObject poolContainerObject = new GameObject(prefab.name + " Pool"); + poolController = poolContainerObject.AddComponent(); + poolController.Initialize(capacity); + + Initialize(capacity, preAllocateAmount); + } + + public override void Dispose() { + if (poolController != null) { + GameObject.Destroy(poolController.gameObject); + } + } + + protected override void OnBorrowed(GameObject borrowedObject) { + poolController.OnBorrowed(borrowedObject); + } + + protected override void OnPooled(GameObject pooledObject) { + poolController.OnPooled(pooledObject); + } + + protected override void OnUnableToReturn(GameObject returnedObject) { + GameObject.Destroy(returnedObject); + } + + protected override GameObject AllocateObject() { + GameObject obj = GameObject.Instantiate(prefab); + return obj; + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPool.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPool.cs.meta new file mode 100644 index 0000000..d0afb48 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fdbbe3b6d356a42e0a601b5533e1ccab +timeCreated: 1489614052 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPoolController.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPoolController.cs new file mode 100644 index 0000000..bd9323b --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPoolController.cs @@ -0,0 +1,49 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +/// Used by GameObjectPool to manage the pooled GameObjects within the scene graph. +public class GameObjectPoolController : MonoBehaviour { + private Stack toReparentStack; + + public void Initialize(int capacity) { + transform.localScale = Vector3.zero; + toReparentStack = new Stack(capacity); + } + + public void OnBorrowed(GameObject borrowedObject) { + // The borrowed object will always be the most recently pooled object. + if (toReparentStack.Count > 0) { + toReparentStack.Pop(); + } + } + + public void OnPooled(GameObject pooledObject) { + toReparentStack.Push(pooledObject); + } + + void LateUpdate() { + if (toReparentStack.Count > 0) { + var enumerator = toReparentStack.GetEnumerator(); + while (enumerator.MoveNext()) { + GameObject obj = enumerator.Current; + obj.transform.SetParent(transform, false); + } + toReparentStack.Clear(); + } + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPoolController.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPoolController.cs.meta new file mode 100644 index 0000000..fe8403b --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/GameObjectPoolController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 202d210fc2b604dee928480c82722957 +timeCreated: 1489780898 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/IObjectPool.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/IObjectPool.cs new file mode 100644 index 0000000..4ad0b2b --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/IObjectPool.cs @@ -0,0 +1,37 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System; +using System.Collections; + +/// Interface for a pool of objects used by ObjectPoolManager to manage a +/// collection of Object Pools. Description of Object Pools design pattern is +/// described at https://en.wikipedia.org/wiki/Object_pool_pattern. +public interface IObjectPool : IDisposable { + /// The numver of objects that are currently allocated in the pool. + int NumAllocatedObjects { get; } + + /// Returns true if the pool currently has no objects in it. + bool IsPoolEmpty { get; } + + /// Returns true if the NumAllocatedObjects is equal to the capaciy of the pool. + bool IsPoolFull { get; } + + /// Clears all of the allocated objects from the pool. + void Clear(); + + /// Allocates amount objects in the pool. + void Allocate(int amount); +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/IObjectPool.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/IObjectPool.cs.meta new file mode 100644 index 0000000..c1b6f2c --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/IObjectPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 51ef2cf0304834078903f5268fb18eb4 +timeCreated: 1489619665 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPool.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPool.cs new file mode 100644 index 0000000..4e078fd --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPool.cs @@ -0,0 +1,137 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; + +/// Generic implementation for an object pool as described +/// at https://en.wikipedia.org/wiki/Object_pool_pattern. +/// Can be used to pool any class with a default constructor. +/// +/// If you need to do more than just call a default constructor when +/// allocating an object of type T or returning an object to the pool, +/// then create a subclass of ObjectPool to specialize it for a particular +/// type of object. See _GameObjectPool_ as an example. +public class ObjectPool : IObjectPool where T : class, new() { + protected Stack pool; + protected int capacity; + + public int NumAllocatedObjects { + get { + return pool.Count; + } + } + + public bool IsPoolEmpty { + get { + return pool.Count == 0; + } + } + + public bool IsPoolFull { + get { + return pool.Count == capacity; + } + } + + protected ObjectPool() { + } + + public ObjectPool(int capacity) : this(capacity, 0) { + } + + public ObjectPool(int capacity, int preAllocateAmount) { + Initialize(capacity, preAllocateAmount); + } + + public T Borrow() { + if (IsPoolEmpty) { + return AllocateObject(); + } + + T obj = pool.Pop(); + OnBorrowed(obj); + + return obj; + } + + public void Return(T obj) { + // Don't return object if pool is already full. + if (IsPoolFull) { + OnUnableToReturn(obj); + return; + } + + pool.Push(obj); + OnPooled(obj); + } + + public void Clear() { + pool.Clear(); + } + + public void Allocate(int amount) { + int counter = 0; + while (counter < amount && !IsPoolFull) { + AddObject(); + } + } + + public virtual void Dispose() { + } + + protected void Initialize(int capacity, int preAllocateAmount) { + if (capacity < 1) { + Debug.LogWarning("Capacity must be at least 1."); + capacity = 1; + } + + pool = new Stack(capacity); + this.capacity = capacity; + + if (preAllocateAmount > capacity) { + Debug.LogWarning("preAllocateAmount cannot be higher than capacity."); + preAllocateAmount = capacity; + } + + Allocate(preAllocateAmount); + } + + protected virtual void OnBorrowed(T borrowedObject) { + } + + protected virtual void OnPooled(T returnedObject) { + } + + protected virtual void OnUnableToReturn(T returnedObject) { + } + + protected virtual T AllocateObject() { + return new T(); + } + + private void AddObject() { + if (IsPoolFull) { + Debug.LogWarning("Cannot addObject, pool is already full."); + return; + } + + T obj = AllocateObject(); + + pool.Push(obj); + OnPooled(obj); + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPool.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPool.cs.meta new file mode 100644 index 0000000..e1b85a8 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d564aec5d00024e0cba425635c40069a +timeCreated: 1489601949 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPoolManager.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPoolManager.cs new file mode 100644 index 0000000..ee56228 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPoolManager.cs @@ -0,0 +1,90 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +/// Manages a collection of object pools and provides access to them by name. +public class ObjectPoolManager : MonoBehaviour { + private static ObjectPoolManager instance; + + public static ObjectPoolManager Instance { + get { + return instance; + } + } + + private Dictionary pools = new Dictionary(); + + public bool ContainsPool(string poolName) { + return pools.ContainsKey(poolName); + } + + public T GetPool(string poolName) + where T : class, IObjectPool { + IObjectPool pool; + if (pools.TryGetValue(poolName, out pool)) { + T result = pool as T; + if (result == null) { + Debug.LogError("Pool " + poolName + " is not of type " + typeof(T)); + } + + return result; + } + + return null; + } + + public void AddPool(string poolName, IObjectPool pool) { + if (ContainsPool(poolName)) { + Debug.LogError("Cannot add pool " + poolName + " because it already exists."); + return; + } + + pools.Add(poolName, pool); + } + + public void RemovePool(string poolName) { + IObjectPool pool; + if (!pools.TryGetValue(poolName, out pool)) { + return; + } + + pool.Dispose(); + pools.Remove(poolName); + } + + public void RemoveAllPools() { + var enumerator = pools.GetEnumerator(); + while (enumerator.MoveNext()) { + IObjectPool pool = enumerator.Current.Value; + pool.Dispose(); + } + pools.Clear(); + } + + void Awake() { + if (instance != null) { + Debug.LogError("Cannot have multiple instances of ObjectPoolManager."); + Destroy(this); + return; + } + instance = this; + } + + void OnDestroy() { + RemoveAllPools(); + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPoolManager.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPoolManager.cs.meta new file mode 100644 index 0000000..07dbba0 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Pooling/ObjectPoolManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 752806b3116324ed5a86f4709fea82ee +timeCreated: 1489619450 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs.meta new file mode 100644 index 0000000..9474498 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fbf91b5db603e4c06abb28960f270af9 +folderAsset: yes +timeCreated: 1475020772 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/Tab.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/Tab.cs new file mode 100644 index 0000000..d748c1c --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/Tab.cs @@ -0,0 +1,158 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; + +[RequireComponent(typeof(Toggle))] +public class Tab : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + /// The prefab to use for this tab's page. + [Tooltip("The prefab for this tab's page.")] + [SerializeField] + private GameObject pagePrefab; + + /// When the page is cached, it will only be instantiated the first + /// time the tab is opened. On subsequent times it will just be + /// activated/deactivated. + [Tooltip("Cache the page when the tab is closed.")] + [SerializeField] + private bool cachePage; + + private Toggle toggle; + + /// Represents the tab's page. + public GameObject Page { get; private set; } + + /// Returns true if the tab is open. + public bool IsOpen { get; private set; } + + void Awake() { + toggle = GetComponent(); + toggle.onValueChanged.AddListener(OnValueChanged); + OnValueChanged(toggle.isOn); + } + + void OnDestroy() { + toggle.onValueChanged.RemoveListener(OnValueChanged); + + if (Page != null) { + GameObject.Destroy(Page); + } + } + + void OnValidate() { + // Awake probably hasn't been called yet, so set this here. + toggle = GetComponent(); + + // Make sure that this tab is part of a ToggleGroup. + if (toggle.group == null) { + Debug.LogError("Tab (" + gameObject.name + ") must be part of a ToggleGroup."); + } + + // Make sure that the ToggleGroup has a TabGroup. + TabGroup tabGroup = FindTabGroup(); + if (tabGroup == null) { + Debug.LogError("Tab (" + gameObject.name + ")'s ToggleGroup must have a TabGroup."); + } + } + + /// Call this function to open this tab. + /// When called, the currently open tab in the + /// TabGroup will automatically be closed. + /// At least one Tab in the TabGroup must be open at all times. + public void Open() { + SetOpen(true); + } + + private void SetOpen(bool open) { + if (IsOpen == open) { + return; + } + + if (open) { + EnablePage(); + + // Transition In + IUITransition transition = FindTransition(); + if (transition != null) { + transition.TransitionIn(Page.transform, null, null); + } + + } else { + // Transition Out + IUITransition transition = FindTransition(); + if (transition != null) { + transition.TransitionOut(Page.transform, () => { + DisablePage(); + }, null); + } else { + DisablePage(); + } + } + + IsOpen = open; + + // Make sure the toggle is in the correct state + // in case SetOpen was called directly. + toggle.isOn = open; + + EventTrigger eventTrigger = GetComponent(); + if (eventTrigger != null) { + eventTrigger.enabled = !open; + } + } + + private void EnablePage() { + // If the page already exists, just activate it, + // otherwise create it. + if (Page != null) { + Page.SetActive(true); + } else { + Page = GameObject.Instantiate(pagePrefab); + TabGroup tabGroup = FindTabGroup(); + Page.transform.SetParent(tabGroup.TabPageParent, false); + } + } + + private void DisablePage() { + // If we are caching the page, then + // just deactivate it. Otherwise, destroy it. + if (cachePage) { + Page.SetActive(false); + } + else { + GameObject.Destroy(Page); + Page = null; + } + } + + private void OnValueChanged(bool isOn) { + SetOpen(isOn); + } + + private TabGroup FindTabGroup() { + // The TabGroup is expected to be on the same object as the ToggleGroup. + ToggleGroup toggleGroup = toggle.group; + TabGroup tabGroup = toggleGroup.GetComponent(); + return tabGroup; + } + + private IUITransition FindTransition() { + return GetComponent(); + } + +#endif // UNITY_HAS_GOOGLEVR &&(UNITY_ANDROID || UNITY_EDITOR +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/Tab.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/Tab.cs.meta new file mode 100644 index 0000000..4c28f94 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/Tab.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c2bcf79fd38b2441fa17fde42cfce34d +timeCreated: 1473207320 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/TabGroup.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/TabGroup.cs new file mode 100644 index 0000000..498f4ed --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/TabGroup.cs @@ -0,0 +1,82 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using System.Collections; +using System.Linq; + +/// This script is used to manage a group of Tabs. +/// +/// Tabs are automatically associated with this group based on +/// the ToggleGroup. Each Tab is required to be a Toggle. +/// +[RequireComponent(typeof(ToggleGroup))] +public class TabGroup : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + /// This Tab will be the tab that starts open + /// when the scene is initially loaded. + [Tooltip("The tab that should start open.")] + [SerializeField] + private Tab startingTab; + + /// This transform represents the parent that all tab pages + /// will be added under when the tab is opened. + [Tooltip("The parent for all of the tab's pages.")] + [SerializeField] + private Transform tabPageParent; + + private ToggleGroup toggleGroup; + + /// Returns the parent of all tab pages. + public Transform TabPageParent { + get { + return tabPageParent; + } + } + + /// Returns the currently open Tab. + public Tab OpenTab { + get { + Toggle toggle = toggleGroup.ActiveToggles().FirstOrDefault(); + if (toggle == null) { + return null; + } + + return toggle.GetComponent(); + } + } + + /// Returns the currently open page. + public GameObject OpenTabPage { + get { + Tab tab = OpenTab; + if (tab == null) { + return null; + } + + return tab.Page; + } + } + + void Awake() { + toggleGroup = GetComponent(); + } + + void Start() { + startingTab.Open(); + } + +#endif // UNITY_HAS_GOOGLEVR &&(UNITY_ANDROID || UNITY_EDITOR +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/TabGroup.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/TabGroup.cs.meta new file mode 100644 index 0000000..41aa236 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Tabs/TabGroup.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2e929ea12d3a54876a393d0bd4308308 +timeCreated: 1473207798 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions.meta new file mode 100644 index 0000000..859acda --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fdef64d2eb29e4155a714dc587f96c6d +folderAsset: yes +timeCreated: 1475020762 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/IUITransition.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/IUITransition.cs new file mode 100644 index 0000000..4864719 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/IUITransition.cs @@ -0,0 +1,25 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; + +public interface IUITransition { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + void TransitionIn(Transform toTransition, Action completeCallback, Action interruptCallback); + void TransitionOut(Transform toTransition, Action completeCallback, Action interruptCallback); +#endif // UNITY_HAS_GOOGLEVR &&(UNITY_ANDROID || UNITY_EDITOR +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/IUITransition.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/IUITransition.cs.meta new file mode 100644 index 0000000..ee75b51 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/IUITransition.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ccf6781681c206443940c80815bc18f3 +timeCreated: 1474588856 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/UIFadeTransition.cs b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/UIFadeTransition.cs new file mode 100644 index 0000000..bc38288 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/UIFadeTransition.cs @@ -0,0 +1,118 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Collections; + +public class UIFadeTransition : MonoBehaviour, IUITransition { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private bool transitioning; + private Action runningInterruptCallback; + + /// The amount of time that the effect takes. + [SerializeField] + [Tooltip("The amount of time that the effect takes.")] + private float durationSeconds = 0.25f; + + /// The amount of time to wait before transitioning in. + [SerializeField] + [Tooltip("The amount of time to wait before transitioning in.")] + private float transitionInDelaySeconds = 0.1875f; + + /// The amount of time to wait before transitioning out. + [SerializeField] + [Tooltip("The amount of time to wait before transitioning out.")] + private float transitionOutDelaySeconds = 0.0f; + + public void TransitionIn(Transform toTransition, Action completeCallback, Action interruptCallback) { + Transition(true, transitionInDelaySeconds, toTransition, completeCallback, interruptCallback); + } + + public void TransitionOut(Transform toTransition, Action completeCallback, Action interruptCallback) { + Transition(false, transitionOutDelaySeconds, toTransition, completeCallback, interruptCallback); + } + + private void Transition(bool transitionIn, + float delaySeconds, Transform toTransition, + Action completeCallback, + Action interruptCallback) { + if (transitioning) { + transitioning = false; + StopAllCoroutines(); + + if (runningInterruptCallback != null) { + runningInterruptCallback(); + } + } + + float targetAlpha = 0.0f; + if (transitionIn) { + targetAlpha = 1.0f; + } + + StartCoroutine(RunTransition(targetAlpha, delaySeconds, toTransition, completeCallback)); + runningInterruptCallback = interruptCallback; + transitioning = true; + } + + private IEnumerator RunTransition(float targetAlpha, float delaySeconds, Transform toTransition, Action callback) { + CanvasGroup canvasGroup = GetCanvasGroup(toTransition); + canvasGroup.alpha = 1.0f - targetAlpha; + + yield return new WaitForSeconds(delaySeconds); + + yield return StartCoroutine(RunFade(canvasGroup, targetAlpha)); + + runningInterruptCallback = null; + transitioning = false; + + if (callback != null) { + callback(); + } + } + + private IEnumerator RunFade(CanvasGroup canvasGroup, float targetAlpha) { + float minAlpha = 0.0f; + float maxAlpha = 1.0f; + targetAlpha = Mathf.Clamp(targetAlpha, minAlpha, maxAlpha); + float speed = 1.0f / durationSeconds; + + if (targetAlpha > canvasGroup.alpha) { + maxAlpha = targetAlpha; + } else { + minAlpha = targetAlpha; + speed *= -1.0f; + } + + while (canvasGroup.alpha != targetAlpha) { + float newAlpha = canvasGroup.alpha; + newAlpha += Time.deltaTime * speed; + newAlpha = Mathf.Clamp(newAlpha, minAlpha, maxAlpha); + canvasGroup.alpha = newAlpha; + yield return null; + } + } + + private CanvasGroup GetCanvasGroup(Transform toTransition) { + CanvasGroup canvasGroup = toTransition.GetComponent(); + if (canvasGroup == null) { + canvasGroup = toTransition.gameObject.AddComponent(); + } + return canvasGroup; + } + +#endif // UNITY_HAS_GOOGLEVR &&(UNITY_ANDROID || UNITY_EDITOR +} diff --git a/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/UIFadeTransition.cs.meta b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/UIFadeTransition.cs.meta new file mode 100644 index 0000000..83b3cc1 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/ScrollingUIDemo/Transitions/UIFadeTransition.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a4ab599ee1dbcea41b165ae5170d9f03 +timeCreated: 1474588871 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo.meta new file mode 100644 index 0000000..757c9d5 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a0b590cb0333b487384953a9bb760570 +folderAsset: yes +timeCreated: 1471620442 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/AppButtonInput.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/AppButtonInput.cs new file mode 100644 index 0000000..d50396a --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/AppButtonInput.cs @@ -0,0 +1,36 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +namespace GVR.Input { + /// + /// Provides controller app button input through UnityEvents. + /// + public class AppButtonInput : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + public ButtonEvent OnAppUp; + public ButtonEvent OnAppDown; + + void Update() { + if (GvrController.AppButtonUp) + OnAppUp.Invoke(); + + if (GvrController.AppButtonDown) + OnAppDown.Invoke(); + } + +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/AppButtonInput.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/AppButtonInput.cs.meta new file mode 100644 index 0000000..f289e39 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/AppButtonInput.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9e216f327e132794b8e02093522ae84c +timeCreated: 1460403137 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/AutoPlayVideo.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/AutoPlayVideo.cs new file mode 100644 index 0000000..b422c3c --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/AutoPlayVideo.cs @@ -0,0 +1,67 @@ + +// +// Copyright (C) 2016 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +namespace GVRSample { + using UnityEngine; + + /// + /// Auto play video. + /// + /// This script exposes a delay value in seconds to start playing the TexturePlayer + /// component on the same object. + /// + + [RequireComponent(typeof(GvrVideoPlayerTexture))] + public class AutoPlayVideo : MonoBehaviour { + private bool done; + private float t; + private GvrVideoPlayerTexture player; + + public float delay = 2f; + public bool loop = false; + + void Start() { + t = 0; + done = false; + player = GetComponent(); + if (player != null) { + player.Init(); + } + } + + void Update() { + if (player == null) { + return; + } else if (player.PlayerState == GvrVideoPlayerTexture.VideoPlayerState.Ended && done && loop) { + player.Pause(); + player.CurrentPosition = 0; + done = false; + t = 0f; + return; + } + if (done) { + return; + } + + t += Time.deltaTime; + if (t >= delay && player != null) { + player.Play(); + done = true; + } + } + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/AutoPlayVideo.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/AutoPlayVideo.cs.meta new file mode 100644 index 0000000..5962679 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/AutoPlayVideo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2e71f5afb881f443bbce909fe451d8fe +timeCreated: 1471303020 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/InputEvents.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/InputEvents.cs new file mode 100644 index 0000000..c6965a7 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/InputEvents.cs @@ -0,0 +1,43 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using UnityEngine; +using UnityEngine.Events; + +namespace GVR.Input { + [Serializable] + public class Vector3Event : UnityEvent { } + + [Serializable] + public class Vector2Event : UnityEvent { } + + [Serializable] + public class FloatEvent : UnityEvent { } + + [Serializable] + public class BoolEvent : UnityEvent { } + + [Serializable] + public class ButtonEvent : UnityEvent { } + + [Serializable] + public class TouchPadEvent : UnityEvent { } + + [Serializable] + public class TransformEvent : UnityEvent { } + + [Serializable] + public class GameObjectEvent : UnityEvent { } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/InputEvents.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/InputEvents.cs.meta new file mode 100644 index 0000000..1123872 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/InputEvents.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: efe7e44b35e61314983888468dcb5686 +timeCreated: 1460124774 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/MenuHandler.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/MenuHandler.cs new file mode 100644 index 0000000..e877dc0 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/MenuHandler.cs @@ -0,0 +1,64 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +public class MenuHandler : MonoBehaviour { + public GameObject[] menuObjects; + + public void HideMenu() { + foreach (GameObject m in menuObjects) { + Renderer r = m.GetComponent(); + if (r != null) { + r.enabled = false; + } else { + m.SetActive(false); + } + StartCoroutine(DoFade()); + } + } + + public void ShowMenu() { + foreach (GameObject m in menuObjects) { + Renderer r = m.GetComponent(); + if (r != null) { + r.enabled = true; + } else { + m.SetActive(true); + } + } + StartCoroutine(DoAppear()); + } + + IEnumerator DoAppear() { + CanvasGroup cg = GetComponent(); + while (cg.alpha < 1.0) { + cg.alpha += Time.deltaTime * 2; + yield return null; + } + cg.interactable = true; + yield break; + } + + IEnumerator DoFade() { + CanvasGroup cg = GetComponent(); + while (cg.alpha > 0) { + cg.alpha -= Time.deltaTime; + yield return null; + } + cg.interactable = false; + yield break; + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/MenuHandler.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/MenuHandler.cs.meta new file mode 100644 index 0000000..fd7a968 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/MenuHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7304a3fe3b19a4eb8ba4e4b21008b2f0 +timeCreated: 1475106364 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/PositionSwapper.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/PositionSwapper.cs new file mode 100644 index 0000000..ab239f6 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/PositionSwapper.cs @@ -0,0 +1,88 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +namespace GVR.Events { + /// + /// Sets the position of the transform to a position specifed in a list. + /// + public class PositionSwapper : MonoBehaviour { + private int currentIndex = -1; + + public Vector3[] Positions = new Vector3[0]; + + public void SetConstraint(int index) { } + + public void SetPosition(int index) { + currentIndex = index % Positions.Length; + transform.localPosition = Positions[currentIndex]; + } + +#if UNITY_EDITOR + private static void SaveToIndex(UnityEditor.MenuCommand mc, int index) { + PositionSwapper ps = mc.context as PositionSwapper; + while (ps.Positions.Length <= index) { + UnityEditor.ArrayUtility.Add(ref ps.Positions, Vector3.zero); + } + ps.Positions[index] = ps.transform.localPosition; + } + + private static void LoadIndex(UnityEditor.MenuCommand mc, int index) { + PositionSwapper ps = mc.context as PositionSwapper; + ps.SetPosition(index); + } + + [UnityEditor.MenuItem("CONTEXT/PositionSwapper/SavePositionToIndex0")] + private static void SaveToIndex0(UnityEditor.MenuCommand mc) { + SaveToIndex(mc, 0); + } + + [UnityEditor.MenuItem("CONTEXT/PositionSwapper/SavePositionToIndex1")] + private static void SaveToIndex1(UnityEditor.MenuCommand mc) { + SaveToIndex(mc, 1); + } + + [UnityEditor.MenuItem("CONTEXT/PositionSwapper/SavePositionToIndex2")] + private static void SaveToIndex2(UnityEditor.MenuCommand mc) { + SaveToIndex(mc, 2); + } + + [UnityEditor.MenuItem("CONTEXT/PositionSwapper/SavePositionToIndex3")] + private static void SaveToIndex3(UnityEditor.MenuCommand mc) { + SaveToIndex(mc, 3); + } + + [UnityEditor.MenuItem("CONTEXT/PositionSwapper/LoadPosition0")] + private static void LoadPosition0(UnityEditor.MenuCommand mc) { + LoadIndex(mc, 0); + } + + [UnityEditor.MenuItem("CONTEXT/PositionSwapper/LoadPosition1")] + private static void LoadPosition1(UnityEditor.MenuCommand mc) { + LoadIndex(mc, 1); + } + + [UnityEditor.MenuItem("CONTEXT/PositionSwapper/LoadPosition2")] + private static void LoadPosition2(UnityEditor.MenuCommand mc) { + LoadIndex(mc, 2); + } + + [UnityEditor.MenuItem("CONTEXT/PositionSwapper/LoadPosition3")] + private static void LoadPosition3(UnityEditor.MenuCommand mc) { + LoadIndex(mc, 3); + } +#endif // UNITY_EDITOR + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/PositionSwapper.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/PositionSwapper.cs.meta new file mode 100644 index 0000000..5352881 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/PositionSwapper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 680140f42b355d442a0a57a1d8fcc4b1 +timeCreated: 1463151666 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/ScrubberEvents.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/ScrubberEvents.cs new file mode 100644 index 0000000..23ec08f --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/ScrubberEvents.cs @@ -0,0 +1,86 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +public class ScrubberEvents : MonoBehaviour { + private GameObject newPositionHandle; + + private Vector3[] corners; + private Slider slider; + + private VideoControlsManager mgr; + GvrPointerInputModule inp; + + public VideoControlsManager ControlManager { + set { + mgr = value; + } + } + + void Start() { + foreach (Image im in GetComponentsInChildren(true)) { + if (im.gameObject.name == "newPositionHandle") { + newPositionHandle = im.gameObject; + break; + } + } + + corners = new Vector3[4]; + GetComponent().rectTransform.GetWorldCorners(corners); + slider = GetComponentInParent(); + } + + void Update() { + if (inp != null && inp.transform.position != Vector3.zero) { + newPositionHandle.transform.position = new Vector3( + inp.transform.position.x, + newPositionHandle.transform.position.y, + newPositionHandle.transform.position.z); + } else { + newPositionHandle.transform.position = slider.handleRect.transform.position; + } + } + + public void OnPointerEnter(BaseEventData data) { + inp = data.currentInputModule as GvrPointerInputModule; + if (inp != null && inp.transform.position != Vector3.zero) { + newPositionHandle.transform.position = new Vector3( + inp.transform.position.x, + newPositionHandle.transform.position.y, + newPositionHandle.transform.position.z); + } + newPositionHandle.SetActive(true); + } + + public void OnPointerExit(BaseEventData data) { + inp = null; + newPositionHandle.SetActive(false); + } + + public void OnPointerClick(BaseEventData data) { + + float minX = corners[0].x; + float maxX = corners[3].x; + + float pct = (newPositionHandle.transform.position.x - minX) / (maxX - minX); + + if (mgr != null) { + long p = (long)(slider.maxValue * pct); + mgr.Player.CurrentPosition = p; + } + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/ScrubberEvents.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/ScrubberEvents.cs.meta new file mode 100644 index 0000000..1c9b33e --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/ScrubberEvents.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0cc7f51d6c6b140f79f7afded8b84284 +timeCreated: 1472155348 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/SwitchVideos.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/SwitchVideos.cs new file mode 100644 index 0000000..4c82742 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/SwitchVideos.cs @@ -0,0 +1,101 @@ +// Copyright (C) 2016 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using System.Collections; +using UnityEngine; +using UnityEngine.UI; + +public class SwitchVideos : MonoBehaviour { + public GameObject localVideoSample; + public GameObject dashVideoSample; + public GameObject panoVideoSample; + + private GameObject[] videoSamples; + + public Text missingLibText; + + public void Awake() { + videoSamples = new GameObject[3]; + videoSamples[0] = localVideoSample; + videoSamples[1] = dashVideoSample; + videoSamples[2] = panoVideoSample; + + string NATIVE_LIBS_MISSING_MESSAGE = "Video Support libraries not found or could not be loaded!\n" + + "Please add the GVRVideoPlayer.unitypackage\n to this project"; + + if (missingLibText != null) { + try { + IntPtr ptr = GvrVideoPlayerTexture.CreateVideoPlayer(); + if (ptr != IntPtr.Zero) { + GvrVideoPlayerTexture.DestroyVideoPlayer(ptr); + missingLibText.enabled = false; + } else { + missingLibText.text = NATIVE_LIBS_MISSING_MESSAGE; + missingLibText.enabled = true; + } + } catch (Exception e) { + Debug.LogError(e); + missingLibText.text = NATIVE_LIBS_MISSING_MESSAGE; + missingLibText.enabled = true; + } + } + } + + public void ShowMainMenu() { + ShowSample(-1); + } + + public void OnFlatLocal() { + ShowSample(0); + } + + public void OnDash() { + ShowSample(1); + } + + public void On360Video() { + ShowSample(2); + } + + private void ShowSample(int index) { + // If the libs are missing, always show the main menu. + if (missingLibText != null && missingLibText.enabled) { + index = -1; + } + + for (int i = 0; i < videoSamples.Length; i++) { + if (videoSamples[i] != null) { + + if (i != index) { + if (videoSamples[i].activeSelf) { + videoSamples[i].GetComponentInChildren().CleanupVideo(); + } + } else { + videoSamples[i].GetComponentInChildren().ReInitializeVideo(); + } + // GvrVideoPlayerTexture needs an additional frame after CleanupVideo() to finish + // cleanup and allow its coroutine to exit, otherwise it gets permenantly stuck + // if it is deactivated too soon. + StartCoroutine(SetActiveDelayed(videoSamples[i], i == index)); + } + } + GetComponent().enabled = index == -1; + } + + private IEnumerator SetActiveDelayed(GameObject go, bool state) { + yield return new WaitForEndOfFrame(); + go.SetActive(state); + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/SwitchVideos.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/SwitchVideos.cs.meta new file mode 100644 index 0000000..0eb16ff --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/SwitchVideos.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 114ed7f3f1d114a2988b1f93a233b40e +timeCreated: 1472683809 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/ToggleAction.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/ToggleAction.cs new file mode 100644 index 0000000..23ee918 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/ToggleAction.cs @@ -0,0 +1,76 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.Events; + +namespace GVR.Events { + /// + /// Throws a Unity event when the internal state is changed. This + /// component can be used by other components the fire Unity Events in + /// order to do some lightweight state tracking. + /// + public class ToggleAction : MonoBehaviour { + private float lastUsage; + private bool on; + + [Tooltip("Event to raise when this is toggled on.")] + public UnityEvent OnToggleOn; + + [Tooltip("Event to raise when this is toggled off.")] + public UnityEvent OnToggleOff; + + [Tooltip("Should this initial state be on or off?")] + public bool InitialState; + + [Tooltip("Should an event be raised for the initial state on Start?")] + public bool RaiseEventForInitialState; + + [Tooltip("Time required between toggle operations. Operations Toggles within this window " + + "will be ignored.")] + public float Cooldown; + + void Start() { + on = InitialState; + if (RaiseEventForInitialState) { + RaiseToggleEvent(on); + } + } + + public void Toggle() { + if (Time.time - lastUsage < Cooldown) { + return; + } + lastUsage = Time.time; + on = !on; + RaiseToggleEvent(on); + } + + public void Set(bool on) { + if (this.on == on) { + return; + } + this.on = on; + RaiseToggleEvent(on); + } + + private void RaiseToggleEvent(bool on) { + if (on) { + OnToggleOn.Invoke(); + } else { + OnToggleOff.Invoke(); + } + } + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/ToggleAction.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/ToggleAction.cs.meta new file mode 100644 index 0000000..ea5dc6d --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/ToggleAction.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d1b8f07442700094898145567ef1f203 +timeCreated: 1460408320 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoControlsManager.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoControlsManager.cs new file mode 100644 index 0000000..a45d3da --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoControlsManager.cs @@ -0,0 +1,216 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; +using UnityEngine.UI; + +public class VideoControlsManager : MonoBehaviour { + private GameObject pauseSprite; + private GameObject playSprite; + + private Slider videoScrubber; + private Slider volumeSlider; + private GameObject volumeWidget; + private GameObject settingsPanel; + private GameObject bufferedBackground; + private Vector3 basePosition; + private Text videoPosition; + private Text videoDuration; + + public GvrVideoPlayerTexture Player + { + set; + get; + } + + void Awake() { + foreach (Text t in GetComponentsInChildren()) { + if (t.gameObject.name == "curpos_text") { + videoPosition = t; + } else if (t.gameObject.name == "duration_text") { + videoDuration = t; + } + } + + foreach (RawImage raw in GetComponentsInChildren(true)) { + if (raw.gameObject.name == "playImage") { + playSprite = raw.gameObject; + } else if (raw.gameObject.name == "pauseImage") { + pauseSprite = raw.gameObject; + } + } + + foreach (Slider s in GetComponentsInChildren(true)) { + if (s.gameObject.name == "video_slider") { + videoScrubber = s; + videoScrubber.maxValue = 100; + videoScrubber.minValue = 0; + foreach (Image i in videoScrubber.GetComponentsInChildren()) { + if (i.gameObject.name == "BufferedBackground") { + bufferedBackground = i.gameObject; + } + } + } else if (s.gameObject.name == "volume_slider") { + volumeSlider = s; + } + } + + foreach (RectTransform obj in GetComponentsInChildren(true)) { + if (obj.gameObject.name == "volume_widget") { + volumeWidget = obj.gameObject; + } else if (obj.gameObject.name == "settings_panel") { + settingsPanel = obj.gameObject; + } + } + } + + void Start() { + foreach (ScrubberEvents s in GetComponentsInChildren(true)) { + s.ControlManager = this; + } + + if (Player != null) { + Player.Init(); + } + } + + void Update() { + if ((!Player.VideoReady || Player.IsPaused)) { + pauseSprite.SetActive(false); + playSprite.SetActive(true); + } else if (Player.VideoReady && !Player.IsPaused) { + pauseSprite.SetActive(true); + playSprite.SetActive(false); + } + + if (Player.VideoReady) { + if (basePosition == Vector3.zero) { + basePosition = videoScrubber.handleRect.localPosition; + } + videoScrubber.maxValue = Player.VideoDuration; + videoScrubber.value = Player.CurrentPosition; + + float pct = Player.BufferedPercentage / 100.0f; + float sx = Mathf.Clamp(pct, 0, 1f); + bufferedBackground.transform.localScale = new Vector3(sx, 1, 1); + bufferedBackground.transform.localPosition = + new Vector3(basePosition.x - (basePosition.x * sx), 0, 0); + + videoPosition.text = FormatTime(Player.CurrentPosition); + videoDuration.text = FormatTime(Player.VideoDuration); + + if (volumeSlider != null) { + volumeSlider.minValue = 0; + volumeSlider.maxValue = Player.MaxVolume; + volumeSlider.value = Player.CurrentVolume; + } + } else { + videoScrubber.value = 0; + } + } + + public void OnVolumeUp() { + if (Player.CurrentVolume < Player.MaxVolume) { + Player.CurrentVolume += 1; + } + } + + public void OnVolumeDown() { + if (Player.CurrentVolume > 0) { + Player.CurrentVolume -= 1; + } + } + + public void OnToggleVolume() { + bool visible = !volumeWidget.activeSelf; + volumeWidget.SetActive(visible); + + // close settings if volume opens. + settingsPanel.SetActive(settingsPanel.activeSelf && !visible); + } + + public void OnToggleSettings() { + bool visible = !settingsPanel.activeSelf; + settingsPanel.SetActive(visible); + + // close settings if volume opens. + volumeWidget.SetActive(volumeWidget.activeSelf && !visible); + } + + public void OnPlayPause() { + bool isPaused = Player.IsPaused; + if (isPaused) { + Player.Play(); + } else { + Player.Pause(); + } + pauseSprite.SetActive(isPaused); + playSprite.SetActive(!isPaused); + CloseSubPanels(); + } + + public void OnVolumePositionChanged(float val) { + if (Player.VideoReady) { + Debug.Log("Setting current volume to " + val); + Player.CurrentVolume = (int)val; + } + } + + public void CloseSubPanels() { + volumeWidget.SetActive(false); + settingsPanel.SetActive(false); + } + + public void Fade(bool show) { + if (show) { + StartCoroutine(DoAppear()); + } else { + StartCoroutine(DoFade()); + } + } + + IEnumerator DoAppear() { + CanvasGroup cg = GetComponent(); + while (cg.alpha < 1.0) { + cg.alpha += Time.deltaTime * 2; + yield return null; + } + cg.interactable = true; + yield break; + } + + IEnumerator DoFade() { + CanvasGroup cg = GetComponent(); + while (cg.alpha > 0) { + cg.alpha -= Time.deltaTime; + yield return null; + } + cg.interactable = false; + CloseSubPanels(); + yield break; + } + + private string FormatTime(long ms) { + int sec = ((int)(ms / 1000L)); + int mn = sec / 60; + sec = sec % 60; + int hr = mn / 60; + mn = mn % 60; + if (hr > 0) { + return string.Format("{0:00}:{1:00}:{2:00}", hr, mn, sec); + } + return string.Format("{0:00}:{1:00}", mn, sec); + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoControlsManager.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoControlsManager.cs.meta new file mode 100644 index 0000000..97d89ad --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoControlsManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 11ce60bdf78924133940a4a64555e784 +timeCreated: 1471470978 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoPlayerReference.cs b/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoPlayerReference.cs new file mode 100644 index 0000000..fd096af --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoPlayerReference.cs @@ -0,0 +1,29 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using GVRSample; + +public class VideoPlayerReference : MonoBehaviour { + + public GvrVideoPlayerTexture player; + + void Awake() { +#if !UNITY_5_2 + GetComponentInChildren(true).Player = player; +#else + GetComponentInChildren().Player = player; +#endif + } +} diff --git a/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoPlayerReference.cs.meta b/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoPlayerReference.cs.meta new file mode 100644 index 0000000..8da3763 --- /dev/null +++ b/Assets/GoogleVR/Demos/Scripts/VideoDemo/VideoPlayerReference.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 70f36fab7a81646eeb5c083264db5be0 +timeCreated: 1471625726 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Shaders.meta b/Assets/GoogleVR/Demos/Shaders.meta new file mode 100644 index 0000000..c0b6351 --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 195ccbb7ac29241f1b390a3fb04718af +folderAsset: yes +timeCreated: 1479418030 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Shaders/GVRDemo.meta b/Assets/GoogleVR/Demos/Shaders/GVRDemo.meta new file mode 100644 index 0000000..d84d6f5 --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/GVRDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a046f2daa89eb47d18fe233481b9e55e +folderAsset: yes +timeCreated: 1479426482 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoAmbientOcclusion.shader b/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoAmbientOcclusion.shader new file mode 100644 index 0000000..7969108 --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoAmbientOcclusion.shader @@ -0,0 +1,73 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/Demos/Unlit/GVRDemo AmbientOcclusion" +{ + Properties { + _MainTex ("Texture", 2D) = "white" {} + } + SubShader + { + Tags { "RenderType"="Opaque" "Queue"="Geometry" } + LOD 100 + + ZWrite On + ZTest LEqual + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + #include "../../../Distortion/GvrDistortion.cginc" + #include "../../../Shaders/GvrUnityCompatibility.cginc" + + struct appdata { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + //float4 worldPos : TEXCOORD1; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata v) { + v2f o; + + #if SHADER_API_MOBILE + o.vertex = undistortVertex(v.vertex); + #else + o.vertex = GvrUnityObjectToClipPos(v.vertex); + #endif // SHADER_API_MOBILE + + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + float4 frag (v2f i) : SV_Target { + // Sample the texture. + float col = tex2D(_MainTex, i.uv).a; + return col; + } + ENDCG + } + } +} diff --git a/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoAmbientOcclusion.shader.meta b/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoAmbientOcclusion.shader.meta new file mode 100644 index 0000000..82e5db7 --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoAmbientOcclusion.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 316a3ae9ab9c52444ba2a838966a8496 +timeCreated: 1474923324 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoUnlitGrayscaleToColor.shader b/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoUnlitGrayscaleToColor.shader new file mode 100644 index 0000000..295c566 --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoUnlitGrayscaleToColor.shader @@ -0,0 +1,73 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/Demos/Unlit/GVRDemo Color From Grayscale" +{ + Properties + { + _MainTex ("Texture (A)", 2D) = "" {} + _Color ("Color Overlay", Color) = (1,1,1,1) + _HighlightColor ("Highlight Tint", Color) = (0.63,0.52,0.38,0.66) + _ShadowColor ("Shadow Tint", Color) = (0.96,1,1,0.85) + } + + SubShader + { + Tags { "Queue"="Geometry" "RenderType"="Geometry"} + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + + #include "UnityCG.cginc" + #include "../../../Shaders/GvrUnityCompatibility.cginc" + + struct appdata { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata v) { + v2f o; + o.vertex = GvrUnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 _HighlightColor; + fixed4 _ShadowColor; + fixed4 _Color; + + fixed4 frag (v2f i) : SV_TARGET { + fixed alpha = tex2D(_MainTex, i.uv).a; + fixed3 highlight = max(0,(alpha*alpha)*_HighlightColor.rgb - (1 - _HighlightColor.a)); + fixed3 shadow = max(0,(alpha*_ShadowColor.rgb - Luminance(highlight)*_ShadowColor.a)); + fixed4 col = fixed4(highlight + shadow,0)*_Color; + return col; + } + ENDCG + } + } +} diff --git a/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoUnlitGrayscaleToColor.shader.meta b/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoUnlitGrayscaleToColor.shader.meta new file mode 100644 index 0000000..57fd535 --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/GVRDemo/GVRDemoUnlitGrayscaleToColor.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fbc799bc7ede6a940b24eff19a72979c +timeCreated: 1474923324 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Shaders/VideoDemo.meta b/Assets/GoogleVR/Demos/Shaders/VideoDemo.meta new file mode 100644 index 0000000..fbf17cc --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/VideoDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 13fdc04e72eec47a0b731dd2eb1e055b +folderAsset: yes +timeCreated: 1472591370 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoInsideShader.shader b/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoInsideShader.shader new file mode 100644 index 0000000..1088e0a --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoInsideShader.shader @@ -0,0 +1,93 @@ +// +// Copyright (C) 2016 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +// This shader switches the culling to the front side and inverts the normal so +// textures are drawn on the inside or back of the object. +// +Shader "GoogleVR/Demos/VideoDemo InsideShader" { + Properties { + _Gamma ("Video gamma", Range(0.01,3.0)) = 1.0 + _MainTex ("Base (RGB)", 2D) = "white" {} + _StereoVideo ("Render Stereo Video", Int) = 1 + } + + SubShader { + Pass { + Tags { "RenderType" = "Opaque" } + + // cull the outside, since we want to draw on the inside of the mesh. + Cull Front + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + #include "../../../Shaders/GvrUnityCompatibility.cginc" + + float4 _MainTex_ST; + sampler2D _MainTex; + int _StereoVideo; + float _Gamma; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + float3 gammaCorrect(float3 v) + { + return pow(v, 1.0/_Gamma); + } + + float3 gammaCorrectApprox(float3 v) + { + return rsqrt(v); + } + + // Apply the gamma correction. One possible optimization that could + // be applied is if _Gamma == 2.0, then use gammaCorrectApprox since sqrt will be faster. + // Also, if _Gamma == 1.0, then there is no effect, so this call could be skipped all together. + float4 gammaCorrect(float4 v) + { + return float4( gammaCorrect(v.xyz), v.w ); + } + + v2f vert (appdata_base v) { + v2f o; + // invert the normal of the vertex + v.normal.xyz = v.normal * -1; + o.pos = GvrUnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX (v.texcoord, _MainTex); + if (_StereoVideo > 0) { + o.uv.y *= 0.5f; + if(unity_StereoEyeIndex == 0) { + o.uv.y += 0.5f; + } + } + o.uv.x = 1 - o.uv.x; + return o; + } + + fixed4 frag (v2f i) : SV_Target { + return gammaCorrect(tex2D(_MainTex, i.uv)); + } + ENDCG + } + } + Fallback "Mobile/VertextLit" +} diff --git a/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoInsideShader.shader.meta b/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoInsideShader.shader.meta new file mode 100644 index 0000000..ade9b01 --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoInsideShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dbafce827ee1b4c86a41482aeacfb5dd +timeCreated: 1470165826 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoStereoShader.shader b/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoStereoShader.shader new file mode 100644 index 0000000..4b85b7d --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoStereoShader.shader @@ -0,0 +1,63 @@ +// +// Copyright (C) 2016 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// Shader that renders a "left on top" stereo texture +Shader "GoogleVR/Demos/VideoDemo StereoShader" { + Properties { + _MainTex ("Albedo (RGB)", 2D) = "white" {} + } + + SubShader { + Pass { + Tags { "RenderType"="Opaque" } + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + #include "../../../Shaders/GvrUnityCompatibility.cginc" + + float4 _MainTex_ST; + sampler2D _MainTex; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + v2f vert (appdata_base v) { + v2f o; + + o.pos = GvrUnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX (v.texcoord, _MainTex); + o.uv.y *= 0.5f; + + if(unity_StereoEyeIndex == 0) { + o.uv.y += 0.5f; + } + + return o; + } + + fixed4 frag (v2f i) : SV_Target { + return tex2D(_MainTex, i.uv); + } + ENDCG + } + } + Fallback "Mobile/VertextLit" +} diff --git a/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoStereoShader.shader.meta b/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoStereoShader.shader.meta new file mode 100644 index 0000000..9c1fcc7 --- /dev/null +++ b/Assets/GoogleVR/Demos/Shaders/VideoDemo/VideoDemoStereoShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 93c53ccfa3d0a45158d4eece792df52a +timeCreated: 1471883580 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Sounds.meta b/Assets/GoogleVR/Demos/Sounds.meta new file mode 100644 index 0000000..43cb610 --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3d729278f721946da995826756ef4d5a +folderAsset: yes +timeCreated: 1479426592 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Sounds/GVRDemo.meta b/Assets/GoogleVR/Demos/Sounds/GVRDemo.meta new file mode 100644 index 0000000..97a0d94 --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds/GVRDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 803b677f7e8af405b840c081a7856929 +folderAsset: yes +timeCreated: 1479426602 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Sounds/GVRDemo/CubeSound.wav b/Assets/GoogleVR/Demos/Sounds/GVRDemo/CubeSound.wav new file mode 100644 index 0000000..ac7b323 Binary files /dev/null and b/Assets/GoogleVR/Demos/Sounds/GVRDemo/CubeSound.wav differ diff --git a/Assets/GoogleVR/Demos/Sounds/GVRDemo/CubeSound.wav.meta b/Assets/GoogleVR/Demos/Sounds/GVRDemo/CubeSound.wav.meta new file mode 100644 index 0000000..374d697 --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds/GVRDemo/CubeSound.wav.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 580c1230165b44be4922e61f9d4e2613 +AudioImporter: + serializedVersion: 4 + format: -1 + quality: .5 + stream: 1 + 3D: 0 + forceToMono: 0 + useHardware: 0 + loopable: 0 + userData: diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo.meta b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo.meta new file mode 100644 index 0000000..02db0f7 --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1953b80d78cc3e14c8e2ee7154be3127 +folderAsset: yes +timeCreated: 1475086985 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click.wav b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click.wav new file mode 100644 index 0000000..61507a2 Binary files /dev/null and b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click.wav differ diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click.wav.meta b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click.wav.meta new file mode 100644 index 0000000..7ab403a --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 1092bf4d7d12aa441ad10818fcbab240 +timeCreated: 1475088369 +licenseType: Pro +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click_important.wav b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click_important.wav new file mode 100644 index 0000000..2a8db26 Binary files /dev/null and b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click_important.wav differ diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click_important.wav.meta b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click_important.wav.meta new file mode 100644 index 0000000..7bcf6ed --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_click_important.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: ec4642a7ec8557245a62d08bb0076fd9 +timeCreated: 1475088372 +licenseType: Pro +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_hover1.wav b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_hover1.wav new file mode 100644 index 0000000..5b12a59 Binary files /dev/null and b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_hover1.wav differ diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_hover1.wav.meta b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_hover1.wav.meta new file mode 100644 index 0000000..e8334ec --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/btn_hover1.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 3b1bac9d0cdfad24e9ffb75aa75e4f96 +timeCreated: 1475088376 +licenseType: Pro +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/card_hover1.wav b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/card_hover1.wav new file mode 100644 index 0000000..6301470 Binary files /dev/null and b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/card_hover1.wav differ diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/card_hover1.wav.meta b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/card_hover1.wav.meta new file mode 100644 index 0000000..1a2886f --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/card_hover1.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: d6a5401c53f86174799228f65f4f9b4d +timeCreated: 1475088362 +licenseType: Pro +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_left.wav b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_left.wav new file mode 100644 index 0000000..f76f344 Binary files /dev/null and b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_left.wav differ diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_left.wav.meta b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_left.wav.meta new file mode 100644 index 0000000..cea4d90 --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_left.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 14761055ede130c4d87d3d918ea7ca99 +timeCreated: 1475087384 +licenseType: Pro +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_right.wav b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_right.wav new file mode 100644 index 0000000..38bf538 Binary files /dev/null and b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_right.wav differ diff --git a/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_right.wav.meta b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_right.wav.meta new file mode 100644 index 0000000..a5a0525 --- /dev/null +++ b/Assets/GoogleVR/Demos/Sounds/ScrollingUIDemo/swipe_right.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 75900b9d8d4dc794bb7c2542dfa4c213 +timeCreated: 1475087384 +licenseType: Pro +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Textures.meta b/Assets/GoogleVR/Demos/Textures.meta new file mode 100644 index 0000000..fd64037 --- /dev/null +++ b/Assets/GoogleVR/Demos/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 494e6baa06c70403d83626a2cafa6c9e +folderAsset: yes +timeCreated: 1479418030 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Textures/GVRDemo.meta b/Assets/GoogleVR/Demos/Textures/GVRDemo.meta new file mode 100644 index 0000000..ed2b77d --- /dev/null +++ b/Assets/GoogleVR/Demos/Textures/GVRDemo.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 21d86777c20e3410da0f169870d9d05c +folderAsset: yes +timeCreated: 1479426540 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_solid.psd b/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_solid.psd new file mode 100644 index 0000000..b5afb73 Binary files /dev/null and b/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_solid.psd differ diff --git a/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_solid.psd.meta b/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_solid.psd.meta new file mode 100644 index 0000000..38130d7 --- /dev/null +++ b/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_solid.psd.meta @@ -0,0 +1,64 @@ +fileFormatVersion: 2 +guid: b0bcc8d84c8ddb640844056038891bb0 +timeCreated: 1479328793 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 5 + buildTargetSettings: + - buildTarget: Standalone + maxTextureSize: 128 + textureFormat: 1 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_translucent.psd b/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_translucent.psd new file mode 100644 index 0000000..2975ea8 Binary files /dev/null and b/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_translucent.psd differ diff --git a/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_translucent.psd.meta b/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_translucent.psd.meta new file mode 100644 index 0000000..cc49fef --- /dev/null +++ b/Assets/GoogleVR/Demos/Textures/GVRDemo/bigCube_translucent.psd.meta @@ -0,0 +1,64 @@ +fileFormatVersion: 2 +guid: 7a26379ecb2d64048b1af14e822eecc3 +timeCreated: 1479328793 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 5 + buildTargetSettings: + - buildTarget: Standalone + maxTextureSize: 64 + textureFormat: 1 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Distortion.meta b/Assets/GoogleVR/Distortion.meta new file mode 100644 index 0000000..e00d7e2 --- /dev/null +++ b/Assets/GoogleVR/Distortion.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 62f21f05848ab49dab5437386c77527a +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/GoogleVR/Distortion/GvrDistortion.cginc b/Assets/GoogleVR/Distortion/GvrDistortion.cginc new file mode 100644 index 0000000..868db99 --- /dev/null +++ b/Assets/GoogleVR/Distortion/GvrDistortion.cginc @@ -0,0 +1,99 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' + +// Copyright 2015 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +// To use in a surface shader, add the following text to the code: +// +// #pragma surface ... vertex:vert <-- add "vertex:vert" to this line +// #pragma multi_compile __ GVR_DISTORTION <-- copy the next 5 lines +// #include "GvrDistortion.cginc" +// void vert (inout appdata_base v) { +// v.vertex = undistortSurface(v.vertex); +// } + +// To use in a vertex shader, modify it as follows: +// +// #pragma multi_compile __ GVR_DISTORTION <-- add these 2 lines +// #include "GvrDistortion.cginc" +// +// v2f vert (appdata_blah v) { +// v2f o; +// o.vertex = undistortVertex(v.vertex); <-- replace "mul(UNITY_MATRIX_MVP, v.vertex)" +// ... +// return o; +// } + +#if defined(GVR_DISTORTION) + +float4x4 _Undistortion; +float _MaxRadSq; +float _NearClip; +float4x4 _RealProjection; +float4x4 _FixProjection; + +float distortionFactor(float rSquared) { + float ret = 0.0; + ret = rSquared * (ret + _Undistortion[1][1]); + ret = rSquared * (ret + _Undistortion[0][1]); + ret = rSquared * (ret + _Undistortion[3][0]); + ret = rSquared * (ret + _Undistortion[2][0]); + ret = rSquared * (ret + _Undistortion[1][0]); + ret = rSquared * (ret + _Undistortion[0][0]); + return ret + 1.0; +} + +// Convert point from world space to undistorted camera space. +float4 undistort(float4 pos) { + // Go to camera space. + pos = mul(UNITY_MATRIX_MV, pos); + if (pos.z <= -_NearClip) { // Reminder: Forward is -Z. + // Undistort the point's coordinates in XY. + float r2 = clamp(dot(pos.xy, pos.xy) / (pos.z*pos.z), 0, _MaxRadSq); + pos.xy *= distortionFactor(r2); + } + return pos; +} + +// Multiply by no-lens projection matrix after undistortion. +float4 undistortVertex(float4 pos) { + return mul(_RealProjection, undistort(pos)); +} + +// Surface shader hides away the MVP multiplication, so we have +// to multiply by _FixProjection = inverse(VP)*_RealProjection +// and then by inverse(M), in order to cancel it out and leave our +// own transform in place. +float4 undistortSurface(float4 pos) { + float4 proj = mul(_FixProjection, undistort(pos)); + return mul(unity_WorldToObject, proj); +} + +#else +// Distortion disabled. + +// Just do the standard MVP transform. +float4 undistortVertex(float4 pos) { + return UnityObjectToClipPos(pos); +} + +// Surface shader hides away the MVP multiplication, so just return pos. +float4 undistortSurface(float4 pos) { + return pos; +} + +#endif diff --git a/Assets/GoogleVR/Distortion/GvrDistortion.cginc.meta b/Assets/GoogleVR/Distortion/GvrDistortion.cginc.meta new file mode 100644 index 0000000..c1c59d4 --- /dev/null +++ b/Assets/GoogleVR/Distortion/GvrDistortion.cginc.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 2c745b211b2a34eb290d759affc53a92 +ShaderImporter: + defaultTextures: [] + userData: diff --git a/Assets/GoogleVR/Editor.meta b/Assets/GoogleVR/Editor.meta new file mode 100644 index 0000000..eb37299 --- /dev/null +++ b/Assets/GoogleVR/Editor.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 7c98c5ffcf17d49fc88af4e1d260f2cb +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/GoogleVR/Editor/Audio.meta b/Assets/GoogleVR/Editor/Audio.meta new file mode 100644 index 0000000..9f633c0 --- /dev/null +++ b/Assets/GoogleVR/Editor/Audio.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 78a71aad72f194df680b6901ce6f8480 +folderAsset: yes +timeCreated: 1482368339 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/Audio/GvrAudioListenerEditor.cs b/Assets/GoogleVR/Editor/Audio/GvrAudioListenerEditor.cs new file mode 100644 index 0000000..ce1c16b --- /dev/null +++ b/Assets/GoogleVR/Editor/Audio/GvrAudioListenerEditor.cs @@ -0,0 +1,67 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEditor; +using System.Collections; + +/// A custom editor for properties on the GvrAudioListener script. This appears in the Inspector +/// window of a GvrAudioListener object. +[CustomEditor(typeof(GvrAudioListener))] +public class GvrAudioListenerEditor : Editor { + private SerializedProperty globalGainDb = null; + private SerializedProperty occlusionMask = null; + private SerializedProperty quality = null; + + private GUIContent globalGainLabel = new GUIContent("Global Gain (dB)", + "Sets the global gain of the system. Can be used to adjust the overall output volume."); + private GUIContent occlusionMaskLabel = new GUIContent("Occlusion Mask", + "Sets the global layer mask for occlusion detection."); + private GUIContent qualityLabel = new GUIContent("Quality", + "Sets the quality mode in which the spatial audio will be rendered. " + + "Higher quality modes allow for increased fidelity at the cost of greater CPU usage."); + + void OnEnable () { + globalGainDb = serializedObject.FindProperty("globalGainDb"); + occlusionMask = serializedObject.FindProperty("occlusionMask"); + quality = serializedObject.FindProperty("quality"); + } + + /// @cond + public override void OnInspectorGUI () { + serializedObject.Update(); + + // Add clickable script field, as would have been provided by DrawDefaultInspector() + MonoScript script = MonoScript.FromMonoBehaviour (target as MonoBehaviour); + EditorGUI.BeginDisabledGroup (true); + EditorGUILayout.ObjectField ("Script", script, typeof(MonoScript), false); + EditorGUI.EndDisabledGroup (); + + // Rendering quality can only be modified through the Inspector in Edit mode. + EditorGUI.BeginDisabledGroup (EditorApplication.isPlaying); + EditorGUILayout.PropertyField(quality, qualityLabel); + EditorGUI.EndDisabledGroup (); + + EditorGUILayout.Separator(); + + EditorGUILayout.Slider(globalGainDb, GvrAudio.minGainDb, GvrAudio.maxGainDb, globalGainLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(occlusionMask, occlusionMaskLabel); + + serializedObject.ApplyModifiedProperties(); + } + /// @endcond +} diff --git a/Assets/GoogleVR/Editor/Audio/GvrAudioListenerEditor.cs.meta b/Assets/GoogleVR/Editor/Audio/GvrAudioListenerEditor.cs.meta new file mode 100644 index 0000000..bd08b20 --- /dev/null +++ b/Assets/GoogleVR/Editor/Audio/GvrAudioListenerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 846f7b1b78d8e4eb2a0db361797b6e76 +timeCreated: 1447979035 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/Audio/GvrAudioRoomEditor.cs b/Assets/GoogleVR/Editor/Audio/GvrAudioRoomEditor.cs new file mode 100644 index 0000000..b1840f2 --- /dev/null +++ b/Assets/GoogleVR/Editor/Audio/GvrAudioRoomEditor.cs @@ -0,0 +1,114 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEditor; +using System.Collections; + +/// A custom editor for properties on the GvrAudioRoom script. This appears in the Inspector window +/// of a GvrAudioRoom object. +[CustomEditor(typeof(GvrAudioRoom))] +[CanEditMultipleObjects] +public class GvrAudioRoomEditor : Editor { + private SerializedProperty leftWall = null; + private SerializedProperty rightWall = null; + private SerializedProperty floor = null; + private SerializedProperty ceiling = null; + private SerializedProperty backWall = null; + private SerializedProperty frontWall = null; + private SerializedProperty reflectivity = null; + private SerializedProperty reverbGainDb = null; + private SerializedProperty reverbBrightness = null; + private SerializedProperty reverbTime = null; + private SerializedProperty size = null; + + private GUIContent surfaceMaterialsLabel = new GUIContent("Surface Materials", + "Room surface materials to calculate the acoustic properties of the room."); + private GUIContent surfaceMaterialLabel = new GUIContent("Surface Material", + "Surface material used to calculate the acoustic properties of the room."); + private GUIContent reflectivityLabel = new GUIContent("Reflectivity", + "Adjusts what proportion of the direct sound is reflected back by each surface, after an " + + "appropriate delay. Reverberation is unaffected by this setting."); + private GUIContent reverbGainLabel = new GUIContent("Gain (dB)", + "Applies a gain adjustment to the reverberation in the room. The default value will leave " + + "reverb unaffected."); + private GUIContent reverbPropertiesLabel = new GUIContent("Reverb Properties", + "Parameters to adjust the reverb properties of the room."); + private GUIContent reverbBrightnessLabel = new GUIContent("Brightness", + "Adjusts the balance between high and low frequencies in the reverb."); + private GUIContent reverbTimeLabel = new GUIContent("Time", + "Adjusts the overall duration of the reverb by a positive scaling factor."); + private GUIContent sizeLabel = new GUIContent("Size", "Sets the room dimensions."); + + void OnEnable () { + leftWall = serializedObject.FindProperty("leftWall"); + rightWall = serializedObject.FindProperty("rightWall"); + floor = serializedObject.FindProperty("floor"); + ceiling = serializedObject.FindProperty("ceiling"); + backWall = serializedObject.FindProperty("backWall"); + frontWall = serializedObject.FindProperty("frontWall"); + reflectivity = serializedObject.FindProperty("reflectivity"); + reverbGainDb = serializedObject.FindProperty("reverbGainDb"); + reverbBrightness = serializedObject.FindProperty("reverbBrightness"); + reverbTime = serializedObject.FindProperty("reverbTime"); + size = serializedObject.FindProperty("size"); + } + + /// @cond + public override void OnInspectorGUI () { + serializedObject.Update(); + + // Add clickable script field, as would have been provided by DrawDefaultInspector() + MonoScript script = MonoScript.FromMonoBehaviour (target as MonoBehaviour); + EditorGUI.BeginDisabledGroup (true); + EditorGUILayout.ObjectField ("Script", script, typeof(MonoScript), false); + EditorGUI.EndDisabledGroup (); + + EditorGUILayout.LabelField(surfaceMaterialsLabel); + ++EditorGUI.indentLevel; + DrawSurfaceMaterial(leftWall); + DrawSurfaceMaterial(rightWall); + DrawSurfaceMaterial(floor); + DrawSurfaceMaterial(ceiling); + DrawSurfaceMaterial(backWall); + DrawSurfaceMaterial(frontWall); + --EditorGUI.indentLevel; + + EditorGUILayout.Separator(); + + EditorGUILayout.Slider(reflectivity, 0.0f, GvrAudio.maxReflectivity, reflectivityLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.LabelField(reverbPropertiesLabel); + ++EditorGUI.indentLevel; + EditorGUILayout.Slider(reverbGainDb, GvrAudio.minGainDb, GvrAudio.maxGainDb, reverbGainLabel); + EditorGUILayout.Slider(reverbBrightness, GvrAudio.minReverbBrightness, + GvrAudio.maxReverbBrightness, reverbBrightnessLabel); + EditorGUILayout.Slider(reverbTime, 0.0f, GvrAudio.maxReverbTime, reverbTimeLabel); + --EditorGUI.indentLevel; + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(size, sizeLabel); + + serializedObject.ApplyModifiedProperties(); + } + /// @endcond + + private void DrawSurfaceMaterial (SerializedProperty surfaceMaterial) { + surfaceMaterialLabel.text = surfaceMaterial.displayName; + EditorGUILayout.PropertyField(surfaceMaterial, surfaceMaterialLabel); + } +} diff --git a/Assets/GoogleVR/Editor/Audio/GvrAudioRoomEditor.cs.meta b/Assets/GoogleVR/Editor/Audio/GvrAudioRoomEditor.cs.meta new file mode 100644 index 0000000..9f865a2 --- /dev/null +++ b/Assets/GoogleVR/Editor/Audio/GvrAudioRoomEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2e20199949e8e4ecd992d68cf09fc902 +timeCreated: 1447979493 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/Audio/GvrAudioSoundfieldEditor.cs b/Assets/GoogleVR/Editor/Audio/GvrAudioSoundfieldEditor.cs new file mode 100644 index 0000000..84ca375 --- /dev/null +++ b/Assets/GoogleVR/Editor/Audio/GvrAudioSoundfieldEditor.cs @@ -0,0 +1,157 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEditor; +using System.Collections; + +/// A custom editor for properties on the GvrAudioSoundfield script. This appears in the Inspector +/// window of a GvrAudioSoundfield object. +[CustomEditor(typeof(GvrAudioSoundfield))] +[CanEditMultipleObjects] +public class GvrAudioSoundfieldEditor : Editor { + private SerializedProperty clip0102 = null; + private SerializedProperty clip0304 = null; + private SerializedProperty loop = null; + private SerializedProperty mute = null; + private SerializedProperty pitch = null; + private SerializedProperty playOnAwake = null; + private SerializedProperty priority = null; + private SerializedProperty spatialBlend = null; + private SerializedProperty volume = null; + private SerializedProperty dopplerLevel = null; + private SerializedProperty rolloffMode = null; + private SerializedProperty maxDistance = null; + private SerializedProperty minDistance = null; + private SerializedProperty bypassRoomEffects = null; + private SerializedProperty gainDb = null; + + private GUIContent clip0102Label = new GUIContent("Channels 1 & 2 (WY)", + "The AudioClip asset for the 1 & 2 channels (W & Y components) of the first-order " + + "ambisonic soundfield. Channels must be in Ambix (ACN/SN3D) format."); + private GUIContent clip0304Label = new GUIContent("Channels 3 & 4 (ZX)", + "The AudioClip asset for the 3 & 4 channels (Z & X components) of the first-order " + + "ambisonic soundfield. Channels must be in Ambix (ACN/SN3D) format."); + private GUIContent loopLabel = new GUIContent("Loop", + "Sets the soundfield to loop."); + private GUIContent muteLabel = new GUIContent("Mute", + "Mutes the sound."); + private GUIContent pitchLabel = new GUIContent("Pitch", + "Sets the frequency of the sound. Use this to slow down or speed up the sound."); + private GUIContent priorityLabel = new GUIContent("Priority", + "Sets the priority of the soundfield. Note that a sound with a larger priority value will " + + "more likely be stolen by sounds with smaller priority values."); + private GUIContent spatialBlendLabel = new GUIContent("Spatial Blend", + "Sets how much this soundfield is treated as a 3D source. Setting this value to 0 will " + + "ignore distance attenuation and doppler effects. However, it does not affect panning the " + + "sound around the listener."); + private GUIContent volumeLabel = new GUIContent("Volume", + "Sets the overall volume of the soundfield."); + private GUIContent dopplerLevelLabel = new GUIContent("Doppler Level", + "Specifies how much the pitch is changed based on the relative velocity between the " + + "soundfield and the listener."); + private GUIContent rolloffModeLabel = new GUIContent("Volume Rolloff", + "Which type of rolloff curve to use."); + private GUIContent maxDistanceLabel = new GUIContent("Max Distance", + "Max distance is the distance a sound stops attenuating at."); + private GUIContent minDistanceLabel = new GUIContent("Min Distance", + "Within the min distance, the volume will stay at the loudest possible. " + + "Outside this min distance it will begin to attenuate."); + private GUIContent playOnAwakeLabel = new GUIContent("Play On Awake", + "Play the sound when the scene loads."); + private GUIContent bypassRoomEffectsLabel = new GUIContent("Bypass Room Effects", + "Sets whether the room effects for the soundfield should be bypassed."); + private GUIContent gainLabel = new GUIContent("Gain (dB)", + "Applies a gain to the soundfield for adjustment of relative loudness."); + + void OnEnable () { + clip0102 = serializedObject.FindProperty("soundfieldClip0102"); + clip0304 = serializedObject.FindProperty("soundfieldClip0304"); + loop = serializedObject.FindProperty("soundfieldLoop"); + mute = serializedObject.FindProperty("soundfieldMute"); + pitch = serializedObject.FindProperty("soundfieldPitch"); + playOnAwake = serializedObject.FindProperty("playOnAwake"); + priority = serializedObject.FindProperty("soundfieldPriority"); + spatialBlend = serializedObject.FindProperty("soundfieldSpatialBlend"); + volume = serializedObject.FindProperty("soundfieldVolume"); + dopplerLevel = serializedObject.FindProperty("soundfieldDopplerLevel"); + rolloffMode = serializedObject.FindProperty("soundfieldRolloffMode"); + maxDistance = serializedObject.FindProperty("soundfieldMaxDistance"); + minDistance = serializedObject.FindProperty("soundfieldMinDistance"); + bypassRoomEffects = serializedObject.FindProperty("bypassRoomEffects"); + gainDb = serializedObject.FindProperty("gainDb"); + } + + /// @cond + public override void OnInspectorGUI () { + serializedObject.Update(); + + // Add clickable script field, as would have been provided by DrawDefaultInspector() + MonoScript script = MonoScript.FromMonoBehaviour (target as MonoBehaviour); + EditorGUI.BeginDisabledGroup (true); + EditorGUILayout.ObjectField ("Script", script, typeof(MonoScript), false); + EditorGUI.EndDisabledGroup (); + + EditorGUILayout.LabelField("AudioClip"); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(clip0102, clip0102Label); + EditorGUILayout.PropertyField(clip0304, clip0304Label); + EditorGUI.indentLevel--; + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(mute, muteLabel); + EditorGUILayout.PropertyField(bypassRoomEffects, bypassRoomEffectsLabel); + EditorGUILayout.PropertyField(playOnAwake, playOnAwakeLabel); + EditorGUILayout.PropertyField(loop, loopLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(priority, priorityLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(volume, volumeLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(pitch, pitchLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(spatialBlend, spatialBlendLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.Slider(gainDb, GvrAudio.minGainDb, GvrAudio.maxGainDb, gainLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(dopplerLevel, dopplerLevelLabel); + EditorGUILayout.PropertyField(rolloffMode, rolloffModeLabel); + ++EditorGUI.indentLevel; + EditorGUILayout.PropertyField(minDistance, minDistanceLabel); + EditorGUILayout.PropertyField(maxDistance, maxDistanceLabel); + --EditorGUI.indentLevel; + if (rolloffMode.enumValueIndex == (int)AudioRolloffMode.Custom) { + EditorGUILayout.HelpBox("Custom rolloff mode is not supported, no distance attenuation " + + "will be applied.", MessageType.Warning); + } + + EditorGUILayout.Separator(); + + serializedObject.ApplyModifiedProperties(); + } + /// @endcond +} diff --git a/Assets/GoogleVR/Editor/Audio/GvrAudioSoundfieldEditor.cs.meta b/Assets/GoogleVR/Editor/Audio/GvrAudioSoundfieldEditor.cs.meta new file mode 100644 index 0000000..a52f788 --- /dev/null +++ b/Assets/GoogleVR/Editor/Audio/GvrAudioSoundfieldEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 95b832a777470485b891baa8026133ce +timeCreated: 1466541793 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/Audio/GvrAudioSourceEditor.cs b/Assets/GoogleVR/Editor/Audio/GvrAudioSourceEditor.cs new file mode 100644 index 0000000..61e4585 --- /dev/null +++ b/Assets/GoogleVR/Editor/Audio/GvrAudioSourceEditor.cs @@ -0,0 +1,253 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEditor; +using System.Collections; + +/// A custom editor for properties on the GvrAudioSource script. This appears in the Inspector +/// window of a GvrAudioSource object. +[CustomEditor(typeof(GvrAudioSource))] +[CanEditMultipleObjects] +public class GvrAudioSourceEditor : Editor { + private SerializedProperty clip = null; + private SerializedProperty loop = null; + private SerializedProperty mute = null; + private SerializedProperty pitch = null; + private SerializedProperty playOnAwake = null; + private SerializedProperty priority = null; + private SerializedProperty spatialBlend = null; + private SerializedProperty volume = null; + private SerializedProperty dopplerLevel = null; + private SerializedProperty spread = null; + private SerializedProperty rolloffMode = null; + private SerializedProperty maxDistance = null; + private SerializedProperty minDistance = null; + private SerializedProperty bypassRoomEffects = null; + private SerializedProperty directivityAlpha = null; + private SerializedProperty directivitySharpness = null; + private SerializedProperty listenerDirectivityAlpha = null; + private SerializedProperty listenerDirectivitySharpness = null; + private Texture2D directivityTexture = null; + private SerializedProperty gainDb = null; + private SerializedProperty hrtfEnabled = null; + private SerializedProperty occlusionEnabled = null; + + private GUIContent clipLabel = new GUIContent("AudioClip", + "The AudioClip asset played by the GvrAudioSource."); + private GUIContent loopLabel = new GUIContent("Loop", + "Sets the source to loop."); + private GUIContent muteLabel = new GUIContent("Mute", + "Mutes the sound."); + private GUIContent pitchLabel = new GUIContent("Pitch", + "Sets the frequency of the sound. Use this to slow down or speed up the sound."); + private GUIContent priorityLabel = new GUIContent("Priority", + "Sets the priority of the source. Note that a sound with a larger priority value will more " + + "likely be stolen by sounds with smaller priority values."); + private GUIContent spatialBlendLabel = new GUIContent("Spatial Blend", + "Sets how much this source is treated as a 3D source. Setting this value to 0 will ignore " + + "distance attenuation and doppler effects. However, it does not affect panning the sound " + + "around the listener."); + private GUIContent volumeLabel = new GUIContent("Volume", + "Sets the overall volume of the sound."); + private GUIContent dopplerLevelLabel = new GUIContent("Doppler Level", + "Specifies how much the pitch is changed based on the relative velocity between the source " + + "and the listener."); + private GUIContent spreadLabel = new GUIContent("Spread", + "Source spread in degrees."); + private GUIContent rolloffModeLabel = new GUIContent("Volume Rolloff", + "Which type of rolloff curve to use."); + private GUIContent maxDistanceLabel = new GUIContent("Max Distance", + "Max distance is the distance a sound stops attenuating at."); + private GUIContent minDistanceLabel = new GUIContent("Min Distance", + "Within the min distance, the volume will stay at the loudest possible. " + + "Outside this min distance it will begin to attenuate."); + private GUIContent playOnAwakeLabel = new GUIContent("Play On Awake", + "Play the sound when the scene loads."); + private GUIContent bypassRoomEffectsLabel = new GUIContent("Bypass Room Effects", + "Sets whether the room effects for the source should be bypassed."); + private GUIContent directivityLabel = new GUIContent("Directivity", + "Controls the pattern of sound emission of the source. This can change the perceived " + + "loudness of the source depending on which way it is facing relative to the listener. " + + "Patterns are aligned to the 'forward' direction of the parent object."); + private GUIContent directivityAlphaLabel = new GUIContent("Alpha", + "Controls the balance between dipole pattern and omnidirectional pattern for source " + + "emission. By varying this value, differing directivity patterns can be formed."); + private GUIContent directivitySharpnessLabel = new GUIContent("Sharpness", + "Sets the sharpness of the directivity pattern. Higher values will result in increased " + + "directivity."); + private GUIContent listenerDirectivityLabel = new GUIContent("Listener Directivity", + "Controls the pattern of sound sensitivity of the listener for the source. This can " + + "change the perceived loudness of the source depending on which way the listener is facing " + + "relative to the source. Patterns are aligned to the 'forward' direction of the listener."); + private GUIContent listenerDirectivityAlphaLabel = new GUIContent("Alpha", + "Controls the balance between dipole pattern and omnidirectional pattern for listener " + + "sensitivity. By varying this value, differing directivity patterns can be formed."); + private GUIContent listenerDirectivitySharpnessLabel = new GUIContent("Sharpness", + "Sets the sharpness of the listener directivity pattern. Higher values will result in " + + "increased directivity."); + private GUIContent gainLabel = new GUIContent("Gain (dB)", + "Applies a gain to the source for adjustment of relative loudness."); + private GUIContent hrtfEnabledLabel = new GUIContent("Enable HRTF", + "Sets HRTF binaural rendering for the source. Note that this setting has no effect when " + + "stereo quality mode is selected globally."); + private GUIContent occlusionLabel = new GUIContent("Enable Occlusion", + "Sets whether the sound of the source should be occluded when there are other objects " + + "between the source and the listener."); + + void OnEnable () { + clip = serializedObject.FindProperty("sourceClip"); + loop = serializedObject.FindProperty("sourceLoop"); + mute = serializedObject.FindProperty("sourceMute"); + pitch = serializedObject.FindProperty("sourcePitch"); + playOnAwake = serializedObject.FindProperty("playOnAwake"); + priority = serializedObject.FindProperty("sourcePriority"); + spatialBlend = serializedObject.FindProperty("sourceSpatialBlend"); + volume = serializedObject.FindProperty("sourceVolume"); + dopplerLevel = serializedObject.FindProperty("sourceDopplerLevel"); + spread = serializedObject.FindProperty("sourceSpread"); + rolloffMode = serializedObject.FindProperty("sourceRolloffMode"); + maxDistance = serializedObject.FindProperty("sourceMaxDistance"); + minDistance = serializedObject.FindProperty("sourceMinDistance"); + bypassRoomEffects = serializedObject.FindProperty("bypassRoomEffects"); + directivityAlpha = serializedObject.FindProperty("directivityAlpha"); + directivitySharpness = serializedObject.FindProperty("directivitySharpness"); + listenerDirectivityAlpha = serializedObject.FindProperty("listenerDirectivityAlpha"); + listenerDirectivitySharpness = serializedObject.FindProperty("listenerDirectivitySharpness"); + directivityTexture = Texture2D.blackTexture; + gainDb = serializedObject.FindProperty("gainDb"); + hrtfEnabled = serializedObject.FindProperty("hrtfEnabled"); + occlusionEnabled = serializedObject.FindProperty("occlusionEnabled"); + } + + /// @cond + public override void OnInspectorGUI () { + serializedObject.Update(); + + // Add clickable script field, as would have been provided by DrawDefaultInspector() + MonoScript script = MonoScript.FromMonoBehaviour (target as MonoBehaviour); + EditorGUI.BeginDisabledGroup (true); + EditorGUILayout.ObjectField ("Script", script, typeof(MonoScript), false); + EditorGUI.EndDisabledGroup (); + + EditorGUILayout.PropertyField(clip, clipLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(mute, muteLabel); + EditorGUILayout.PropertyField(bypassRoomEffects, bypassRoomEffectsLabel); + EditorGUILayout.PropertyField(playOnAwake, playOnAwakeLabel); + EditorGUILayout.PropertyField(loop, loopLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(priority, priorityLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(volume, volumeLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(pitch, pitchLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(spatialBlend, spatialBlendLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.Slider(gainDb, GvrAudio.minGainDb, GvrAudio.maxGainDb, gainLabel); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(dopplerLevel, dopplerLevelLabel); + EditorGUILayout.PropertyField(spread, spreadLabel); + EditorGUILayout.PropertyField(rolloffMode, rolloffModeLabel); + ++EditorGUI.indentLevel; + EditorGUILayout.PropertyField(minDistance, minDistanceLabel); + EditorGUILayout.PropertyField(maxDistance, maxDistanceLabel); + --EditorGUI.indentLevel; + if (rolloffMode.enumValueIndex == (int)AudioRolloffMode.Custom) { + EditorGUILayout.HelpBox("Custom rolloff mode is not supported, no distance attenuation " + + "will be applied.", MessageType.Warning); + } + + EditorGUILayout.Separator(); + + // Draw the listener directivity properties. + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.BeginVertical(); + GUILayout.Label(listenerDirectivityLabel); + ++EditorGUI.indentLevel; + EditorGUILayout.Slider(listenerDirectivityAlpha, 0.0f, 1.0f, listenerDirectivityAlphaLabel); + EditorGUILayout.Slider(listenerDirectivitySharpness, 1.0f, 10.0f, + listenerDirectivitySharpnessLabel); + --EditorGUI.indentLevel; + EditorGUILayout.EndVertical(); + DrawDirectivityPattern(listenerDirectivityAlpha.floatValue, + listenerDirectivitySharpness.floatValue, + GvrAudio.listenerDirectivityColor, + (int)(3.0f * EditorGUIUtility.singleLineHeight)); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + + // Draw the source directivity properties. + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.BeginVertical(); + GUILayout.Label(directivityLabel); + ++EditorGUI.indentLevel; + EditorGUILayout.Slider(directivityAlpha, 0.0f, 1.0f, directivityAlphaLabel); + EditorGUILayout.Slider(directivitySharpness, 1.0f, 10.0f, directivitySharpnessLabel); + --EditorGUI.indentLevel; + EditorGUILayout.EndVertical(); + DrawDirectivityPattern(directivityAlpha.floatValue, directivitySharpness.floatValue, + GvrAudio.sourceDirectivityColor, + (int)(3.0f * EditorGUIUtility.singleLineHeight)); + EditorGUILayout.EndHorizontal(); + EditorGUILayout.PropertyField(occlusionEnabled, occlusionLabel); + + EditorGUILayout.Separator(); + + // HRTF toggle can only be modified through the Inspector in Edit mode. + EditorGUI.BeginDisabledGroup (EditorApplication.isPlaying); + EditorGUILayout.PropertyField(hrtfEnabled, hrtfEnabledLabel); + EditorGUI.EndDisabledGroup (); + + serializedObject.ApplyModifiedProperties(); + } + /// @endcond + + private void DrawDirectivityPattern (float alpha, float sharpness, Color color, int size) { + directivityTexture.Resize(size, size); + // Draw the axes. + Color axisColor = color.a * Color.black; + for (int i = 0; i < size; ++i) { + directivityTexture.SetPixel(i, size / 2, axisColor); + directivityTexture.SetPixel(size / 2, i, axisColor); + } + // Draw the 2D polar directivity pattern. + float offset = 0.5f * size; + float cardioidSize = 0.45f * size; + Vector2[] vertices = GvrAudio.Generate2dPolarPattern(alpha, sharpness, 180); + for (int i = 0; i < vertices.Length; ++i) { + directivityTexture.SetPixel((int)(offset + cardioidSize * vertices[i].x), + (int)(offset + cardioidSize * vertices[i].y), color); + } + directivityTexture.Apply(); + // Show the texture. + GUILayout.Box(directivityTexture); + } +} diff --git a/Assets/GoogleVR/Editor/Audio/GvrAudioSourceEditor.cs.meta b/Assets/GoogleVR/Editor/Audio/GvrAudioSourceEditor.cs.meta new file mode 100644 index 0000000..d5c94c1 --- /dev/null +++ b/Assets/GoogleVR/Editor/Audio/GvrAudioSourceEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 39eb02921e5624cf18f5b235bcc1e1cb +timeCreated: 1447979178 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/Controller.meta b/Assets/GoogleVR/Editor/Controller.meta new file mode 100644 index 0000000..03a941f --- /dev/null +++ b/Assets/GoogleVR/Editor/Controller.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 08317980f07004b32aefb3c4a32e6923 +folderAsset: yes +timeCreated: 1482368683 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/Controller/GvrTooltipEditor.cs b/Assets/GoogleVR/Editor/Controller/GvrTooltipEditor.cs new file mode 100644 index 0000000..faa6a26 --- /dev/null +++ b/Assets/GoogleVR/Editor/Controller/GvrTooltipEditor.cs @@ -0,0 +1,31 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEditor; + +/// A custom editor for the GvrTooltip script. It exists to surface to the user that the tooltip +/// changes based on handedness, and to make it easy to preview the handedness settings. +[CustomEditor(typeof(GvrTooltip)), CanEditMultipleObjects] +public class GvrTooltipEditor : Editor { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + public override void OnInspectorGUI() { + DrawDefaultInspector(); + EditorGUILayout.LabelField("Current Handedness", GvrSettings.Handedness.ToString(), EditorStyles.boldLabel); + if (GUILayout.Button("Change Handedness")) { + EditorWindow.GetWindow(typeof(GvrEditorSettings)); + } + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Editor/Controller/GvrTooltipEditor.cs.meta b/Assets/GoogleVR/Editor/Controller/GvrTooltipEditor.cs.meta new file mode 100644 index 0000000..e3f30e8 --- /dev/null +++ b/Assets/GoogleVR/Editor/Controller/GvrTooltipEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 23485e28fa60c463f8235998a0e76e6a +timeCreated: 1482187746 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/EventSystem.meta b/Assets/GoogleVR/Editor/EventSystem.meta new file mode 100644 index 0000000..9c2a06b --- /dev/null +++ b/Assets/GoogleVR/Editor/EventSystem.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 65bc44f11433145749eaf7219d8dfdd3 +folderAsset: yes +timeCreated: 1487103058 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/EventSystem/GvrPointerScrollInputEditor.cs b/Assets/GoogleVR/Editor/EventSystem/GvrPointerScrollInputEditor.cs new file mode 100644 index 0000000..58da0c9 --- /dev/null +++ b/Assets/GoogleVR/Editor/EventSystem/GvrPointerScrollInputEditor.cs @@ -0,0 +1,77 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using UnityEditor; + +[CustomPropertyDrawer(typeof(GvrPointerScrollInput), true)] +public class GvrPointerScrollInputEditor : PropertyDrawer { + private bool isExpanded = true; + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { + EditorGUI.BeginProperty(position, label, property); + + int rows = GetNumRows(property); + float totalHeight = position.height; + float rowHeight = totalHeight / rows; + position.height = rowHeight; + + isExpanded = EditorGUI.Foldout(position, isExpanded, label); + + if (isExpanded) { + EditorGUI.indentLevel++; + + // Inertia property. + SerializedProperty inertia = + property.FindPropertyRelative(GvrPointerScrollInput.PROPERTY_NAME_INERTIA); + + position.y += rowHeight; + EditorGUI.PropertyField(position, inertia); + + if (inertia.boolValue) { + EditorGUI.indentLevel++; + + // Deceleration rate property. + SerializedProperty decelerationRate = + property.FindPropertyRelative(GvrPointerScrollInput.PROPERTY_NAME_DECELERATION_RATE); + + position.y += rowHeight; + EditorGUI.PropertyField(position, decelerationRate); + + EditorGUI.indentLevel--; + } + EditorGUI.indentLevel--; + } + + EditorGUI.EndProperty(); + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { + return base.GetPropertyHeight(property, label) * GetNumRows(property); + } + + private int GetNumRows(SerializedProperty property) { + SerializedProperty inertia = + property.FindPropertyRelative(GvrPointerScrollInput.PROPERTY_NAME_INERTIA); + + if (!isExpanded) { + return 1; + } else if (!inertia.boolValue) { + return 2; + } else { + return 3; + } + } +} \ No newline at end of file diff --git a/Assets/GoogleVR/Editor/EventSystem/GvrPointerScrollInputEditor.cs.meta b/Assets/GoogleVR/Editor/EventSystem/GvrPointerScrollInputEditor.cs.meta new file mode 100644 index 0000000..c4abb86 --- /dev/null +++ b/Assets/GoogleVR/Editor/EventSystem/GvrPointerScrollInputEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: da538b2d940864934bfd4a6f2e6d0602 +timeCreated: 1487103089 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/GvrBuildProcessor.cs b/Assets/GoogleVR/Editor/GvrBuildProcessor.cs new file mode 100644 index 0000000..c5f521d --- /dev/null +++ b/Assets/GoogleVR/Editor/GvrBuildProcessor.cs @@ -0,0 +1,82 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if UNITY_5_6_OR_NEWER && (UNITY_ANDROID || UNITY_IOS) +using UnityEngine; +using UnityEngine.VR; +using UnityEditor; +using UnityEditor.Build; +using System.Linq; + +// Notifes users if they build for Android or iOS without Cardboard or Daydream enabled. +class GvrBuildProcessor : IPreprocessBuild { + private const string VR_SDK_DAYDREAM = "daydream"; + private const string VR_SDK_CARDBOARD = "cardboard"; + private const string OK_BUTTON_TEXT = "OK"; + private const string DISPLAY_DIALOG_TITLE = "Google VR SDK"; + private const string VR_SETTINGS_NOT_ENABLED_ERROR_MESSAGE = + "Please enable the 'Virtual Reality Supported' checkbox in 'Player Settings'."; + private const string IOS_MISSING_GVR_SDK_ERROR_MESSAGE = + "Please add 'Cardboard' in 'Player Settings > Virtual Reality SDKs'."; + private const string ANDROID_MISSING_GVR_SDK_ERROR_MESSAGE = + "Please add 'Daydream' or 'Cardboard' in 'Player Settings > Virtual Reality SDKs'."; + + public int callbackOrder { + get { return 0; } + } + + public void OnPreprocessBuild (BuildTarget target, string path) + { + // 'Player Settings > Virtual Reality Supported' must be enabled. + if (!IsVRSupportEnabled()) { + EditorUtility.DisplayDialog (DISPLAY_DIALOG_TITLE, + VR_SETTINGS_NOT_ENABLED_ERROR_MESSAGE, OK_BUTTON_TEXT); + return; + } + + if (target == BuildTarget.Android) { + // On Android VR SDKs must include 'Daydream' and/or 'Cardboard'. + if (!IsDaydreamSDKIncluded() && !IsCardboardSDKIncluded()) { + EditorUtility.DisplayDialog(DISPLAY_DIALOG_TITLE, + ANDROID_MISSING_GVR_SDK_ERROR_MESSAGE, OK_BUTTON_TEXT); + return; + } + } + + if (target == BuildTarget.iOS) { + // On iOS VR SDKs must include 'Cardboard'. + if (!IsCardboardSDKIncluded()) { + EditorUtility.DisplayDialog(DISPLAY_DIALOG_TITLE, + IOS_MISSING_GVR_SDK_ERROR_MESSAGE, OK_BUTTON_TEXT); + return; + } + } + } + + // 'Player Settings > Virtual Reality Supported' enabled? + private bool IsVRSupportEnabled() { + return PlayerSettings.virtualRealitySupported; + } + + // 'Player Settings > Virtual Reality SDKs' includes 'Daydream'? + private bool IsDaydreamSDKIncluded() { + return VRSettings.supportedDevices.Contains(VR_SDK_DAYDREAM); + } + + // 'Player Settings > Virtual Reality SDKs' includes 'Cardboard'? + private bool IsCardboardSDKIncluded() { + return VRSettings.supportedDevices.Contains(VR_SDK_CARDBOARD); + } +} +#endif // UNITY_5_6_OR_NEWER && (UNITY_ANDROID || UNITY_IOS) diff --git a/Assets/GoogleVR/Editor/GvrBuildProcessor.cs.meta b/Assets/GoogleVR/Editor/GvrBuildProcessor.cs.meta new file mode 100644 index 0000000..3c3aa61 --- /dev/null +++ b/Assets/GoogleVR/Editor/GvrBuildProcessor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: acad0e6b1721a4b30992f78c06434321 +timeCreated: 1490158482 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/GvrEditorSettings.cs b/Assets/GoogleVR/Editor/GvrEditorSettings.cs new file mode 100644 index 0000000..04d10a5 --- /dev/null +++ b/Assets/GoogleVR/Editor/GvrEditorSettings.cs @@ -0,0 +1,36 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEditor; +using System.Collections; + +/// A custom editor window used to set editor preferences for GoogleVR. +/// Editor preferences are editor specific options that help build and test +/// applications from within the Unity Editor. +class GvrEditorSettings : EditorWindow { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + void OnGUI () { + // Label for Controller Emulator settings + EditorGUILayout.LabelField("Controller Emulator", EditorStyles.boldLabel); + + // Option to control Handedness + GvrSettings.UserPrefsHandedness oldHandedness = GvrSettings.Handedness; + GvrSettings.Handedness = (GvrSettings.UserPrefsHandedness) EditorGUILayout.EnumPopup("Handedness", oldHandedness); + if (oldHandedness != GvrSettings.Handedness) { + UnityEditorInternal.InternalEditorUtility.RepaintAllViews(); + } + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} \ No newline at end of file diff --git a/Assets/GoogleVR/Editor/GvrEditorSettings.cs.meta b/Assets/GoogleVR/Editor/GvrEditorSettings.cs.meta new file mode 100644 index 0000000..9911e02 --- /dev/null +++ b/Assets/GoogleVR/Editor/GvrEditorSettings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ce0ec89649a704bd991b4db7e412794f +timeCreated: 1482180802 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Editor/GvrMenu.cs b/Assets/GoogleVR/Editor/GvrMenu.cs new file mode 100644 index 0000000..0ba6ca7 --- /dev/null +++ b/Assets/GoogleVR/Editor/GvrMenu.cs @@ -0,0 +1,58 @@ +// Copyright 2015 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEditor; + +public class GvrMenu { + [MenuItem("GoogleVR/Documentation/Developers Site", false, 100)] + private static void OpenDocumentation() { + Application.OpenURL("https://developers.google.com/vr"); + } + + [MenuItem("GoogleVR/Documentation/Unity Guide", false, 100)] + private static void OpenUnityGuide() { + Application.OpenURL("https://developers.google.com/vr/unity/guide"); + } + + [MenuItem("GoogleVR/Documentation/Release Notes", false, 100)] + private static void OpenReleaseNotes() { + Application.OpenURL("https://developers.google.com/vr/unity/release-notes"); + } + + [MenuItem("GoogleVR/Documentation/Known Issues", false, 100)] + private static void OpenKnownIssues() { + Application.OpenURL("https://developers.google.com/vr/unity/release-notes#known_issues"); + } + + [MenuItem("GoogleVR/Editor Settings", false, 100)] + private static void OpenEditorSettings() { + EditorWindow.GetWindow(typeof(GvrEditorSettings)); + } + + [MenuItem("GoogleVR/Report Bug", false, 100)] + private static void OpenReportBug() { + Application.OpenURL("https://github.com/googlesamples/cardboard-unity/issues"); + } + + [MenuItem("GoogleVR/About Google VR", false, 200)] + private static void OpenAbout() { + EditorUtility.DisplayDialog("Google VR SDK for Unity", + "Version: " + GvrUnitySdkVersion.GVR_SDK_VERSION + "\n\n" + + "Licenses: Apache 2.0, MIT\n" + + "Copyright: ©2017 Google Inc. All rights reserved.\n" + + "See LICENSE for additional license information.", + "OK"); + } +} diff --git a/Assets/GoogleVR/Editor/GvrMenu.cs.meta b/Assets/GoogleVR/Editor/GvrMenu.cs.meta new file mode 100644 index 0000000..10aa887 --- /dev/null +++ b/Assets/GoogleVR/Editor/GvrMenu.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5eb60798954e54a7280c0cd353773edf +timeCreated: 1448497144 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Fonts.meta b/Assets/GoogleVR/Fonts.meta new file mode 100644 index 0000000..ebfef06 --- /dev/null +++ b/Assets/GoogleVR/Fonts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a589de3134513e34e8b233ada87a3c70 +folderAsset: yes +timeCreated: 1476489356 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Fonts/Roboto-Medium.ttf b/Assets/GoogleVR/Fonts/Roboto-Medium.ttf new file mode 100644 index 0000000..a3c1a1f Binary files /dev/null and b/Assets/GoogleVR/Fonts/Roboto-Medium.ttf differ diff --git a/Assets/GoogleVR/Fonts/Roboto-Medium.ttf.meta b/Assets/GoogleVR/Fonts/Roboto-Medium.ttf.meta new file mode 100644 index 0000000..c7c8852 --- /dev/null +++ b/Assets/GoogleVR/Fonts/Roboto-Medium.ttf.meta @@ -0,0 +1,20 @@ +fileFormatVersion: 2 +guid: 4eedafad5084240419e649245c7b2093 +timeCreated: 1476470356 +licenseType: Pro +TrueTypeFontImporter: + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Roboto + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/LICENSE b/Assets/GoogleVR/LICENSE new file mode 100644 index 0000000..c7c9170 --- /dev/null +++ b/Assets/GoogleVR/LICENSE @@ -0,0 +1,267 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +==================================================================================== + +The file GoogleVR/Scripts/GvrPointerInput.cs is licensed as follows: + +The MIT License (MIT) + +Copyright (c) 2015, Unity Technologies & Google, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +==================================================================================== + +The file Assets/Plugins/Google.ProtocolBuffers.dll is licensed as follows: + +Protocol Buffers - Google's data interchange format +Copyright 2008-2010 Google Inc. All rights reserved. +http://github.com/jskeet/dotnet-protobufs/ +Original C++/Java/Python code: +http://code.google.com/p/protobuf/ + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + diff --git a/Assets/GoogleVR/LICENSE.meta b/Assets/GoogleVR/LICENSE.meta new file mode 100644 index 0000000..f15b72b --- /dev/null +++ b/Assets/GoogleVR/LICENSE.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 0ae37b2426f844468ab02f411263ae0d +DefaultImporter: + userData: diff --git a/Assets/GoogleVR/Materials.meta b/Assets/GoogleVR/Materials.meta new file mode 100644 index 0000000..3489a11 --- /dev/null +++ b/Assets/GoogleVR/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d7d2058154010df48a2e826948d29835 +folderAsset: yes +timeCreated: 1477437068 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorAlmostFull.mat b/Assets/GoogleVR/Materials/BatteryIndicatorAlmostFull.mat new file mode 100644 index 0000000..be23b48 --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorAlmostFull.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BatteryIndicatorAlmostFull + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 96bcea5618451844a8bbbc201209bcc1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorAlmostFull.mat.meta b/Assets/GoogleVR/Materials/BatteryIndicatorAlmostFull.mat.meta new file mode 100644 index 0000000..093e32f --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorAlmostFull.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6751e939c1da81e4abfe893e027d624a +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorCharging.mat b/Assets/GoogleVR/Materials/BatteryIndicatorCharging.mat new file mode 100644 index 0000000..1659940 --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorCharging.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BatteryIndicatorCharging + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 3dd143f5f1101694088950fbe68035d4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorCharging.mat.meta b/Assets/GoogleVR/Materials/BatteryIndicatorCharging.mat.meta new file mode 100644 index 0000000..7671d07 --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorCharging.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a285f085d07c51445b6cdfa73a8f3a4e +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorCriticalLow.mat b/Assets/GoogleVR/Materials/BatteryIndicatorCriticalLow.mat new file mode 100644 index 0000000..c1cc3e6 --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorCriticalLow.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BatteryIndicatorCriticalLow + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 18a1b6bb5b74e0e44addbb841fbb9878, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorCriticalLow.mat.meta b/Assets/GoogleVR/Materials/BatteryIndicatorCriticalLow.mat.meta new file mode 100644 index 0000000..e473aab --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorCriticalLow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fca4d07bdc07e3d4b8b86194748e1ea6 +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorFull.mat b/Assets/GoogleVR/Materials/BatteryIndicatorFull.mat new file mode 100644 index 0000000..94741e3 --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorFull.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BatteryIndicatorFull + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: eace3da2d4164454d9af332b19663224, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorFull.mat.meta b/Assets/GoogleVR/Materials/BatteryIndicatorFull.mat.meta new file mode 100644 index 0000000..68cc20c --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorFull.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2930ded05fd69854ea95464f1bc033d9 +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorLow.mat b/Assets/GoogleVR/Materials/BatteryIndicatorLow.mat new file mode 100644 index 0000000..2af80a8 --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorLow.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BatteryIndicatorLow + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 11c5d48200b53514697baf763a624053, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorLow.mat.meta b/Assets/GoogleVR/Materials/BatteryIndicatorLow.mat.meta new file mode 100644 index 0000000..84e472c --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorLow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ce6eb0e0eea87b49afb878b047cb6f6 +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorMedium.mat b/Assets/GoogleVR/Materials/BatteryIndicatorMedium.mat new file mode 100644 index 0000000..fad5baa --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorMedium.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BatteryIndicatorMedium + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 90449ad19f3fe874ab4e6b5c22eddf3e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorMedium.mat.meta b/Assets/GoogleVR/Materials/BatteryIndicatorMedium.mat.meta new file mode 100644 index 0000000..174b21b --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorMedium.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f83dcee049626740ab402d11cf1b988 +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorUnknown.mat b/Assets/GoogleVR/Materials/BatteryIndicatorUnknown.mat new file mode 100644 index 0000000..385bc6b --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorUnknown.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BatteryIndicatorUnknown + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 0f7f7125e7582444bb19f1b47693559a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/BatteryIndicatorUnknown.mat.meta b/Assets/GoogleVR/Materials/BatteryIndicatorUnknown.mat.meta new file mode 100644 index 0000000..1b2402a --- /dev/null +++ b/Assets/GoogleVR/Materials/BatteryIndicatorUnknown.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 62b3bcc1a5851e34f80ad02bb0948a24 +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_app.mat b/Assets/GoogleVR/Materials/ControllerMaterial_app.mat new file mode 100644 index 0000000..70a19d8 --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_app.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ControllerMaterial_app + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: ec0a51638acf0e34ea4a1c05ed1eae73, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_app.mat.meta b/Assets/GoogleVR/Materials/ControllerMaterial_app.mat.meta new file mode 100644 index 0000000..626581f --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_app.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3fe59d3fe0697b84196c28c184197906 +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_idle.mat b/Assets/GoogleVR/Materials/ControllerMaterial_idle.mat new file mode 100644 index 0000000..243b441 --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_idle.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ControllerMaterial_idle + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: b3b00f546d64da141b0c4384daf0a6e8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_idle.mat.meta b/Assets/GoogleVR/Materials/ControllerMaterial_idle.mat.meta new file mode 100644 index 0000000..6df763d --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_idle.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b4f6031d569a624ba87b631c93a788a +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_reticle.mat b/Assets/GoogleVR/Materials/ControllerMaterial_reticle.mat new file mode 100644 index 0000000..4b81498 --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_reticle.mat @@ -0,0 +1,136 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ControllerMaterial_reticle + m_Shader: {fileID: 4800000, guid: 1d94b17868379452aad02b04eb7b0e6e, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9be55a1c895d42a48a59cd0f2fedcb49, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _InvFade + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmisColor + second: {r: 0.2, g: 0.2, b: 0.2, a: 0} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _TintColor + second: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_reticle.mat.meta b/Assets/GoogleVR/Materials/ControllerMaterial_reticle.mat.meta new file mode 100644 index 0000000..f7d2031 --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_reticle.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ebbccbcf1451ddf4199eab062dc6d367 +timeCreated: 1475515069 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_system.mat b/Assets/GoogleVR/Materials/ControllerMaterial_system.mat new file mode 100644 index 0000000..15e9cf0 --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_system.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ControllerMaterial_system + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9aa23758b08b6dc4f99a9f85f1f5aeab, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_system.mat.meta b/Assets/GoogleVR/Materials/ControllerMaterial_system.mat.meta new file mode 100644 index 0000000..3c19218 --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_system.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6c9fcd230d4724c40af9e27326dc25f1 +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_touchpad.mat b/Assets/GoogleVR/Materials/ControllerMaterial_touchpad.mat new file mode 100644 index 0000000..72aa84c --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_touchpad.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ControllerMaterial_touchpad + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: ddcadd5125392914d85174f016a48a9b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/ControllerMaterial_touchpad.mat.meta b/Assets/GoogleVR/Materials/ControllerMaterial_touchpad.mat.meta new file mode 100644 index 0000000..03619e2 --- /dev/null +++ b/Assets/GoogleVR/Materials/ControllerMaterial_touchpad.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a89bc9f2db5f60743a95275d0336b6c2 +timeCreated: 1472073995 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/GvrReticleMaterial.mat b/Assets/GoogleVR/Materials/GvrReticleMaterial.mat new file mode 100644 index 0000000..3ec26d3 --- /dev/null +++ b/Assets/GoogleVR/Materials/GvrReticleMaterial.mat @@ -0,0 +1,158 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: GvrReticleMaterial + m_Shader: {fileID: 4800000, guid: a3b352fc2ba734605a3df75466e600f0, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Radius + second: 0 + data: + first: + name: _Cutoff + second: .5 + data: + first: + name: _Parallax + second: .0199999996 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: .5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _InnerDiameter + second: 1.5 + data: + first: + name: _OuterDiameter + second: 2 + data: + first: + name: _DistanceInMeters + second: 2 + data: + first: + name: _Border + second: .0149999997 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/GvrReticleMaterial.mat.meta b/Assets/GoogleVR/Materials/GvrReticleMaterial.mat.meta new file mode 100644 index 0000000..0fcf124 --- /dev/null +++ b/Assets/GoogleVR/Materials/GvrReticleMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4cb1460f617514a888f47071314ccdae +timeCreated: 1446892072 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/TooltipFont.mat b/Assets/GoogleVR/Materials/TooltipFont.mat new file mode 100644 index 0000000..8cb15d2 --- /dev/null +++ b/Assets/GoogleVR/Materials/TooltipFont.mat @@ -0,0 +1,148 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: TooltipFont + m_Shader: {fileID: 4800000, guid: c259eeb26e96b4f1d8eeb8871bcfdac5, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _ColorMask + second: 15 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _Stencil + second: 0 + - first: + name: _StencilComp + second: 8 + - first: + name: _StencilOp + second: 0 + - first: + name: _StencilReadMask + second: 255 + - first: + name: _StencilWriteMask + second: 255 + - first: + name: _UVSec + second: 0 + - first: + name: _UseUIAlphaClip + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Materials/TooltipFont.mat.meta b/Assets/GoogleVR/Materials/TooltipFont.mat.meta new file mode 100644 index 0000000..e491ff5 --- /dev/null +++ b/Assets/GoogleVR/Materials/TooltipFont.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ff3914f115e149d49d001ed2cea77c8 +timeCreated: 1479426356 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/TooltipImage.mat b/Assets/GoogleVR/Materials/TooltipImage.mat new file mode 100644 index 0000000..da6d64b --- /dev/null +++ b/Assets/GoogleVR/Materials/TooltipImage.mat @@ -0,0 +1,148 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: TooltipImage + m_Shader: {fileID: 4800000, guid: 36d276bd7b313441fbe34aadce7598ca, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _ColorMask + second: 15 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _Stencil + second: 0 + - first: + name: _StencilComp + second: 8 + - first: + name: _StencilOp + second: 0 + - first: + name: _StencilReadMask + second: 255 + - first: + name: _StencilWriteMask + second: 255 + - first: + name: _UVSec + second: 0 + - first: + name: _UseUIAlphaClip + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GoogleVR/Materials/TooltipImage.mat.meta b/Assets/GoogleVR/Materials/TooltipImage.mat.meta new file mode 100644 index 0000000..c1647fb --- /dev/null +++ b/Assets/GoogleVR/Materials/TooltipImage.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f457230f725f45c4b83b007ff7ca38e +timeCreated: 1479426356 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/laserMaterial.mat b/Assets/GoogleVR/Materials/laserMaterial.mat new file mode 100644 index 0000000..4375ec6 --- /dev/null +++ b/Assets/GoogleVR/Materials/laserMaterial.mat @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: laserMaterial + m_Shader: {fileID: 4800000, guid: 66ce34a5829a64856be634609edd8912, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e314ee0eb28e9ad4ba2950c17b95c25d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: [] diff --git a/Assets/GoogleVR/Materials/laserMaterial.mat.meta b/Assets/GoogleVR/Materials/laserMaterial.mat.meta new file mode 100644 index 0000000..40cba21 --- /dev/null +++ b/Assets/GoogleVR/Materials/laserMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6329ec80f51d6049a5d00d86224003b +timeCreated: 1472081066 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/touchOpaque.mat b/Assets/GoogleVR/Materials/touchOpaque.mat new file mode 100644 index 0000000..098d3c5 --- /dev/null +++ b/Assets/GoogleVR/Materials/touchOpaque.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: touchOpaque + m_Shader: {fileID: 4800000, guid: adb9b18ac2466473a850d8acd17654a1, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 8793f9833753aed41b73f603710cf856, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/touchOpaque.mat.meta b/Assets/GoogleVR/Materials/touchOpaque.mat.meta new file mode 100644 index 0000000..18ea60c --- /dev/null +++ b/Assets/GoogleVR/Materials/touchOpaque.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7bc1b31ae424a1448b1be6be3707ad31 +timeCreated: 1472150990 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Materials/touchTransparent.mat b/Assets/GoogleVR/Materials/touchTransparent.mat new file mode 100644 index 0000000..4a6ca1d --- /dev/null +++ b/Assets/GoogleVR/Materials/touchTransparent.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: touchTransparent + m_Shader: {fileID: 4800000, guid: 06aa46b8e43675d43b204c3638e59767, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 8793f9833753aed41b73f603710cf856, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: [] + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/GoogleVR/Materials/touchTransparent.mat.meta b/Assets/GoogleVR/Materials/touchTransparent.mat.meta new file mode 100644 index 0000000..03b2993 --- /dev/null +++ b/Assets/GoogleVR/Materials/touchTransparent.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 089662c06964d614db131b6b344431e4 +timeCreated: 1472150990 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Models.meta b/Assets/GoogleVR/Models.meta new file mode 100644 index 0000000..64d5e8a --- /dev/null +++ b/Assets/GoogleVR/Models.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0b283d0fee0429746a4f8ad2647702ca +folderAsset: yes +timeCreated: 1477437367 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Models/ddcontroller.fbx b/Assets/GoogleVR/Models/ddcontroller.fbx new file mode 100644 index 0000000..ed9bb32 Binary files /dev/null and b/Assets/GoogleVR/Models/ddcontroller.fbx differ diff --git a/Assets/GoogleVR/Models/ddcontroller.fbx.meta b/Assets/GoogleVR/Models/ddcontroller.fbx.meta new file mode 100644 index 0000000..c1f26cc --- /dev/null +++ b/Assets/GoogleVR/Models/ddcontroller.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 581a0d1f069aa2d41b4112fb6b01244e +timeCreated: 1472073995 +licenseType: Pro +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: ddcontroller + materials: + importMaterials: 0 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 0.1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs.meta b/Assets/GoogleVR/Prefabs.meta new file mode 100644 index 0000000..05811f5 --- /dev/null +++ b/Assets/GoogleVR/Prefabs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 80e6cdf429de247a792161c31b9b2ce2 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/GoogleVR/Prefabs/Audio.meta b/Assets/GoogleVR/Prefabs/Audio.meta new file mode 100644 index 0000000..0748cee --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Audio.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 65c9280a868094fdcaeff383bdf40780 +folderAsset: yes +timeCreated: 1453250329 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Audio/GvrAudioRoom.prefab b/Assets/GoogleVR/Prefabs/Audio/GvrAudioRoom.prefab new file mode 100644 index 0000000..92fc738 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Audio/GvrAudioRoom.prefab @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &103798 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 497858} + - 114: {fileID: 11437632} + m_Layer: 0 + m_Name: GvrAudioRoom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &497858 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 103798} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 6, y: 4, z: 10} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &11437632 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 103798} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1d2722c2401e34d51bf5b473ef7aeefb, type: 3} + m_Name: + m_EditorClassIdentifier: + leftWall: 4 + rightWall: 4 + floor: 14 + ceiling: 15 + backWall: 4 + frontWall: 4 + reflectivity: 1 + reverbGainDb: 0 + reverbBrightness: 0 + reverbTime: 1 + size: {x: 1, y: 1, z: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 0} + propertyPath: leftWall + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: rightWall + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: ceiling + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: backWall + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: frontWall + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LocalScale.x + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LocalScale.z + value: 10 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 103798} + m_IsPrefabParent: 1 \ No newline at end of file diff --git a/Assets/GoogleVR/Prefabs/Audio/GvrAudioRoom.prefab.meta b/Assets/GoogleVR/Prefabs/Audio/GvrAudioRoom.prefab.meta new file mode 100644 index 0000000..b222e1b --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Audio/GvrAudioRoom.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c162c5667f1844e798189ae778eafc76 +timeCreated: 1448878013 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Audio/GvrAudioSoundfield.prefab b/Assets/GoogleVR/Prefabs/Audio/GvrAudioSoundfield.prefab new file mode 100644 index 0000000..1ec003e --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Audio/GvrAudioSoundfield.prefab @@ -0,0 +1,61 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &119012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 440248} + - 114: {fileID: 11469856} + m_Layer: 0 + m_Name: GvrAudioSoundfield + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &440248 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119012} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &11469856 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119012} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d38f0664abc0c446a8fa0886ec2bcd12, type: 3} + m_Name: + m_EditorClassIdentifier: + gainDb: 0 + playOnAwake: 1 + soundfieldClip0102: {fileID: 0} + soundfieldClip0304: {fileID: 0} + soundfieldLoop: 1 + soundfieldMute: 0 + soundfieldPitch: 1 + soundfieldPriority: 32 + soundfieldVolume: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 119012} + m_IsPrefabParent: 1 diff --git a/Assets/GoogleVR/Prefabs/Audio/GvrAudioSoundfield.prefab.meta b/Assets/GoogleVR/Prefabs/Audio/GvrAudioSoundfield.prefab.meta new file mode 100644 index 0000000..afe7974 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Audio/GvrAudioSoundfield.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 33b1331235def4618ab66fa8dad6d443 +timeCreated: 1467224175 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Audio/GvrAudioSource.prefab b/Assets/GoogleVR/Prefabs/Audio/GvrAudioSource.prefab new file mode 100644 index 0000000..4804462 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Audio/GvrAudioSource.prefab @@ -0,0 +1,66 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &106086 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 434824} + - 114: {fileID: 11461060} + m_Layer: 0 + m_Name: GvrAudioSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &434824 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106086} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &11461060 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6dbca64e524ea44f9b26142ec59aca8a, type: 3} + m_Name: + m_EditorClassIdentifier: + directivityAlpha: 0 + directivitySharpness: 1 + gainDb: 0 + occlusionEnabled: 0 + playOnAwake: 1 + rolloffMode: 0 + sourceClip: {fileID: 0} + sourceLoop: 1 + sourceMute: 0 + sourcePitch: 1 + sourceVolume: 1 + sourceMaxDistance: 500 + sourceMinDistance: 1 + hrtfEnabled: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 106086} + m_IsPrefabParent: 1 diff --git a/Assets/GoogleVR/Prefabs/Audio/GvrAudioSource.prefab.meta b/Assets/GoogleVR/Prefabs/Audio/GvrAudioSource.prefab.meta new file mode 100644 index 0000000..4cd9f02 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Audio/GvrAudioSource.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 82b70a42d67ea49d4a2e3bd826e9a512 +timeCreated: 1448877677 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Controller.meta b/Assets/GoogleVR/Prefabs/Controller.meta new file mode 100644 index 0000000..38f661b --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Controller.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ddd8d323db35b4889b40373e0f22d614 +folderAsset: yes +timeCreated: 1462054133 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Controller/GvrControllerMain.prefab b/Assets/GoogleVR/Prefabs/Controller/GvrControllerMain.prefab new file mode 100644 index 0000000..a36e7fc --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Controller/GvrControllerMain.prefab @@ -0,0 +1,74 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &198490 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 424718} + - 114: {fileID: 11459972} + - 114: {fileID: 1811292958} + m_Layer: 0 + m_Name: GvrControllerMain + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &424718 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198490} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &11459972 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: adde9bdea083943199c7959004756e60, type: 3} + m_Name: + m_EditorClassIdentifier: + enableGyro: 1 + enableAccel: 1 + emulatorConnectionMode: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 198490} + m_IsPrefabParent: 1 +--- !u!114 &1811292958 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 198490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7dda4bb2d5509e44e978d2bf56e25d7c, type: 3} + m_Name: + m_EditorClassIdentifier: + addedElbowHeight: 0 + addedElbowDepth: 0 + pointerTiltAngle: 15 + fadeDistanceFromFace: 0.32 + followGaze: 1 + useAccelerometer: 0 diff --git a/Assets/GoogleVR/Prefabs/Controller/GvrControllerMain.prefab.meta b/Assets/GoogleVR/Prefabs/Controller/GvrControllerMain.prefab.meta new file mode 100644 index 0000000..d66764c --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Controller/GvrControllerMain.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ca80f4596fa44b87912a0592346d260 +timeCreated: 1462054136 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/GvrEditorEmulator.prefab b/Assets/GoogleVR/Prefabs/GvrEditorEmulator.prefab new file mode 100644 index 0000000..ed4ff58 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/GvrEditorEmulator.prefab @@ -0,0 +1,54 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &177758 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 498412} + - 114: {fileID: 114000013210091632} + m_Layer: 0 + m_Name: GvrEditorEmulator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &498412 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177758} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 177758} + m_IsPrefabParent: 1 +--- !u!114 &114000013210091632 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177758} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 41679d3338266415f88d226e6bf3d0be, type: 3} + m_Name: + m_EditorClassIdentifier: + m_camera: {fileID: 0} diff --git a/Assets/GoogleVR/Prefabs/GvrEditorEmulator.prefab.meta b/Assets/GoogleVR/Prefabs/GvrEditorEmulator.prefab.meta new file mode 100644 index 0000000..a213526 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/GvrEditorEmulator.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 970dd4b9371394fb4890965f608d46fd +timeCreated: 1467065150 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Keyboard.meta b/Assets/GoogleVR/Prefabs/Keyboard.meta new file mode 100644 index 0000000..280a9e0 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Keyboard.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c0dda5c845a3f45b388c74576bfe18d4 +folderAsset: yes +timeCreated: 1493941988 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardCanvas.prefab b/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardCanvas.prefab new file mode 100644 index 0000000..b8ef2d1 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardCanvas.prefab @@ -0,0 +1,294 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1594779858} + m_IsPrefabParent: 1 +--- !u!114 &150179061 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1627538840} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.865, g: 0.888, b: 0.031, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Start Typing... +--- !u!224 &313390157 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1594779858} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1255186678} + - {fileID: 1279492093} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 1.51} + m_SizeDelta: {x: 450, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &890278573 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1594779858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: OnPointerClick + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!65 &1014590142 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1594779858} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 450, y: 100, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1054129942 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1594779858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!222 &1063622329 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1547164621} +--- !u!223 &1068040100 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1594779858} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &1131593892 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1547164621} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!224 &1255186678 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1547164621} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 313390157} + m_RootOrder: 0 + m_AnchorMin: {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} +--- !u!224 &1279492093 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1627538840} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 313390157} + m_RootOrder: 1 + m_AnchorMin: {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, y: 1} +--- !u!1 &1547164621 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1255186678} + - 222: {fileID: 1063622329} + - 114: {fileID: 1131593892} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1594779858 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 313390157} + - 223: {fileID: 1068040100} + - 114: {fileID: 1054129942} + - 114: {fileID: 1704454756} + - 65: {fileID: 1014590142} + - 114: {fileID: 890278573} + m_Layer: 5 + m_Name: GvrKeyboardCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1627538840 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1279492093} + - 222: {fileID: 2023487032} + - 114: {fileID: 150179061} + m_Layer: 5 + m_Name: KeyboardText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1704454756 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1594779858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739800cd36aba44e9b04ce977e5784bd, type: 3} + m_Name: + m_EditorClassIdentifier: + raycastMode: 0 + ignoreReversedGraphics: 1 + blockingObjects: 0 + blockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!222 &2023487032 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1627538840} diff --git a/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardCanvas.prefab.meta b/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardCanvas.prefab.meta new file mode 100644 index 0000000..456975a --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardCanvas.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f4cf01cab04054926935acc7cb25b7f5 +timeCreated: 1479081996 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardManager.prefab b/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardManager.prefab new file mode 100644 index 0000000..ba1f408 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardManager.prefab @@ -0,0 +1,57 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1217039644} + m_IsPrefabParent: 1 +--- !u!4 &642702418 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1217039644} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &1217039644 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 642702418} + - 114: {fileID: 1260534185} + m_Layer: 0 + m_Name: GvrKeyboardManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1260534185 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1217039644} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 573e2b04dc4734d68a2b6747421ce0bc, type: 3} + m_Name: + m_EditorClassIdentifier: + keyboardDelegate: {fileID: 0} + inputMode: 0 + useRecommended: 1 + distance: 3 diff --git a/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardManager.prefab.meta b/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardManager.prefab.meta new file mode 100644 index 0000000..81421c4 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Keyboard/GvrKeyboardManager.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6c99596fcbe574b168ae0faa3afe8546 +timeCreated: 1479082001 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/UI.meta b/Assets/GoogleVR/Prefabs/UI.meta new file mode 100644 index 0000000..f2e08e8 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/UI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2df99f75b699d4c44850f4c4fecc87a1 +folderAsset: yes +timeCreated: 1448497093 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/UI/GvrControllerPointer.prefab b/Assets/GoogleVR/Prefabs/UI/GvrControllerPointer.prefab new file mode 100644 index 0000000..3c3ef53 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/UI/GvrControllerPointer.prefab @@ -0,0 +1,1940 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!224 &20789601 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 374896461} + m_LocalRotation: {x: -1.0164397e-20, y: -1.4210856e-14, z: -2.8421713e-14, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 409752931} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -30, y: 0.4} + m_SizeDelta: {x: 75, y: 3} + m_Pivot: {x: 1, y: 0.5} +--- !u!1 &73773011 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1150962481} + - 222: {fileID: 2034312771} + - 114: {fileID: 1470308967} + - 114: {fileID: 890456865} + m_Layer: 0 + m_Name: AppButtonInsideText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 555767533} + m_IsPrefabParent: 1 +--- !u!4 &112435956 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 594831799} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0.0025, z: 0.014} + m_LocalScale: {x: 0.02, y: 0.00921875, z: 0.02} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1990110266} + m_RootOrder: 1 +--- !u!222 &113579881 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1772788076} +--- !u!225 &214422561 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 563506875} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!224 &220671212 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2112686462} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1045868163} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &225929234 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1225896218} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 0 + m_Materials: + - {fileID: 2100000, guid: ebbccbcf1451ddf4199eab062dc6d367, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedWireframeHidden: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!224 &233679933 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1846064526} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1673994293} + m_Father: {fileID: 1695027285} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -32, y: 0} + m_SizeDelta: {x: 0, y: 75} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &237019006 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 878080011} +--- !u!114 &261895295 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 771218441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4c173f7c6a736fe469d4acc5b108d6d5, type: 3} + m_Name: + m_EditorClassIdentifier: + joint: 0 + debugDrawTo: {fileID: 0} +--- !u!224 &269749299 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 474831295} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1133103780} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &275998655 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1332296261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 0f457230f725f45c4b83b007ff7ca38e, type: 2} + m_Color: {r: 0, g: 0, b: 0, a: 0.2509804} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3776286ea5437463d95d7054b559df67, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &278143385 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1978738390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 0f457230f725f45c4b83b007ff7ca38e, type: 2} + m_Color: {r: 0, g: 0, b: 0, a: 0.2509804} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3776286ea5437463d95d7054b559df67, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &293444531 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 374896461} +--- !u!224 &302121302 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 790804010} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 28.000002} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1133103780} + - {fileID: 1347259042} + m_Father: {fileID: 1778255958} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 109.99998} + m_SizeDelta: {x: 250, y: 50} + m_Pivot: {x: -0.5, y: 0.5} +--- !u!114 &323516041 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 394603413} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!4 &364184199 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 573318178} + m_LocalRotation: {x: -0.00000019861236, y: 0.7071068, z: 0.7071068, w: 0.00000019861236} + m_LocalPosition: {x: 0, y: 0, z: 0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 469425937} + - {fileID: 1778255958} + m_Father: {fileID: 1990110266} + m_RootOrder: 0 +--- !u!1 &374896461 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 20789601} + - 222: {fileID: 293444531} + - 114: {fileID: 829779823} + m_Layer: 0 + m_Name: AppButtonOutsideLink + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &388618754 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2101835383} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1695027285} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -30, y: 0} + m_SizeDelta: {x: 45, y: 3} + m_Pivot: {x: 1, y: 0.5} +--- !u!1 &394603413 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1778255958} + - 223: {fileID: 2046916530} + - 114: {fileID: 323516041} + m_Layer: 0 + m_Name: Tooltips + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &409752931 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 992024100} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 28.000002} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1045868163} + - {fileID: 20789601} + m_Father: {fileID: 1778255958} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 29.999992} + m_SizeDelta: {x: 250, y: 50} + m_Pivot: {x: -0.5, y: 0.5} +--- !u!114 &409923337 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1846064526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 0f457230f725f45c4b83b007ff7ca38e, type: 2} + m_Color: {r: 0, g: 0, b: 0, a: 0.2509804} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3776286ea5437463d95d7054b559df67, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &424175804 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1978738390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!23 &434462828 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 632458949} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 7bc1b31ae424a1448b1be6be3707ad31, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedWireframeHidden: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!1 &454007279 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1124067406} + - 222: {fileID: 1521484576} + - 114: {fileID: 2088032745} + - 225: {fileID: 1878070190} + m_Layer: 0 + m_Name: AppButtonInside + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &463403537 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1306407763} +--- !u!4 &469425937 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 632458949} + m_LocalRotation: {x: -0.00000019861236, y: -0.7071068, z: -0.7071068, w: 0.00000019861236} + m_LocalPosition: {x: 0, y: 0.035, z: 0.0029} + m_LocalScale: {x: 0.01, y: 0.001, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 364184199} + m_RootOrder: 0 +--- !u!1 &474831295 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 269749299} + - 222: {fileID: 1082445471} + - 114: {fileID: 2064472180} + - 114: {fileID: 1921866718} + m_Layer: 0 + m_Name: TouchPadOutsideText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &478839408 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1332296261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &504029746 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 992024100} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7c52851ea0de74a228fa29a84de008ba, type: 3} + m_Name: + m_EditorClassIdentifier: + location: 2 + text: {fileID: 1994089474} + alwaysVisible: 0 +--- !u!114 &540856892 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1846064526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 32 + m_Right: 32 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &555767533 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1820761120} + - 114: {fileID: 1147369037} + m_Layer: 0 + m_Name: GvrControllerPointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &563506875 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1695027285} + - 222: {fileID: 971087882} + - 114: {fileID: 845310057} + - 225: {fileID: 214422561} + m_Layer: 0 + m_Name: TouchPadInside + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &567861390 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1610525346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4c173f7c6a736fe469d4acc5b108d6d5, type: 3} + m_Name: + m_EditorClassIdentifier: + joint: 1 + debugDrawTo: {fileID: 0} +--- !u!1 &567990950 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1677251396} + - 222: {fileID: 1447938123} + - 114: {fileID: 1049313812} + m_Layer: 0 + m_Name: AppButtonInsideLink + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &573318178 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 364184199} + - 33: {fileID: 1475472563} + - 23: {fileID: 904534127} + - 114: {fileID: 1775680152} + m_Layer: 0 + m_Name: ddcontroller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &573655681 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 771218441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 51b65678ccdd949e9a58874d2880c0ef, type: 3} + m_Name: + m_EditorClassIdentifier: + laserColor: {r: 1, g: 1, b: 1, a: 0.2509804} + maxLaserDistance: 0.75 + maxReticleDistance: 2.5 + reticle: {fileID: 1225896218} + reticleSortingOrder: 32767 +--- !u!1 &594831799 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 112435956} + - 33: {fileID: 1266824918} + - 23: {fileID: 1391454033} + - 114: {fileID: 1985826212} + m_Layer: 0 + m_Name: BatteryIndicator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &611905283 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1978738390} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1150962481} + m_Father: {fileID: 1124067406} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -32, y: 0} + m_SizeDelta: {x: 0, y: 75} + m_Pivot: {x: 0, y: 0.5} +--- !u!1 &632458949 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 469425937} + - 33: {fileID: 976405317} + - 23: {fileID: 434462828} + - 114: {fileID: 831019052} + m_Layer: 0 + m_Name: ddtouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &647695589 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2112686462} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -900027084, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.09803922} + m_EffectDistance: {x: 1, y: 1} + m_UseGraphicAlpha: 0 +--- !u!222 &666443531 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 992024100} +--- !u!120 &750984299 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 771218441} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: a6329ec80f51d6049a5d00d86224003b, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedWireframeHidden: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 0} + m_Parameters: + startWidth: 0.01 + endWidth: 0.01 + m_StartColor: + serializedVersion: 2 + rgba: 4294967295 + m_EndColor: + serializedVersion: 2 + rgba: 4294967295 + m_UseWorldSpace: 1 +--- !u!1 &771218441 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1915109966} + - 114: {fileID: 261895295} + - 114: {fileID: 573655681} + - 120: {fileID: 750984299} + m_Layer: 2 + m_Name: Laser + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &774860592 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1772788076} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 32 + m_Right: 32 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &790804010 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 302121302} + - 222: {fileID: 1359965700} + - 114: {fileID: 995080616} + - 225: {fileID: 1734391625} + m_Layer: 0 + m_Name: TouchPadOutside + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &822456472 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1332296261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 32 + m_Right: 32 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &829779823 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 374896461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 0f457230f725f45c4b83b007ff7ca38e, type: 2} + m_Color: {r: 0.8980392, g: 0.8980392, b: 0.8980392, a: 0.7019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &831019052 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 632458949} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66baa93a294455a4bbc75c4789678a36, type: 3} + m_Name: + m_EditorClassIdentifier: + maximumAlpha: 1 + touchTransparent: {fileID: 2100000, guid: 089662c06964d614db131b6b344431e4, type: 2} + touchOpaque: {fileID: 2100000, guid: 7bc1b31ae424a1448b1be6be3707ad31, type: 2} +--- !u!114 &845310057 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 563506875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7c52851ea0de74a228fa29a84de008ba, type: 3} + m_Name: + m_EditorClassIdentifier: + location: 1 + text: {fileID: 877083845} + alwaysVisible: 0 +--- !u!222 &867667213 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1846064526} +--- !u!114 &877083845 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1306407763} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 8ff3914f115e149d49d001ed2cea77c8, type: 2} + m_Color: {r: 0.8980392, g: 0.8980392, b: 0.8980392, a: 0.7019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 12800000, guid: 4eedafad5084240419e649245c7b2093, type: 3} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Touch Pad Inside +--- !u!1 &878080011 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1347259042} + - 222: {fileID: 237019006} + - 114: {fileID: 1969784551} + m_Layer: 0 + m_Name: TouchPadOutsideLink + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &885425996 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1978738390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 32 + m_Right: 32 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &890456865 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 73773011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -900027084, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.09803922} + m_EffectDistance: {x: 1, y: 1} + m_UseGraphicAlpha: 0 +--- !u!23 &904534127 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 573318178} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 3b4f6031d569a624ba87b631c93a788a, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedWireframeHidden: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!222 &971087882 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 563506875} +--- !u!33 &976405317 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 632458949} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &992024100 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 409752931} + - 222: {fileID: 666443531} + - 114: {fileID: 504029746} + - 225: {fileID: 1788396120} + m_Layer: 0 + m_Name: AppButtonOutside + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &995080616 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 790804010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7c52851ea0de74a228fa29a84de008ba, type: 3} + m_Name: + m_EditorClassIdentifier: + location: 0 + text: {fileID: 2064472180} + alwaysVisible: 0 +--- !u!224 &1045868163 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1332296261} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 220671212} + m_Father: {fileID: 409752931} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -32, y: 0} + m_SizeDelta: {x: 0, y: 78} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1049313812 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 567990950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 0f457230f725f45c4b83b007ff7ca38e, type: 2} + m_Color: {r: 0.8980392, g: 0.8980392, b: 0.8980392, a: 0.7019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1082445471 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 474831295} +--- !u!224 &1124067406 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 454007279} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 28.000002} + m_LocalScale: {x: 1, y: 1.0000002, z: 1.0000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 611905283} + - {fileID: 1677251396} + m_Father: {fileID: 1778255958} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.000011950464, y: 29.999994} + m_SizeDelta: {x: 250, y: 50} + m_Pivot: {x: -0.5, y: 0.5} +--- !u!224 &1133103780 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1772788076} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 269749299} + m_Father: {fileID: 302121302} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -32, y: 0} + m_SizeDelta: {x: 0, y: 78} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1147369037 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 555767533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f3bf9c1bacbb04f72bb43e892c3a98a9, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &1150962481 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 73773011} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 611905283} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1180176508 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1332296261} +--- !u!1 &1225896218 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1412694727} + - 33: {fileID: 1583549455} + - 23: {fileID: 225929234} + m_Layer: 2 + m_Name: Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!33 &1266824918 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 594831799} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1306407763 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1673994293} + - 222: {fileID: 463403537} + - 114: {fileID: 877083845} + - 114: {fileID: 1444407016} + - 114: {fileID: 1566198284} + m_Layer: 0 + m_Name: TouchPadInsideText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &1329645528 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2101835383} +--- !u!1 &1332296261 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1045868163} + - 222: {fileID: 1180176508} + - 114: {fileID: 275998655} + - 114: {fileID: 822456472} + - 114: {fileID: 478839408} + m_Layer: 0 + m_Name: AppButtonOutsideShadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1347259042 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 878080011} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 302121302} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -30, y: 0} + m_SizeDelta: {x: 45, y: 3} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &1359965700 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 790804010} +--- !u!23 &1391454033 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 594831799} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 62b3bcc1a5851e34f80ad02bb0948a24, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedWireframeHidden: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!4 &1412694727 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1225896218} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1915109966} + m_RootOrder: 0 +--- !u!114 &1444407016 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1306407763} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -900027084, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.09803922} + m_EffectDistance: {x: 1, y: 1} + m_UseGraphicAlpha: 0 +--- !u!222 &1447938123 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 567990950} +--- !u!114 &1460417950 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2101835383} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 0f457230f725f45c4b83b007ff7ca38e, type: 2} + m_Color: {r: 0.8980392, g: 0.8980392, b: 0.8980392, a: 0.7019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &1470308967 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 73773011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 8ff3914f115e149d49d001ed2cea77c8, type: 2} + m_Color: {r: 0.8980392, g: 0.8980392, b: 0.8980392, a: 0.7019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 12800000, guid: 4eedafad5084240419e649245c7b2093, type: 3} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: App Button Inside +--- !u!33 &1475472563 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 573318178} + m_Mesh: {fileID: 4300000, guid: 581a0d1f069aa2d41b4112fb6b01244e, type: 3} +--- !u!114 &1495299760 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1846064526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!222 &1521484576 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 454007279} +--- !u!114 &1561252691 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1772788076} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &1566198284 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1306407763} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!33 &1583549455 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1225896218} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1610525346 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1990110266} + - 114: {fileID: 567861390} + m_Layer: 0 + m_Name: Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1673994293 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1306407763} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 233679933} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1677251396 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 567990950} + m_LocalRotation: {x: -1.0164397e-20, y: -1.4210856e-14, z: -2.8421713e-14, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1124067406} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -30, y: 0.4} + m_SizeDelta: {x: 75, y: 3} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &1695027285 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 563506875} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 28.000002} + m_LocalScale: {x: 1, y: 1.0000002, z: 1.0000002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 233679933} + - {fileID: 388618754} + m_Father: {fileID: 1778255958} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.000056875557, y: 109.99996} + m_SizeDelta: {x: 250, y: 50} + m_Pivot: {x: -0.5, y: 0.5} +--- !u!225 &1734391625 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 790804010} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1766999716 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1772788076} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 0f457230f725f45c4b83b007ff7ca38e, type: 2} + m_Color: {r: 0, g: 0, b: 0, a: 0.2509804} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 3776286ea5437463d95d7054b559df67, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1772788076 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1133103780} + - 222: {fileID: 113579881} + - 114: {fileID: 1766999716} + - 114: {fileID: 774860592} + - 114: {fileID: 1561252691} + m_Layer: 0 + m_Name: TouchPadOutsideShadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1775680152 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 573318178} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa952cbcc0eb13d4ca558b6da550ff55, type: 3} + m_Name: + m_EditorClassIdentifier: + maximumAlpha: 1 + material_idle: {fileID: 2100000, guid: 3b4f6031d569a624ba87b631c93a788a, type: 2} + material_app: {fileID: 2100000, guid: 3fe59d3fe0697b84196c28c184197906, type: 2} + material_system: {fileID: 2100000, guid: 6c9fcd230d4724c40af9e27326dc25f1, type: 2} + material_touchpad: {fileID: 2100000, guid: a89bc9f2db5f60743a95275d0336b6c2, type: 2} +--- !u!224 &1778255958 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 394603413} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0.013} + m_LocalScale: {x: 0.00035, y: 0.00035, z: 0.00035} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 302121302} + - {fileID: 409752931} + - {fileID: 1695027285} + - {fileID: 1124067406} + m_Father: {fileID: 364184199} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -0.000000036580836, y: -0.0030792095} + m_SizeDelta: {x: 0, y: 1080} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &1788396120 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 992024100} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!222 &1793239154 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1978738390} +--- !u!4 &1820761120 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 555767533} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1990110266} + - {fileID: 1915109966} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &1846064526 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 233679933} + - 222: {fileID: 867667213} + - 114: {fileID: 409923337} + - 114: {fileID: 540856892} + - 114: {fileID: 1495299760} + m_Layer: 0 + m_Name: TouchPadInsideShadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!225 &1878070190 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 454007279} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!4 &1915109966 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 771218441} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1412694727} + m_Father: {fileID: 1820761120} + m_RootOrder: 1 +--- !u!114 &1921866718 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 474831295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -900027084, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.09803922} + m_EffectDistance: {x: 1, y: 1} + m_UseGraphicAlpha: 0 +--- !u!114 &1969784551 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 878080011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 0f457230f725f45c4b83b007ff7ca38e, type: 2} + m_Color: {r: 0.8980392, g: 0.8980392, b: 0.8980392, a: 0.7019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!1 &1978738390 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 611905283} + - 222: {fileID: 1793239154} + - 114: {fileID: 278143385} + - 114: {fileID: 885425996} + - 114: {fileID: 424175804} + m_Layer: 0 + m_Name: AppButtonInsideShadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1985826212 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 594831799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6214420881d1dd0428d32f7bdc5fde31, type: 3} + m_Name: + m_EditorClassIdentifier: + maximumAlpha: 1 + matUnknown: {fileID: 2100000, guid: 62b3bcc1a5851e34f80ad02bb0948a24, type: 2} + matCharging: {fileID: 2100000, guid: a285f085d07c51445b6cdfa73a8f3a4e, type: 2} + matFull: {fileID: 2100000, guid: 2930ded05fd69854ea95464f1bc033d9, type: 2} + matAlmostFull: {fileID: 2100000, guid: 6751e939c1da81e4abfe893e027d624a, type: 2} + matMedium: {fileID: 2100000, guid: 2f83dcee049626740ab402d11cf1b988, type: 2} + matLow: {fileID: 2100000, guid: 9ce6eb0e0eea87b49afb878b047cb6f6, type: 2} + matCriticalLow: {fileID: 2100000, guid: fca4d07bdc07e3d4b8b86194748e1ea6, type: 2} +--- !u!4 &1990110266 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1610525346} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 364184199} + - {fileID: 112435956} + m_Father: {fileID: 1820761120} + m_RootOrder: 0 +--- !u!114 &1994089474 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2112686462} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 8ff3914f115e149d49d001ed2cea77c8, type: 2} + m_Color: {r: 0.8980392, g: 0.8980392, b: 0.8980392, a: 0.7019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 12800000, guid: 4eedafad5084240419e649245c7b2093, type: 3} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: App Button Outside +--- !u!222 &2022619274 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 2112686462} +--- !u!222 &2034312771 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 73773011} +--- !u!223 &2046916530 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 394603413} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &2064472180 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 474831295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 8ff3914f115e149d49d001ed2cea77c8, type: 2} + m_Color: {r: 0.8980392, g: 0.8980392, b: 0.8980392, a: 0.7019608} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 12800000, guid: 4eedafad5084240419e649245c7b2093, type: 3} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: ' Touch Pad Outside' +--- !u!114 &2088032745 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 454007279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7c52851ea0de74a228fa29a84de008ba, type: 3} + m_Name: + m_EditorClassIdentifier: + location: 3 + text: {fileID: 1470308967} + alwaysVisible: 0 +--- !u!1 &2101835383 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 388618754} + - 222: {fileID: 1329645528} + - 114: {fileID: 1460417950} + m_Layer: 0 + m_Name: TouchPadInsideLink + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2112686462 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 220671212} + - 222: {fileID: 2022619274} + - 114: {fileID: 1994089474} + - 114: {fileID: 647695589} + m_Layer: 0 + m_Name: AppButtonOutsideText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 diff --git a/Assets/GoogleVR/Prefabs/UI/GvrControllerPointer.prefab.meta b/Assets/GoogleVR/Prefabs/UI/GvrControllerPointer.prefab.meta new file mode 100644 index 0000000..4b20855 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/UI/GvrControllerPointer.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 34c21f523e72f45509a4e37ed0293c3b +timeCreated: 1478632992 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/UI/GvrEventSystem.prefab b/Assets/GoogleVR/Prefabs/UI/GvrEventSystem.prefab new file mode 100644 index 0000000..67cfe68 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/UI/GvrEventSystem.prefab @@ -0,0 +1,84 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11408762 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 761381335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 22a6dc478e59e4b35b25f9f26ddc4361, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 761381335} + m_IsPrefabParent: 1 +--- !u!1 &761381335 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 766346198} + - 114: {fileID: 1816646545} + - 114: {fileID: 11408762} + - 114: {fileID: 1422168469} + m_Layer: 0 + m_Name: GvrEventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &766346198 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 761381335} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &1422168469 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 761381335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fcd4baceb58cc40c98e500572bede6a6, type: 3} + m_Name: + m_EditorClassIdentifier: + vrModeOnly: 0 + scrollInput: + inertia: 1 + decelerationRate: 0.05 +--- !u!114 &1816646545 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 761381335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 20 diff --git a/Assets/GoogleVR/Prefabs/UI/GvrEventSystem.prefab.meta b/Assets/GoogleVR/Prefabs/UI/GvrEventSystem.prefab.meta new file mode 100644 index 0000000..7ca21f9 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/UI/GvrEventSystem.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 463285ecd6702471a909ba810832bf0e +timeCreated: 1481866398 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/UI/GvrReticlePointer.prefab b/Assets/GoogleVR/Prefabs/UI/GvrReticlePointer.prefab new file mode 100644 index 0000000..0191100 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/UI/GvrReticlePointer.prefab @@ -0,0 +1,85 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &171526 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 482300} + - 114: {fileID: 723926960} + - 23: {fileID: 2301146} + m_Layer: 2 + m_Name: GvrReticlePointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &482300 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171526} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2301146 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171526} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 4cb1460f617514a888f47071314ccdae, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedWireframeHidden: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 171526} + m_IsPrefabParent: 1 +--- !u!114 &723926960 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e7dcc90c2e60c4011896c7f21fc1f557, type: 3} + m_Name: + m_EditorClassIdentifier: + reticleSegments: 20 + reticleGrowthSpeed: 8 diff --git a/Assets/GoogleVR/Prefabs/UI/GvrReticlePointer.prefab.meta b/Assets/GoogleVR/Prefabs/UI/GvrReticlePointer.prefab.meta new file mode 100644 index 0000000..c9c7f48 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/UI/GvrReticlePointer.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 60270cf52a5e94998a5a335989159738 +timeCreated: 1446890072 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Utilities.meta b/Assets/GoogleVR/Prefabs/Utilities.meta new file mode 100644 index 0000000..9e5bce1 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Utilities.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9f780eefac71048fb9ffcfcc1d9c847e +folderAsset: yes +timeCreated: 1471565241 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Prefabs/Utilities/GvrFPSCanvas.prefab b/Assets/GoogleVR/Prefabs/Utilities/GvrFPSCanvas.prefab new file mode 100644 index 0000000..d756bc7 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Utilities/GvrFPSCanvas.prefab @@ -0,0 +1,159 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &172646 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22417798} + - 114: {fileID: 114085436} + - 223: {fileID: 22370464} + - 114: {fileID: 11402296} + - 114: {fileID: 11429704} + - 222: {fileID: 22295478} + - 114: {fileID: 11413652} + m_Layer: 5 + m_Name: GvrFPSCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11402296 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 1 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &11413652 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 6 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: FPS +--- !u!114 &11429704 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4286578683 +--- !u!222 &22295478 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172646} +--- !u!223 &22370464 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172646} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 1 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &22417798 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172646} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -0.4, y: 1.4} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 172646} + m_IsPrefabParent: 1 +--- !u!114 &114085436 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 644076fb2b4854a72b6de9578e358b8e, type: 3} + m_Name: + m_EditorClassIdentifier: + camera: {fileID: 0} diff --git a/Assets/GoogleVR/Prefabs/Utilities/GvrFPSCanvas.prefab.meta b/Assets/GoogleVR/Prefabs/Utilities/GvrFPSCanvas.prefab.meta new file mode 100644 index 0000000..3aafe99 --- /dev/null +++ b/Assets/GoogleVR/Prefabs/Utilities/GvrFPSCanvas.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6dfff844c95f342d1a8a9ab165303662 +timeCreated: 1471563509 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/README b/Assets/GoogleVR/README new file mode 100644 index 0000000..ef65388 --- /dev/null +++ b/Assets/GoogleVR/README @@ -0,0 +1,10 @@ +Google VR SDK for Unity + +This SDK provides Android and iOS developers with the easiest way to add +Google VR support to their Unity projects. + +Please visit https://developers.google.com/vr/unity for the latest +version of this SDK. + +Please visit https://developers.google.com/vr/unity/release-notes +for the latest issues and news relating to this SDK. diff --git a/Assets/GoogleVR/README.meta b/Assets/GoogleVR/README.meta new file mode 100644 index 0000000..31652d1 --- /dev/null +++ b/Assets/GoogleVR/README.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: de961e46abe24453a81bf1c8576885b3 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Resources.meta b/Assets/GoogleVR/Resources.meta new file mode 100644 index 0000000..ca0abf9 --- /dev/null +++ b/Assets/GoogleVR/Resources.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c5cce34e4c5954a0b8bdf30ff6a18430 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/GoogleVR/Resources/GvrAudioMixer.mixer b/Assets/GoogleVR/Resources/GvrAudioMixer.mixer new file mode 100644 index 0000000..b6851fb Binary files /dev/null and b/Assets/GoogleVR/Resources/GvrAudioMixer.mixer differ diff --git a/Assets/GoogleVR/Resources/GvrAudioMixer.mixer.meta b/Assets/GoogleVR/Resources/GvrAudioMixer.mixer.meta new file mode 100644 index 0000000..6a77401 --- /dev/null +++ b/Assets/GoogleVR/Resources/GvrAudioMixer.mixer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca71259be6348485abbe393157796cb8 +timeCreated: 1454001091 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts.meta b/Assets/GoogleVR/Scripts.meta new file mode 100644 index 0000000..dc4cc2e --- /dev/null +++ b/Assets/GoogleVR/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 5f01aa5c8e7de4973aa7785e6b4dc993 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/GoogleVR/Scripts/Audio.meta b/Assets/GoogleVR/Scripts/Audio.meta new file mode 100644 index 0000000..9861951 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 373d3ea6bc95c4fc78ad9bd3da8dec22 +folderAsset: yes +timeCreated: 1448875499 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudio.cs b/Assets/GoogleVR/Scripts/Audio/GvrAudio.cs new file mode 100644 index 0000000..37a6f30 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudio.cs @@ -0,0 +1,428 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Runtime.InteropServices; + +/// This is the main GVR audio class that communicates with the native code implementation of +/// the audio system. Native functions of the system can only be called through this class to +/// preserve the internal system functionality. Public function calls are *not* thread-safe. +public static class GvrAudio { + /// Audio system rendering quality. + public enum Quality { + Stereo = 0, ///< Stereo-only rendering + Low = 1, ///< Low quality binaural rendering (first-order HRTF) + High = 2 ///< High quality binaural rendering (third-order HRTF) + } + + /// Native audio spatializer effect data. + public enum SpatializerData { + Id = 0, /// ID. + Type = 1, /// Spatializer type. + NumChannels = 2, /// Number of input channels. + ChannelSet = 3, /// Soundfield channel set. + Gain = 4, /// Gain. + DistanceAttenuation = 5, /// Computed distance attenuation. + MinDistance = 6, /// Minimum distance for distance-based attenuation. + ZeroOutput = 7, /// Should zero out the output buffer? + } + + /// Native audio spatializer type. + public enum SpatializerType { + Source = 0, /// 3D sound object. + Soundfield = 1 /// First-order ambisonic soundfield. + } + + /// System sampling rate. + public static int SampleRate { + get { return sampleRate; } + } + private static int sampleRate = -1; + + /// System number of output channels. + public static int NumChannels { + get { return numChannels; } + } + private static int numChannels = -1; + + /// System number of frames per buffer. + public static int FramesPerBuffer { + get { return framesPerBuffer; } + } + private static int framesPerBuffer = -1; + + /// Initializes the audio system with the current audio configuration. + /// @note This should only be called from the main Unity thread. + public static void Initialize (GvrAudioListener listener, Quality quality) { + if (!initialized) { + // Initialize the audio system. + AudioConfiguration config = AudioSettings.GetConfiguration(); + sampleRate = config.sampleRate; + numChannels = (int)config.speakerMode; + framesPerBuffer = config.dspBufferSize; + if (numChannels != (int)AudioSpeakerMode.Stereo) { + Debug.LogError("Only 'Stereo' speaker mode is supported by GVR Audio."); + return; + } + Initialize((int) quality, sampleRate, numChannels, framesPerBuffer); + listenerTransform = listener.transform; + + initialized = true; + } else if (listener.transform != listenerTransform) { + Debug.LogError("Only one GvrAudioListener component is allowed in the scene."); + GvrAudioListener.Destroy(listener); + } + } + + /// Shuts down the audio system. + /// @note This should only be called from the main Unity thread. + public static void Shutdown (GvrAudioListener listener) { + if (initialized && listener.transform == listenerTransform) { + initialized = false; + + Shutdown(); + sampleRate = -1; + numChannels = -1; + framesPerBuffer = -1; + listenerTransform = null; + } + } + + /// Updates the audio listener. + /// @note This should only be called from the main Unity thread. + public static void UpdateAudioListener (float globalGainDb, LayerMask occlusionMask) { + if (initialized) { + occlusionMaskValue = occlusionMask.value; + SetListenerGain(ConvertAmplitudeFromDb(globalGainDb)); + } + } + + /// Creates a new first-order ambisonic soundfield with a unique id. + /// @note This should only be called from the main Unity thread. + public static int CreateAudioSoundfield () { + int soundfieldId = -1; + if (initialized) { + soundfieldId = CreateSoundfield(numFoaChannels); + } + return soundfieldId; + } + + /// Updates the |soundfield| with given |id| and its properties. + /// @note This should only be called from the main Unity thread. + public static void UpdateAudioSoundfield (int id, GvrAudioSoundfield soundfield) { + if (initialized) { + SetSourceBypassRoomEffects(id, soundfield.bypassRoomEffects); + } + } + + /// Creates a new audio source with a unique id. + /// @note This should only be called from the main Unity thread. + public static int CreateAudioSource (bool hrtfEnabled) { + int sourceId = -1; + if (initialized) { + sourceId = CreateSoundObject(hrtfEnabled); + } + return sourceId; + } + + /// Destroys the audio source with given |id|. + /// @note This should only be called from the main Unity thread. + public static void DestroyAudioSource (int id) { + if (initialized) { + DestroySource(id); + } + } + + /// Updates the audio |source| with given |id| and its properties. + /// @note This should only be called from the main Unity thread. + public static void UpdateAudioSource (int id, GvrAudioSource source, float currentOcclusion) { + if (initialized) { + SetSourceBypassRoomEffects(id, source.bypassRoomEffects); + SetSourceDirectivity(id, source.directivityAlpha, source.directivitySharpness); + SetSourceListenerDirectivity(id, source.listenerDirectivityAlpha, + source.listenerDirectivitySharpness); + SetSourceOcclusionIntensity(id, currentOcclusion); + } + } + + /// Updates the room effects of the environment with given |room| properties. + /// @note This should only be called from the main Unity thread. + public static void UpdateAudioRoom(GvrAudioRoom room, bool roomEnabled) { + // Update the enabled rooms list. + if (roomEnabled) { + if (!enabledRooms.Contains(room)) { + enabledRooms.Add(room); + } + } else { + enabledRooms.Remove(room); + } + // Update the current room effects to be applied. + if(initialized) { + if (enabledRooms.Count > 0) { + GvrAudioRoom currentRoom = enabledRooms[enabledRooms.Count - 1]; + RoomProperties roomProperties = GetRoomProperties(currentRoom); + // Pass the room properties into a pointer. + IntPtr roomPropertiesPtr = Marshal.AllocHGlobal(Marshal.SizeOf(roomProperties)); + Marshal.StructureToPtr(roomProperties, roomPropertiesPtr, false); + SetRoomProperties(roomPropertiesPtr); + Marshal.FreeHGlobal(roomPropertiesPtr); + } else { + // Set the room properties to null, which will effectively disable the room effects. + SetRoomProperties(IntPtr.Zero); + } + } + } + + /// Computes the occlusion intensity of a given |source| using point source detection. + /// @note This should only be called from the main Unity thread. + public static float ComputeOcclusion (Transform sourceTransform) { + float occlusion = 0.0f; + if (initialized) { + Vector3 listenerPosition = listenerTransform.position; + Vector3 sourceFromListener = sourceTransform.position - listenerPosition; + int numHits = Physics.RaycastNonAlloc(listenerPosition, sourceFromListener, occlusionHits, + sourceFromListener.magnitude, occlusionMaskValue); + for (int i = 0; i < numHits; ++i) { + if (occlusionHits[i].transform != listenerTransform && + occlusionHits[i].transform != sourceTransform) { + occlusion += 1.0f; + } + } + } + return occlusion; + } + + /// Converts given |db| value to its amplitude equivalent where 'dB = 20 * log10(amplitude)'. + public static float ConvertAmplitudeFromDb (float db) { + return Mathf.Pow(10.0f, 0.05f * db); + } + + /// Generates a set of points to draw a 2D polar pattern. + public static Vector2[] Generate2dPolarPattern (float alpha, float order, int resolution) { + Vector2[] points = new Vector2[resolution]; + float interval = 2.0f * Mathf.PI / resolution; + for (int i = 0; i < resolution; ++i) { + float theta = i * interval; + // Magnitude |r| for |theta| in radians. + float r = Mathf.Pow(Mathf.Abs((1 - alpha) + alpha * Mathf.Cos(theta)), order); + points[i] = new Vector2(r * Mathf.Sin(theta), r * Mathf.Cos(theta)); + } + return points; + } + + /// Returns whether the listener is currently inside the given |room| boundaries. + public static bool IsListenerInsideRoom(GvrAudioRoom room) { + bool isInside = false; + if(initialized) { + Vector3 relativePosition = listenerTransform.position - room.transform.position; + Quaternion rotationInverse = Quaternion.Inverse(room.transform.rotation); + + bounds.size = Vector3.Scale(room.transform.lossyScale, room.size); + isInside = bounds.Contains(rotationInverse * relativePosition); + } + return isInside; + } + + /// Listener directivity GUI color. + public static readonly Color listenerDirectivityColor = 0.65f * Color.magenta; + + /// Source directivity GUI color. + public static readonly Color sourceDirectivityColor = 0.65f * Color.blue; + + /// Minimum distance threshold between |minDistance| and |maxDistance|. + public const float distanceEpsilon = 0.01f; + + /// Max distance limit that can be set for volume rolloff. + public const float maxDistanceLimit = 1000000.0f; + + /// Min distance limit that can be set for volume rolloff. + public const float minDistanceLimit = 990099.0f; + + /// Maximum allowed gain value in decibels. + public const float maxGainDb = 24.0f; + + /// Minimum allowed gain value in decibels. + public const float minGainDb = -24.0f; + + /// Maximum allowed reverb brightness modifier value. + public const float maxReverbBrightness = 1.0f; + + /// Minimum allowed reverb brightness modifier value. + public const float minReverbBrightness = -1.0f; + + /// Maximum allowed reverb time modifier value. + public const float maxReverbTime = 3.0f; + + /// Maximum allowed reflectivity multiplier of a room surface material. + public const float maxReflectivity = 2.0f; + + /// Maximum allowed number of raycast hits for occlusion computation per source. + public const int maxNumOcclusionHits = 12; + + /// Source occlusion detection rate in seconds. + public const float occlusionDetectionInterval = 0.2f; + + // Number of first-order ambisonic input channels. + public const int numFoaChannels = 4; + + [StructLayout(LayoutKind.Sequential)] + private struct RoomProperties { + // Center position of the room in world space. + public float positionX; + public float positionY; + public float positionZ; + + // Rotation (quaternion) of the room in world space. + public float rotationX; + public float rotationY; + public float rotationZ; + public float rotationW; + + // Size of the shoebox room in world space. + public float dimensionsX; + public float dimensionsY; + public float dimensionsZ; + + // Material name of each surface of the shoebox room. + public GvrAudioRoom.SurfaceMaterial materialLeft; + public GvrAudioRoom.SurfaceMaterial materialRight; + public GvrAudioRoom.SurfaceMaterial materialBottom; + public GvrAudioRoom.SurfaceMaterial materialTop; + public GvrAudioRoom.SurfaceMaterial materialFront; + public GvrAudioRoom.SurfaceMaterial materialBack; + + // User defined uniform scaling factor for reflectivity. This parameter has no effect when set + // to 1.0f. + public float reflectionScalar; + + // User defined reverb tail gain multiplier. This parameter has no effect when set to 0.0f. + public float reverbGain; + + // Parameter which allows the reverberation time across all frequency bands to be increased or + // decreased. This parameter has no effect when set to 1.0f. + public float reverbTime; + + // Parameter which allows the ratio of high frequncy reverb components to low frequency reverb + // components to be adjusted. This parameter has no effect when set to 0.0f. + public float reverbBrightness; + }; + + // Converts given |position| and |rotation| from Unity space to audio space. + private static void ConvertAudioTransformFromUnity (ref Vector3 position, + ref Quaternion rotation) { + pose.SetRightHanded(Matrix4x4.TRS(position, rotation, Vector3.one)); + position = pose.Position; + rotation = pose.Orientation; + } + + // Returns room properties of the given |room|. + private static RoomProperties GetRoomProperties(GvrAudioRoom room) { + RoomProperties roomProperties; + Vector3 position = room.transform.position; + Quaternion rotation = room.transform.rotation; + Vector3 scale = Vector3.Scale(room.transform.lossyScale, room.size); + ConvertAudioTransformFromUnity(ref position, ref rotation); + roomProperties.positionX = position.x; + roomProperties.positionY = position.y; + roomProperties.positionZ = position.z; + roomProperties.rotationX = rotation.x; + roomProperties.rotationY = rotation.y; + roomProperties.rotationZ = rotation.z; + roomProperties.rotationW = rotation.w; + roomProperties.dimensionsX = scale.x; + roomProperties.dimensionsY = scale.y; + roomProperties.dimensionsZ = scale.z; + roomProperties.materialLeft = room.leftWall; + roomProperties.materialRight = room.rightWall; + roomProperties.materialBottom = room.floor; + roomProperties.materialTop = room.ceiling; + roomProperties.materialFront = room.frontWall; + roomProperties.materialBack = room.backWall; + roomProperties.reverbGain = ConvertAmplitudeFromDb(room.reverbGainDb); + roomProperties.reverbTime = room.reverbTime; + roomProperties.reverbBrightness = room.reverbBrightness; + roomProperties.reflectionScalar = room.reflectivity; + return roomProperties; + } + + // Boundaries instance to be used in room detection logic. + private static Bounds bounds = new Bounds(Vector3.zero, Vector3.zero); + + // Container to store the currently active rooms in the scene. + private static List enabledRooms = new List(); + + // Denotes whether the system is initialized properly. + private static bool initialized = false; + + // Listener transform. + private static Transform listenerTransform = null; + + // Pre-allocated raycast hit list for occlusion computation. + private static RaycastHit[] occlusionHits = new RaycastHit[maxNumOcclusionHits]; + + // Occlusion layer mask. + private static int occlusionMaskValue = -1; + + // 3D pose instance to be used in transform space conversion. + private static MutablePose3D pose = new MutablePose3D(); + +#if UNITY_IOS + private const string pluginName = "__Internal"; +#else + private const string pluginName = "audioplugingvrunity"; +#endif + + // Listener handlers. + [DllImport(pluginName)] + private static extern void SetListenerGain (float gain); + + // Soundfield handlers. + [DllImport(pluginName)] + private static extern int CreateSoundfield (int numChannels); + + // Source handlers. + [DllImport(pluginName)] + private static extern int CreateSoundObject (bool enableHrtf); + + [DllImport(pluginName)] + private static extern void DestroySource (int sourceId); + + [DllImport(pluginName)] + private static extern void SetSourceBypassRoomEffects (int sourceId, bool bypassRoomEffects); + + [DllImport(pluginName)] + private static extern void SetSourceDirectivity (int sourceId, float alpha, float order); + + [DllImport(pluginName)] + private static extern void SetSourceListenerDirectivity (int sourceId, float alpha, float order); + + [DllImport(pluginName)] + private static extern void SetSourceOcclusionIntensity (int sourceId, float intensity); + + // Room handlers. + [DllImport(pluginName)] + private static extern void SetRoomProperties (IntPtr roomProperties); + + // System handlers. + [DllImport(pluginName)] + private static extern void Initialize (int quality, int sampleRate, int numChannels, + int framesPerBuffer); + + [DllImport(pluginName)] + private static extern void Shutdown (); +} diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudio.cs.meta b/Assets/GoogleVR/Scripts/Audio/GvrAudio.cs.meta new file mode 100644 index 0000000..094009b --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudio.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 84ad368148aad42938b2fdb28552e8ac +timeCreated: 1447961130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudioListener.cs b/Assets/GoogleVR/Scripts/Audio/GvrAudioListener.cs new file mode 100644 index 0000000..1f36b6e --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudioListener.cs @@ -0,0 +1,49 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// GVR audio listener component that enhances AudioListener to provide advanced spatial audio +/// features. +/// +/// There should be only one instance of this which is attached to the AudioListener's game object. +[AddComponentMenu("GoogleVR/Audio/GvrAudioListener")] +public class GvrAudioListener : MonoBehaviour { + /// Global gain in decibels to be applied to the processed output. + public float globalGainDb = 0.0f; + + /// Global layer mask to be used in occlusion detection. + public LayerMask occlusionMask = -1; + + /// Audio rendering quality of the system. + [SerializeField] + private GvrAudio.Quality quality = GvrAudio.Quality.High; + + void Awake () { + GvrAudio.Initialize(this, quality); + } + + void OnEnable () { + GvrAudio.UpdateAudioListener(globalGainDb, occlusionMask); + } + + void OnDestroy () { + GvrAudio.Shutdown(this); + } + + void Update () { + GvrAudio.UpdateAudioListener(globalGainDb, occlusionMask); + } +} diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudioListener.cs.meta b/Assets/GoogleVR/Scripts/Audio/GvrAudioListener.cs.meta new file mode 100644 index 0000000..f1764fc --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudioListener.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b1156c073149742478887bb24456f32d +timeCreated: 1447961345 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudioRoom.cs b/Assets/GoogleVR/Scripts/Audio/GvrAudioRoom.cs new file mode 100644 index 0000000..e6ce63d --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudioRoom.cs @@ -0,0 +1,100 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// GVR audio room component that simulates environmental effects of a room with respect to the +/// properties of the attached game object. +[AddComponentMenu("GoogleVR/Audio/GvrAudioRoom")] +public class GvrAudioRoom : MonoBehaviour { + /// Material type that determines the acoustic properties of a room surface. + public enum SurfaceMaterial { + Transparent = 0, ///< Transparent + AcousticCeilingTiles = 1, ///< Acoustic ceiling tiles + BrickBare = 2, ///< Brick, bare + BrickPainted = 3, ///< Brick, painted + ConcreteBlockCoarse = 4, ///< Concrete block, coarse + ConcreteBlockPainted = 5, ///< Concrete block, painted + CurtainHeavy = 6, ///< Curtain, heavy + FiberglassInsulation = 7, ///< Fiberglass insulation + GlassThin = 8, ///< Glass, thin + GlassThick = 9, ///< Glass, thick + Grass = 10, ///< Grass + LinoleumOnConcrete = 11, ///< Linoleum on concrete + Marble = 12, ///< Marble + Metal = 13, ///< Galvanized sheet metal + ParquetOnConcrete = 14, ///< Parquet on concrete + PlasterRough = 15, ///< Plaster, rough + PlasterSmooth = 16, ///< Plaster, smooth + PlywoodPanel = 17, ///< Plywood panel + PolishedConcreteOrTile = 18, ///< Polished concrete or tile + Sheetrock = 19, ///< Sheetrock + WaterOrIceSurface = 20, ///< Water or ice surface + WoodCeiling = 21, ///< Wood ceiling + WoodPanel = 22 ///< Wood panel + } + + /// Room surface material in negative x direction. + public SurfaceMaterial leftWall = SurfaceMaterial.ConcreteBlockCoarse; + + /// Room surface material in positive x direction. + public SurfaceMaterial rightWall = SurfaceMaterial.ConcreteBlockCoarse; + + /// Room surface material in negative y direction. + public SurfaceMaterial floor = SurfaceMaterial.ParquetOnConcrete; + + /// Room surface material in positive y direction. + public SurfaceMaterial ceiling = SurfaceMaterial.PlasterRough; + + /// Room surface material in negative z direction. + public SurfaceMaterial backWall = SurfaceMaterial.ConcreteBlockCoarse; + + /// Room surface material in positive z direction. + public SurfaceMaterial frontWall = SurfaceMaterial.ConcreteBlockCoarse; + + /// Reflectivity scalar for each surface of the room. + public float reflectivity = 1.0f; + + /// Reverb gain modifier in decibels. + public float reverbGainDb = 0.0f; + + /// Reverb brightness modifier. + public float reverbBrightness = 0.0f; + + /// Reverb time modifier. + public float reverbTime = 1.0f; + + /// Size of the room (normalized with respect to scale of the game object). + public Vector3 size = Vector3.one; + + void OnEnable () { + GvrAudio.UpdateAudioRoom(this, GvrAudio.IsListenerInsideRoom(this)); + } + + void OnDisable () { + GvrAudio.UpdateAudioRoom(this, false); + } + + void Update () { + GvrAudio.UpdateAudioRoom(this, GvrAudio.IsListenerInsideRoom(this)); + } + + void OnDrawGizmosSelected () { + // Draw shoebox model wireframe of the room. + Gizmos.color = Color.yellow; + Gizmos.matrix = transform.localToWorldMatrix; + Gizmos.DrawWireCube(Vector3.zero, size); + } +} diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudioRoom.cs.meta b/Assets/GoogleVR/Scripts/Audio/GvrAudioRoom.cs.meta new file mode 100644 index 0000000..08c8c6e --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudioRoom.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1d2722c2401e34d51bf5b473ef7aeefb +timeCreated: 1447961354 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudioSoundfield.cs b/Assets/GoogleVR/Scripts/Audio/GvrAudioSoundfield.cs new file mode 100644 index 0000000..0488285 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudioSoundfield.cs @@ -0,0 +1,490 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.Audio; +using System.Collections; + +// GVR soundfield component that allows playback of first-order ambisonic recordings. The +// audio sample should be in Ambix (ACN-SN3D) format. +[AddComponentMenu("GoogleVR/Audio/GvrAudioSoundfield")] +public class GvrAudioSoundfield : MonoBehaviour { + /// Denotes whether the room effects should be bypassed. + public bool bypassRoomEffects = true; + + /// Input gain in decibels. + public float gainDb = 0.0f; + + /// Play source on awake. + public bool playOnAwake = true; + + /// The default AudioClip to play. + public AudioClip clip0102 { + get { return soundfieldClip0102; } + set { + soundfieldClip0102 = value; + if (audioSources != null && audioSources.Length > 0) { + audioSources[0].clip = soundfieldClip0102; + } + } + } + [SerializeField] + private AudioClip soundfieldClip0102 = null; + + public AudioClip clip0304 { + get { return soundfieldClip0304; } + set { + soundfieldClip0304 = value; + if (audioSources != null && audioSources.Length > 0) { + audioSources[1].clip = soundfieldClip0304; + } + } + } + [SerializeField] + private AudioClip soundfieldClip0304 = null; + + /// Is the clip playing right now (Read Only)? + public bool isPlaying { + get { + if(audioSources != null && audioSources.Length > 0) { + return audioSources[0].isPlaying; + } + return false; + } + } + + /// Is the audio clip looping? + public bool loop { + get { return soundfieldLoop; } + set { + soundfieldLoop = value; + if(audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].loop = soundfieldLoop; + } + } + } + } + [SerializeField] + private bool soundfieldLoop = false; + + /// Un- / Mutes the soundfield. Mute sets the volume=0, Un-Mute restore the original volume. + public bool mute { + get { return soundfieldMute; } + set { + soundfieldMute = value; + if(audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].mute = soundfieldMute; + } + } + } + } + [SerializeField] + private bool soundfieldMute = false; + + /// The pitch of the audio source. + public float pitch { + get { return soundfieldPitch; } + set { + soundfieldPitch = value; + if(audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].pitch = soundfieldPitch; + } + } + } + } + [SerializeField] + [Range(-3.0f, 3.0f)] + private float soundfieldPitch = 1.0f; + + /// Sets the priority of the soundfield. + public int priority { + get { return soundfieldPriority; } + set { + soundfieldPriority = value; + if(audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].priority = soundfieldPriority; + } + } + } + } + [SerializeField] + [Range(0, 256)] + private int soundfieldPriority = 32; + + /// Sets how much this soundfield is affected by 3D spatialization calculations + /// (attenuation, doppler). + public float spatialBlend { + get { return soundfieldSpatialBlend; } + set { + soundfieldSpatialBlend = value; + if (audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].spatialBlend = soundfieldSpatialBlend; + } + } + } + } + [SerializeField] + [Range(0.0f, 1.0f)] + private float soundfieldSpatialBlend = 0.0f; + + /// Sets the Doppler scale for this soundfield. + public float dopplerLevel { + get { return soundfieldDopplerLevel; } + set { + soundfieldDopplerLevel = value; + if(audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].dopplerLevel = soundfieldDopplerLevel; + } + } + } + } + [SerializeField] + [Range(0.0f, 5.0f)] + private float soundfieldDopplerLevel = 0.0f; + + /// Playback position in seconds. + public float time { + get { + if(audioSources != null && audioSources.Length > 0) { + return audioSources[0].time; + } + return 0.0f; + } + set { + if(audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].time = value; + } + } + } + } + + /// Playback position in PCM samples. + public int timeSamples { + get { + if(audioSources != null && audioSources.Length > 0) { + return audioSources[0].timeSamples; + } + return 0; + } + set { + if(audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].timeSamples = value; + } + } + } + } + + /// The volume of the audio source (0.0 to 1.0). + public float volume { + get { return soundfieldVolume; } + set { + soundfieldVolume = value; + if(audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].volume = soundfieldVolume; + } + } + } + } + [SerializeField] + [Range(0.0f, 1.0f)] + private float soundfieldVolume = 1.0f; + + /// Volume rolloff model with respect to the distance. + public AudioRolloffMode rolloffMode { + get { return soundfieldRolloffMode; } + set { + soundfieldRolloffMode = value; + if (audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].rolloffMode = soundfieldRolloffMode; + if (rolloffMode == AudioRolloffMode.Custom) { + // Custom rolloff is not supported, set the curve for no distance attenuation. + audioSources[channelSet].SetCustomCurve( + AudioSourceCurveType.CustomRolloff, + AnimationCurve.Linear(soundfieldMinDistance, 1.0f, soundfieldMaxDistance, 1.0f)); + } + } + } + } + } + [SerializeField] + private AudioRolloffMode soundfieldRolloffMode = AudioRolloffMode.Logarithmic; + + /// MaxDistance is the distance a sound stops attenuating at. + public float maxDistance { + get { return soundfieldMaxDistance; } + set { + soundfieldMaxDistance = Mathf.Clamp(value, soundfieldMinDistance + GvrAudio.distanceEpsilon, + GvrAudio.maxDistanceLimit); + if (audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].maxDistance = soundfieldMaxDistance; + } + } + } + } + [SerializeField] + private float soundfieldMaxDistance = 500.0f; + + /// Within the Min distance the GvrAudioSource will cease to grow louder in volume. + public float minDistance { + get { return soundfieldMinDistance; } + set { + soundfieldMinDistance = Mathf.Clamp(value, 0.0f, GvrAudio.minDistanceLimit); + if (audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].minDistance = soundfieldMinDistance; + } + } + } + } + [SerializeField] + private float soundfieldMinDistance = 1.0f; + + // Unique source id. + private int id = -1; + + // Unity audio sources per each soundfield channel set. + private AudioSource[] audioSources = null; + + // Denotes whether the source is currently paused or not. + private bool isPaused = false; + + void Awake () { + // Route the source output to |GvrAudioMixer|. + AudioMixer mixer = (Resources.Load("GvrAudioMixer") as AudioMixer); + if(mixer == null) { + Debug.LogError("GVRAudioMixer could not be found in Resources. Make sure that the GVR SDK" + + "Unity package is imported properly."); + return; + } + audioSources = new AudioSource[GvrAudio.numFoaChannels / 2]; + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + GameObject channelSetObject = new GameObject("Channel Set " + channelSet); + channelSetObject.transform.parent = gameObject.transform; + channelSetObject.transform.localPosition = Vector3.zero; + channelSetObject.transform.localRotation = Quaternion.identity; + channelSetObject.hideFlags = HideFlags.HideAndDontSave; + audioSources[channelSet] = channelSetObject.AddComponent(); + audioSources[channelSet].enabled = false; + audioSources[channelSet].playOnAwake = false; + audioSources[channelSet].bypassReverbZones = true; +#if UNITY_5_5_OR_NEWER + audioSources[channelSet].spatializePostEffects = true; +#endif // UNITY_5_5_OR_NEWER + audioSources[channelSet].outputAudioMixerGroup = mixer.FindMatchingGroups("Master")[0]; + } + OnValidate(); + } + + void OnEnable () { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].enabled = true; + } + if (playOnAwake && !isPlaying && InitializeSoundfield()) { + Play(); + } + } + + void Start () { + if (playOnAwake && !isPlaying) { + Play(); + } + } + + void OnDisable () { + Stop(); + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].enabled = false; + } + } + + void OnDestroy () { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + Destroy(audioSources[channelSet].gameObject); + } + } + + void OnApplicationPause (bool pauseStatus) { + if (pauseStatus) { + Pause(); + } else { + UnPause(); + } + } + + void Update () { + // Update soundfield. + if (!isPlaying && !isPaused) { + Stop(); + } else { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].SetSpatializerFloat((int) GvrAudio.SpatializerData.Gain, + GvrAudio.ConvertAmplitudeFromDb(gainDb)); + audioSources[channelSet].SetSpatializerFloat((int) GvrAudio.SpatializerData.MinDistance, + soundfieldMinDistance); + } + } + GvrAudio.UpdateAudioSoundfield(id, this); + } + + void OnValidate () { + clip0102 = soundfieldClip0102; + clip0304 = soundfieldClip0304; + loop = soundfieldLoop; + mute = soundfieldMute; + pitch = soundfieldPitch; + priority = soundfieldPriority; + spatialBlend = soundfieldSpatialBlend; + volume = soundfieldVolume; + dopplerLevel = soundfieldDopplerLevel; + minDistance = soundfieldMinDistance; + maxDistance = soundfieldMaxDistance; + rolloffMode = soundfieldRolloffMode; + } + + /// Pauses playing the clip. + public void Pause () { + if (audioSources != null) { + isPaused = true; + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].Pause(); + } + } + } + + /// Plays the clip. + public void Play () { + double dspTime = AudioSettings.dspTime; + PlayScheduled(dspTime); + } + + /// Plays the clip with a delay specified in seconds. + public void PlayDelayed (float delay) { + double delayedDspTime = AudioSettings.dspTime + (double)delay; + PlayScheduled(delayedDspTime); + } + + /// Plays the clip at a specific time on the absolute time-line that AudioSettings.dspTime reads + /// from. + public void PlayScheduled (double time) { + if (audioSources != null && InitializeSoundfield()) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].PlayScheduled(time); + } + isPaused = false; + } else { + Debug.LogWarning ("GVR Audio soundfield not initialized. Audio playback not supported " + + "until after Awake() and OnEnable(). Try calling from Start() instead."); + } + } + + /// Changes the time at which a sound that has already been scheduled to play will end. + public void SetScheduledEndTime(double time) { + if (audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].SetScheduledEndTime(time); + } + } + } + + /// Changes the time at which a sound that has already been scheduled to play will start. + public void SetScheduledStartTime(double time) { + if (audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].SetScheduledStartTime(time); + } + } + } + + /// Stops playing the clip. + public void Stop () { + if(audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].Stop(); + } + ShutdownSoundfield(); + isPaused = false; + } + } + + /// Unpauses the paused playback. + public void UnPause () { + if (audioSources != null) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + audioSources[channelSet].UnPause(); + } + isPaused = true; + } + } + + // Initializes the source. + private bool InitializeSoundfield () { + if (id < 0) { + id = GvrAudio.CreateAudioSoundfield(); + if (id >= 0) { + GvrAudio.UpdateAudioSoundfield(id, this); + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + InitializeChannelSet(audioSources[channelSet], channelSet); + } + } + } + return id >= 0; + } + + // Shuts down the source. + private void ShutdownSoundfield () { + if (id >= 0) { + for (int channelSet = 0; channelSet < audioSources.Length; ++channelSet) { + ShutdownChannelSet(audioSources[channelSet], channelSet); + } + GvrAudio.DestroyAudioSource(id); + id = -1; + } + } + + // Initializes given channel set of the soundfield. + private void InitializeChannelSet(AudioSource source, int channelSet) { + source.spatialize = true; + source.SetSpatializerFloat((int) GvrAudio.SpatializerData.Type, + (float) GvrAudio.SpatializerType.Soundfield); + source.SetSpatializerFloat((int) GvrAudio.SpatializerData.NumChannels, + (float) GvrAudio.numFoaChannels); + source.SetSpatializerFloat((int) GvrAudio.SpatializerData.ChannelSet, (float) channelSet); + source.SetSpatializerFloat((int) GvrAudio.SpatializerData.Gain, + GvrAudio.ConvertAmplitudeFromDb(gainDb)); + source.SetSpatializerFloat((int) GvrAudio.SpatializerData.MinDistance, soundfieldMinDistance); + source.SetSpatializerFloat((int) GvrAudio.SpatializerData.ZeroOutput, 0.0f); + // Soundfield id must be set after all the spatializer parameters, to ensure that the soundfield + // is properly initialized before processing. + source.SetSpatializerFloat((int) GvrAudio.SpatializerData.Id, (float) id); + } + + // Shuts down given channel set of the soundfield. + private void ShutdownChannelSet(AudioSource source, int channelSet) { + source.SetSpatializerFloat((int) GvrAudio.SpatializerData.Id, -1.0f); + // Ensure that the output is zeroed after shutdown. + source.SetSpatializerFloat((int) GvrAudio.SpatializerData.ZeroOutput, 1.0f); + source.spatialize = false; + } +} diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudioSoundfield.cs.meta b/Assets/GoogleVR/Scripts/Audio/GvrAudioSoundfield.cs.meta new file mode 100644 index 0000000..177ee92 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudioSoundfield.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d38f0664abc0c446a8fa0886ec2bcd12 +timeCreated: 1466460492 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudioSource.cs b/Assets/GoogleVR/Scripts/Audio/GvrAudioSource.cs new file mode 100644 index 0000000..b1c346a --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudioSource.cs @@ -0,0 +1,563 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.Audio; +using System.Collections; + +/// GVR audio source component that enhances AudioSource to provide advanced spatial audio features. +[AddComponentMenu("GoogleVR/Audio/GvrAudioSource")] +public class GvrAudioSource : MonoBehaviour { + /// Denotes whether the room effects should be bypassed. + public bool bypassRoomEffects = false; + + /// Directivity pattern shaping factor. + public float directivityAlpha = 0.0f; + + /// Directivity pattern order. + public float directivitySharpness = 1.0f; + + /// Listener directivity pattern shaping factor. + public float listenerDirectivityAlpha = 0.0f; + + /// Listener directivity pattern order. + public float listenerDirectivitySharpness = 1.0f; + + /// Input gain in decibels. + public float gainDb = 0.0f; + + /// Occlusion effect toggle. + public bool occlusionEnabled = false; + + /// Play source on awake. + public bool playOnAwake = true; + + /// The default AudioClip to play. + public AudioClip clip { + get { return sourceClip; } + set { + sourceClip = value; + if (audioSource != null) { + audioSource.clip = sourceClip; + } + } + } + [SerializeField] + private AudioClip sourceClip = null; + + /// Is the clip playing right now (Read Only)? + public bool isPlaying { + get { + if (audioSource != null) { + return audioSource.isPlaying; + } + return false; + } + } + + /// Is the audio clip looping? + public bool loop { + get { return sourceLoop; } + set { + sourceLoop = value; + if (audioSource != null) { + audioSource.loop = sourceLoop; + } + } + } + [SerializeField] + private bool sourceLoop = false; + + /// Un- / Mutes the source. Mute sets the volume=0, Un-Mute restore the original volume. + public bool mute { + get { return sourceMute; } + set { + sourceMute = value; + if (audioSource != null) { + audioSource.mute = sourceMute; + } + } + } + [SerializeField] + private bool sourceMute = false; + + /// The pitch of the audio source. + public float pitch { + get { return sourcePitch; } + set { + sourcePitch = value; + if (audioSource != null) { + audioSource.pitch = sourcePitch; + } + } + } + [SerializeField] + [Range(-3.0f, 3.0f)] + private float sourcePitch = 1.0f; + + /// Sets the priority of the audio source. + public int priority { + get { return sourcePriority; } + set { + sourcePriority = value; + if(audioSource != null) { + audioSource.priority = sourcePriority; + } + } + } + [SerializeField] + [Range(0, 256)] + private int sourcePriority = 128; + + /// Sets how much this source is affected by 3D spatialization calculations (attenuation, doppler). + public float spatialBlend { + get { return sourceSpatialBlend; } + set { + sourceSpatialBlend = value; + if (audioSource != null) { + audioSource.spatialBlend = sourceSpatialBlend; + } + } + } + [SerializeField] + [Range(0.0f, 1.0f)] + private float sourceSpatialBlend = 1.0f; + + /// Sets the Doppler scale for this audio source. + public float dopplerLevel { + get { return sourceDopplerLevel; } + set { + sourceDopplerLevel = value; + if(audioSource != null) { + audioSource.dopplerLevel = sourceDopplerLevel; + } + } + } + [SerializeField] + [Range(0.0f, 5.0f)] + private float sourceDopplerLevel = 1.0f; + + /// Sets the spread angle (in degrees) in 3D space. + public float spread { + get { return sourceSpread; } + set { + sourceSpread = value; + if(audioSource != null) { + audioSource.spread = sourceSpread; + } + } + } + [SerializeField] + [Range(0.0f, 360.0f)] + private float sourceSpread = 0.0f; + + /// Playback position in seconds. + public float time { + get { + if(audioSource != null) { + return audioSource.time; + } + return 0.0f; + } + set { + if(audioSource != null) { + audioSource.time = value; + } + } + } + + /// Playback position in PCM samples. + public int timeSamples { + get { + if(audioSource != null) { + return audioSource.timeSamples; + } + return 0; + } + set { + if(audioSource != null) { + audioSource.timeSamples = value; + } + } + } + + /// The volume of the audio source (0.0 to 1.0). + public float volume { + get { return sourceVolume; } + set { + sourceVolume = value; + if (audioSource != null) { + audioSource.volume = sourceVolume; + } + } + } + [SerializeField] + [Range(0.0f, 1.0f)] + private float sourceVolume = 1.0f; + + /// Volume rolloff model with respect to the distance. + public AudioRolloffMode rolloffMode { + get { return sourceRolloffMode; } + set { + sourceRolloffMode = value; + if (audioSource != null) { + audioSource.rolloffMode = sourceRolloffMode; + if (rolloffMode == AudioRolloffMode.Custom) { + // Custom rolloff is not supported, set the curve for no distance attenuation. + audioSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, + AnimationCurve.Linear(sourceMinDistance, 1.0f, + sourceMaxDistance, 1.0f)); + } + } + } + } + [SerializeField] + private AudioRolloffMode sourceRolloffMode = AudioRolloffMode.Logarithmic; + + /// MaxDistance is the distance a sound stops attenuating at. + public float maxDistance { + get { return sourceMaxDistance; } + set { + sourceMaxDistance = Mathf.Clamp(value, sourceMinDistance + GvrAudio.distanceEpsilon, + GvrAudio.maxDistanceLimit); + if(audioSource != null) { + audioSource.maxDistance = sourceMaxDistance; + } + } + } + [SerializeField] + private float sourceMaxDistance = 500.0f; + + /// Within the Min distance the GvrAudioSource will cease to grow louder in volume. + public float minDistance { + get { return sourceMinDistance; } + set { + sourceMinDistance = Mathf.Clamp(value, 0.0f, GvrAudio.minDistanceLimit); + if(audioSource != null) { + audioSource.minDistance = sourceMinDistance; + } + } + } + [SerializeField] + private float sourceMinDistance = 1.0f; + + /// Binaural (HRTF) rendering toggle. + [SerializeField] + private bool hrtfEnabled = true; + + // Unity audio source attached to the game object. + [SerializeField] + private AudioSource audioSource = null; + + // Unique source id. + private int id = -1; + + // Current occlusion value; + private float currentOcclusion = 0.0f; + + // Next occlusion update time in seconds. + private float nextOcclusionUpdate = 0.0f; + + // Denotes whether the source is currently paused or not. + private bool isPaused = false; + + void Awake () { + if (audioSource == null) { + // Ensure the audio source gets created once. + audioSource = gameObject.AddComponent(); + } + audioSource.enabled = false; + audioSource.hideFlags = HideFlags.HideInInspector | HideFlags.HideAndDontSave; + audioSource.playOnAwake = false; + audioSource.bypassReverbZones = true; +#if UNITY_5_5_OR_NEWER + audioSource.spatializePostEffects = true; +#endif // UNITY_5_5_OR_NEWER + OnValidate(); + // Route the source output to |GvrAudioMixer|. + AudioMixer mixer = (Resources.Load("GvrAudioMixer") as AudioMixer); + if(mixer != null) { + audioSource.outputAudioMixerGroup = mixer.FindMatchingGroups("Master")[0]; + } else { + Debug.LogError("GVRAudioMixer could not be found in Resources. Make sure that the GVR SDK " + + "Unity package is imported properly."); + } + } + + void OnEnable () { + audioSource.enabled = true; + if (playOnAwake && !isPlaying && InitializeSource()) { + Play(); + } + } + + void Start () { + if (playOnAwake && !isPlaying) { + Play(); + } + } + + void OnDisable () { + Stop(); + audioSource.enabled = false; + } + + void OnDestroy () { + Destroy(audioSource); + } + + void OnApplicationPause (bool pauseStatus) { + if (pauseStatus) { + Pause(); + } else { + UnPause(); + } + } + + void Update () { + // Update occlusion state. + if (!occlusionEnabled) { + currentOcclusion = 0.0f; + } else if (Time.time >= nextOcclusionUpdate) { + nextOcclusionUpdate = Time.time + GvrAudio.occlusionDetectionInterval; + currentOcclusion = GvrAudio.ComputeOcclusion(transform); + } + // Update source. + if (!isPlaying && !isPaused) { + Stop(); + } else { + audioSource.SetSpatializerFloat((int) GvrAudio.SpatializerData.Gain, + GvrAudio.ConvertAmplitudeFromDb(gainDb)); + audioSource.SetSpatializerFloat((int) GvrAudio.SpatializerData.MinDistance, + sourceMinDistance); + GvrAudio.UpdateAudioSource(id, this, currentOcclusion); + } + } + + /// Provides a block of the currently playing source's output data. + /// + /// @note The array given in samples will be filled with the requested data before spatialization. + public void GetOutputData(float[] samples, int channel) { + if (audioSource != null) { + audioSource.GetOutputData(samples, channel); + } + } + + /// Provides a block of the currently playing audio source's spectrum data. + /// + /// @note The array given in samples will be filled with the requested data before spatialization. + public void GetSpectrumData(float[] samples, int channel, FFTWindow window) { + if (audioSource != null) { + audioSource.GetSpectrumData(samples, channel, window); + } + } + + /// Pauses playing the clip. + public void Pause () { + if (audioSource != null) { + isPaused = true; + audioSource.Pause(); + } + } + + /// Plays the clip. + public void Play () { + if (audioSource != null && InitializeSource()) { + audioSource.Play(); + isPaused = false; + } else { + Debug.LogWarning ("GVR Audio source not initialized. Audio playback not supported " + + "until after Awake() and OnEnable(). Try calling from Start() instead."); + } + } + + /// Plays the clip with a delay specified in seconds. + public void PlayDelayed (float delay) { + if (audioSource != null && InitializeSource()) { + audioSource.PlayDelayed(delay); + isPaused = false; + } else { + Debug.LogWarning ("GVR Audio source not initialized. Audio playback not supported " + + "until after Awake() and OnEnable(). Try calling from Start() instead."); + } + } + + /// Plays an AudioClip. + public void PlayOneShot (AudioClip clip) { + PlayOneShot(clip, 1.0f); + } + + /// Plays an AudioClip, and scales its volume. + public void PlayOneShot (AudioClip clip, float volume) { + if (audioSource != null && InitializeSource()) { + audioSource.PlayOneShot(clip, volume); + isPaused = false; + } else { + Debug.LogWarning ("GVR Audio source not initialized. Audio playback not supported " + + "until after Awake() and OnEnable(). Try calling from Start() instead."); + } + } + + /// Plays the clip at a specific time on the absolute time-line that AudioSettings.dspTime reads + /// from. + public void PlayScheduled (double time) { + if (audioSource != null && InitializeSource()) { + audioSource.PlayScheduled(time); + isPaused = false; + } else { + Debug.LogWarning ("GVR Audio source not initialized. Audio playback not supported " + + "until after Awake() and OnEnable(). Try calling from Start() instead."); + } + } + + /// Changes the time at which a sound that has already been scheduled to play will end. + public void SetScheduledEndTime(double time) { + if (audioSource != null) { + audioSource.SetScheduledEndTime(time); + } + } + + /// Changes the time at which a sound that has already been scheduled to play will start. + public void SetScheduledStartTime(double time) { + if (audioSource != null) { + audioSource.SetScheduledStartTime(time); + } + } + + /// Stops playing the clip. + public void Stop () { + if (audioSource != null) { + audioSource.Stop(); + ShutdownSource(); + isPaused = false; + } + } + + /// Unpauses the paused playback. + public void UnPause () { + if (audioSource != null) { + audioSource.UnPause(); + isPaused = false; + } + } + + // Initializes the source. + private bool InitializeSource () { + if (id < 0) { + id = GvrAudio.CreateAudioSource(hrtfEnabled); + if (id >= 0) { + GvrAudio.UpdateAudioSource(id, this, currentOcclusion); + audioSource.spatialize = true; + audioSource.SetSpatializerFloat((int) GvrAudio.SpatializerData.Type, + (float) GvrAudio.SpatializerType.Source); + audioSource.SetSpatializerFloat((int) GvrAudio.SpatializerData.Gain, + GvrAudio.ConvertAmplitudeFromDb(gainDb)); + audioSource.SetSpatializerFloat((int) GvrAudio.SpatializerData.MinDistance, + sourceMinDistance); + audioSource.SetSpatializerFloat((int) GvrAudio.SpatializerData.ZeroOutput, 0.0f); + // Source id must be set after all the spatializer parameters, to ensure that the source is + // properly initialized before processing. + audioSource.SetSpatializerFloat((int) GvrAudio.SpatializerData.Id, (float) id); + } + } + return id >= 0; + } + + // Shuts down the source. + private void ShutdownSource () { + if (id >= 0) { + audioSource.SetSpatializerFloat((int) GvrAudio.SpatializerData.Id, -1.0f); + // Ensure that the output is zeroed after shutdown. + audioSource.SetSpatializerFloat((int) GvrAudio.SpatializerData.ZeroOutput, 1.0f); + audioSource.spatialize = false; + GvrAudio.DestroyAudioSource(id); + id = -1; + } + } + + void OnDidApplyAnimationProperties () { + OnValidate(); + } + + void OnValidate () { + clip = sourceClip; + loop = sourceLoop; + mute = sourceMute; + pitch = sourcePitch; + priority = sourcePriority; + spatialBlend = sourceSpatialBlend; + volume = sourceVolume; + dopplerLevel = sourceDopplerLevel; + spread = sourceSpread; + minDistance = sourceMinDistance; + maxDistance = sourceMaxDistance; + rolloffMode = sourceRolloffMode; + } + + void OnDrawGizmosSelected () { + // Draw listener directivity gizmo. + // Note that this is a very suboptimal way of finding the component, to be used in Unity Editor + // only, should not be used to access the component in run time. + GvrAudioListener listener = FindObjectOfType(); + if(listener != null) { + Gizmos.color = GvrAudio.listenerDirectivityColor; + DrawDirectivityGizmo(listener.transform, listenerDirectivityAlpha, + listenerDirectivitySharpness, 180); + } + // Draw source directivity gizmo. + Gizmos.color = GvrAudio.sourceDirectivityColor; + DrawDirectivityGizmo(transform, directivityAlpha, directivitySharpness, 180); + } + + // Draws a 3D gizmo in the Scene View that shows the selected directivity pattern. + private void DrawDirectivityGizmo (Transform target, float alpha, float sharpness, + int resolution) { + Vector2[] points = GvrAudio.Generate2dPolarPattern(alpha, sharpness, resolution); + // Compute |vertices| from the polar pattern |points|. + int numVertices = resolution + 1; + Vector3[] vertices = new Vector3[numVertices]; + vertices[0] = Vector3.zero; + for (int i = 0; i < points.Length; ++i) { + vertices[i + 1] = new Vector3(points[i].x, 0.0f, points[i].y); + } + // Generate |triangles| from |vertices|. Two triangles per each sweep to avoid backface culling. + int[] triangles = new int[6 * numVertices]; + for (int i = 0; i < numVertices - 1; ++i) { + int index = 6 * i; + if (i < numVertices - 2) { + triangles[index] = 0; + triangles[index + 1] = i + 1; + triangles[index + 2] = i + 2; + } else { + // Last vertex is connected back to the first for the last triangle. + triangles[index] = 0; + triangles[index + 1] = numVertices - 1; + triangles[index + 2] = 1; + } + // The second triangle facing the opposite direction. + triangles[index + 3] = triangles[index]; + triangles[index + 4] = triangles[index + 2]; + triangles[index + 5] = triangles[index + 1]; + } + // Construct a new mesh for the gizmo. + Mesh directivityGizmoMesh = new Mesh(); + directivityGizmoMesh.hideFlags = HideFlags.DontSaveInEditor; + directivityGizmoMesh.vertices = vertices; + directivityGizmoMesh.triangles = triangles; + directivityGizmoMesh.RecalculateNormals(); + // Draw the mesh. + Vector3 scale = 2.0f * Mathf.Max(target.lossyScale.x, target.lossyScale.z) * Vector3.one; + Gizmos.DrawMesh(directivityGizmoMesh, target.position, target.rotation, scale); + } +} diff --git a/Assets/GoogleVR/Scripts/Audio/GvrAudioSource.cs.meta b/Assets/GoogleVR/Scripts/Audio/GvrAudioSource.cs.meta new file mode 100644 index 0000000..a4c47ef --- /dev/null +++ b/Assets/GoogleVR/Scripts/Audio/GvrAudioSource.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6dbca64e524ea44f9b26142ec59aca8a +timeCreated: 1447961362 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller.meta b/Assets/GoogleVR/Scripts/Controller.meta new file mode 100644 index 0000000..7254944 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 42e8338a3e200400c8c73016c4c88273 +folderAsset: yes +timeCreated: 1462043669 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/GvrArmModel.cs b/Assets/GoogleVR/Scripts/Controller/GvrArmModel.cs new file mode 100644 index 0000000..584e411 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrArmModel.cs @@ -0,0 +1,438 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// GVR native integration. + +using UnityEngine; +using UnityEngine.VR; +using System.Collections; + +/// The GvrArmModel is a standard interface to interact with a scene with the controller. +/// It is responsible for: +/// - Determining the orientation and location of the controller. +/// - Predict the location of the shoulder, elbow, wrist, and pointer. +/// +/// There should only be one instance in the scene, and it should be attached +/// to the GvrController. +[RequireComponent(typeof(GvrController))] +public class GvrArmModel : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private static GvrArmModel instance = null; + + /// Initial relative location of the shoulder (meters). + private static readonly Vector3 DEFAULT_SHOULDER_RIGHT = new Vector3(0.19f, -0.19f, -0.03f); + + /// The range of movement from the elbow position due to accelerometer (meters). + private static readonly Vector3 ELBOW_MIN_RANGE = new Vector3(-0.05f, -0.1f, 0.0f); + private static readonly Vector3 ELBOW_MAX_RANGE = new Vector3(0.05f, 0.1f, 0.2f); + + /// Offset of the laser pointer origin relative to the wrist (meters) + private static readonly Vector3 POINTER_OFFSET = new Vector3(0.0f, -0.009f, 0.099f); + + /// Rest position parameters for arm model (meters). + private static readonly Vector3 ELBOW_POSITION = new Vector3(0.195f, -0.5f, -0.075f); + private static readonly Vector3 WRIST_POSITION = new Vector3(0.0f, 0.0f, 0.25f); + private static readonly Vector3 ARM_EXTENSION_OFFSET = new Vector3(-0.13f, 0.14f, 0.08f); + + /// Strength of the acceleration filter (unitless). + private const float GRAVITY_CALIB_STRENGTH = 0.999f; + + /// Strength of the velocity suppression (unitless). + private const float VELOCITY_FILTER_SUPPRESS = 0.99f; + + /// Strength of the velocity suppression during low acceleration (unitless). + private const float LOW_ACCEL_VELOCITY_SUPPRESS = 0.9f; + + /// Strength of the acceleration suppression during low velocity (unitless). + private const float LOW_VELOCITY_ACCEL_SUPPRESS = 0.5f; + + /// The minimum allowable accelerometer reading before zeroing (m/s^2). + private const float MIN_ACCEL = 1.0f; + + /// The expected force of gravity (m/s^2). + private const float GRAVITY_FORCE = 9.807f; + + /// Amount of normalized alpha transparency to change per second. + private const float DELTA_ALPHA = 4.0f; + + /// Angle ranges the for arm extension offset to start and end (degrees). + private const float MIN_EXTENSION_ANGLE = 7.0f; + private const float MAX_EXTENSION_ANGLE = 60.0f; + + /// Increases elbow bending as the controller moves up (unitless). + private const float EXTENSION_WEIGHT = 0.4f; + + /// Offset of the elbow due to the accelerometer + private Vector3 elbowOffset; + + /// Forward direction of the arm model. + private Vector3 torsoDirection; + + /// Filtered velocity of the controller. + private Vector3 filteredVelocity; + + /// Filtered acceleration of the controller. + private Vector3 filteredAccel; + + /// Used to calibrate the ambient gravitational force. + private Vector3 zeroAccel; + + /// Indicates if this is the first frame to receive new IMU measurements. + private bool firstUpdate; + + /// Multiplier for handedness such that 1 = Right, 0 = Center, -1 = left. + private Vector3 handedMultiplier; + +#if UNITY_EDITOR + private Camera editorHeadCamera; +#endif // UNITY_EDITOR + + /// Use the GvrController singleton to obtain a singleton for this class. + public static GvrArmModel Instance { + get { + if (instance == null) { + instance = GvrController.ArmModel; + } + return instance != null && instance.isActiveAndEnabled ? instance : null; + } + } + + /// Represents when gaze-following behavior should occur. + public enum GazeBehavior { + Never, /// The shoulder will never follow the gaze. + DuringMotion, /// The shoulder will follow the gaze during controller motion. + Always /// The shoulder will always follow the gaze. + } + + /// Height of the elbow (m). + [Range(0.0f, 0.2f)] + public float addedElbowHeight = 0.0f; + + /// Depth of the elbow (m). + [Range(0.0f, 0.2f)] + public float addedElbowDepth = 0.0f; + + /// The Downward tilt or pitch of the laser pointer relative to the controller (degrees). + [Range(0.0f, 30.0f)] + public float pointerTiltAngle = 15.0f; + + /// Controller distance from the face after which the controller disappears (meters). + [Range(0.0f, 0.4f)] + public float fadeDistanceFromFace = 0.32f; + + /// Controller distance from face after which the tooltips appear (meters). + [Range(0.4f, 0.6f)] + public float tooltipMinDistanceFromFace = 0.45f; + + /// When the angle (degrees) between the controller and the head is larger than + /// this value, the tooltips disappear. + /// If the value is 180, then the tooltips are always shown. + /// If the value is 90, the tooltips are only shown when they are facing the camera. + [Range(0, 180)] + public int tooltipMaxAngleFromCamera = 80; + + /// Determines if the shoulder should follow the gaze + public GazeBehavior followGaze = GazeBehavior.DuringMotion; + + /// Determines if the accelerometer should be used. + public bool useAccelerometer = false; + + /// Vector to represent the pointer's location. + /// NOTE: This is in meatspace coordinates. + public Vector3 pointerPosition { get; private set; } + + /// Quaternion to represent the pointer's rotation. + /// NOTE: This is in meatspace coordinates. + public Quaternion pointerRotation { get; private set; } + + /// Vector to represent the wrist's location. + /// NOTE: This is in meatspace coordinates. + public Vector3 wristPosition { get; private set; } + + /// Quaternion to represent the wrist's rotation. + /// NOTE: This is in meatspace coordinates. + public Quaternion wristRotation { get; private set; } + + /// Vector to represent the elbow's location. + /// NOTE: This is in meatspace coordinates. + public Vector3 elbowPosition { get; private set; } + + /// Quaternion to represent the elbow's rotation. + /// NOTE: This is in meatspace coordinates. + public Quaternion elbowRotation { get; private set; } + + /// Vector to represent the shoulder's location. + /// NOTE: This is in meatspace coordinates. + public Vector3 shoulderPosition { get; private set; } + + /// Vector to represent the shoulder's location. + /// NOTE: This is in meatspace coordinates. + public Quaternion shoulderRotation { get; private set; } + + /// The suggested rendering alpha value of the controller. + /// This is to prevent the controller from intersecting the face. + /// The range is always 0 - 1 but can be scaled by individual + /// objects when using the GvrBaseControllerVisual script. + public float preferredAlpha { get; private set; } + + /// The suggested rendering alpha value of the controller tooltips. + /// This is to only display the tooltips when the player is looking + /// at the controller, and also to prevent the tooltips from intersecting the + /// player's face. + public float tooltipAlphaValue { get; private set; } + + /// Event handler that occurs when the state of the ArmModel is updated. + public delegate void OnArmModelUpdateEvent(); + public event OnArmModelUpdateEvent OnArmModelUpdate; + + void Start() { + // Obtain the Gvr controller from the scene. + GvrController controller = GetComponent(); + + UpdateHandedness(); + + // Register the controller update listener. + controller.OnControllerUpdate += OnControllerUpdate; + + // Reset other relevant state. + firstUpdate = true; + elbowOffset = Vector3.zero; + zeroAccel.Set(0, GRAVITY_FORCE, 0); + } + + void OnDestroy() { + // Unregister the controller update listener. + GvrController controller = GetComponent(); + controller.OnControllerUpdate -= OnControllerUpdate; + + // Reset the singleton instance. + instance = null; + } + +#if UNITY_EDITOR + void Update() { + editorHeadCamera = Camera.main; + } +#endif // UNITY_EDITOR + + private void OnControllerUpdate() { + if (GvrController.Recentered) { + ResetState(); + } + + UpdateHandedness(); + UpdateTorsoDirection(); + if (GvrController.State == GvrConnectionState.Connected) { + UpdateFromController(); + } else { + ResetState(); + } + if (useAccelerometer) { + UpdateVelocity(); + TransformElbow(); + } else { + elbowOffset = Vector3.zero; + } + ApplyArmModel(); + UpdateTransparency(); + UpdatePointer(); + + firstUpdate = false; + if (OnArmModelUpdate != null) { + OnArmModelUpdate(); + } + } + + private void UpdateHandedness() { + // Update user handedness if the setting has changed + GvrSettings.UserPrefsHandedness handedness = GvrSettings.Handedness; + + // Determine handedness multiplier. + handedMultiplier.Set(0, 1, 1); + if (handedness == GvrSettings.UserPrefsHandedness.Right) { + handedMultiplier.x = 1.0f; + } else if (handedness == GvrSettings.UserPrefsHandedness.Left) { + handedMultiplier.x = -1.0f; + } + + // Place the shoulder in anatomical positions based on the height and handedness. + shoulderRotation = Quaternion.identity; + shoulderPosition = Vector3.Scale(DEFAULT_SHOULDER_RIGHT, handedMultiplier); + } + + private Vector3 GetHeadOrientation() { +#if UNITY_EDITOR + if (editorHeadCamera == null) { + Debug.LogWarning("No Head Camera."); + return Vector3.forward; + } + + Vector3 forward = editorHeadCamera.transform.forward; + if (editorHeadCamera.transform.parent != null) { + forward = editorHeadCamera.transform.parent.InverseTransformDirection(forward); + } + + return forward; +#else + return InputTracking.GetLocalRotation(VRNode.Head) * Vector3.forward; +#endif // UNITY_EDITOR + } + + private void UpdateTorsoDirection() { + // Ignore updates here if requested. + if (followGaze == GazeBehavior.Never) { + return; + } + + // Determine the gaze direction horizontally. + Vector3 gazeDirection = GetHeadOrientation(); + gazeDirection.y = 0.0f; + gazeDirection.Normalize(); + + // Use the gaze direction to update the forward direction. + if (followGaze == GazeBehavior.Always || firstUpdate) { + torsoDirection = gazeDirection; + } else if (followGaze == GazeBehavior.DuringMotion) { + float angularVelocity = GvrController.Gyro.magnitude; + float gazeFilterStrength = Mathf.Clamp((angularVelocity - 0.2f) / 45.0f, 0.0f, 0.1f); + torsoDirection = Vector3.Slerp(torsoDirection, gazeDirection, gazeFilterStrength); + } + + // Rotate the fixed joints. + Quaternion gazeRotation = Quaternion.FromToRotation(Vector3.forward, torsoDirection); + shoulderRotation = gazeRotation; + shoulderPosition = gazeRotation * shoulderPosition; + } + + private void UpdateFromController() { + // Get the orientation-adjusted acceleration. + Vector3 accel = GvrController.Orientation * GvrController.Accel; + + // Very slowly calibrate gravity force out of acceleration. + zeroAccel = zeroAccel * GRAVITY_CALIB_STRENGTH + accel * (1.0f - GRAVITY_CALIB_STRENGTH); + filteredAccel = accel - zeroAccel; + + // If no tracking history, reset the velocity. + if (firstUpdate) { + filteredVelocity = Vector3.zero; + } + + // IMPORTANT: The accelerometer is not reliable at these low magnitudes + // so ignore it to prevent drift. + if (filteredAccel.magnitude < MIN_ACCEL) { + // Suppress the acceleration. + filteredAccel = Vector3.zero; + filteredVelocity *= LOW_ACCEL_VELOCITY_SUPPRESS; + } else { + // If the velocity is decreasing, prevent snap-back by reducing deceleration. + Vector3 newVelocity = filteredVelocity + filteredAccel * Time.deltaTime; + if (newVelocity.sqrMagnitude < filteredVelocity.sqrMagnitude) { + filteredAccel *= LOW_VELOCITY_ACCEL_SUPPRESS; + } + } + } + + private void UpdateVelocity() { + // Update the filtered velocity. + filteredVelocity += filteredAccel * Time.deltaTime; + filteredVelocity *= VELOCITY_FILTER_SUPPRESS; + } + + private void ResetState() { + // We've lost contact, quickly reset the state. + filteredVelocity *= 0.5f; + filteredAccel *= 0.5f; + firstUpdate = true; + } + + private void TransformElbow() { + // Apply the filtered velocity to update the elbow offset position. + if (useAccelerometer) { + elbowOffset += filteredVelocity * Time.deltaTime; + elbowOffset.x = Mathf.Clamp(elbowOffset.x, ELBOW_MIN_RANGE.x, ELBOW_MAX_RANGE.x); + elbowOffset.y = Mathf.Clamp(elbowOffset.y, ELBOW_MIN_RANGE.y, ELBOW_MAX_RANGE.y); + elbowOffset.z = Mathf.Clamp(elbowOffset.z, ELBOW_MIN_RANGE.z, ELBOW_MAX_RANGE.z); + } + } + + private void ApplyArmModel() { + // Find the controller's orientation relative to the player + Quaternion controllerOrientation = GvrController.Orientation; + controllerOrientation = Quaternion.Inverse(shoulderRotation) * controllerOrientation; + + // Get the relative positions of the joints + elbowPosition = ELBOW_POSITION + new Vector3(0.0f, addedElbowHeight, addedElbowDepth); + elbowPosition = Vector3.Scale(elbowPosition, handedMultiplier) + elbowOffset; + wristPosition = Vector3.Scale(WRIST_POSITION, handedMultiplier); + Vector3 armExtensionOffset = Vector3.Scale(ARM_EXTENSION_OFFSET, handedMultiplier); + + // Extract just the x rotation angle + Vector3 controllerForward = controllerOrientation * Vector3.forward; + float xAngle = 90.0f - Vector3.Angle(controllerForward, Vector3.up); + + // Remove the z rotation from the controller + Quaternion xyRotation = Quaternion.FromToRotation(Vector3.forward, controllerForward); + + // Offset the elbow by the extension + float normalizedAngle = (xAngle - MIN_EXTENSION_ANGLE) / (MAX_EXTENSION_ANGLE - MIN_EXTENSION_ANGLE); + float extensionRatio = Mathf.Clamp(normalizedAngle, 0.0f, 1.0f); + if (!useAccelerometer) { + elbowPosition += armExtensionOffset * extensionRatio; + } + + // Calculate the lerp interpolation factor + float totalAngle = Quaternion.Angle(xyRotation, Quaternion.identity); + float lerpSuppresion = 1.0f - Mathf.Pow(totalAngle / 180.0f, 6); + float lerpValue = lerpSuppresion * (0.4f + 0.6f * extensionRatio * EXTENSION_WEIGHT); + + // Apply the absolute rotations to the joints + Quaternion lerpRotation = Quaternion.Lerp(Quaternion.identity, xyRotation, lerpValue); + elbowRotation = shoulderRotation * Quaternion.Inverse(lerpRotation) * controllerOrientation; + wristRotation = shoulderRotation * controllerOrientation; + + // Determine the relative positions + elbowPosition = shoulderRotation * elbowPosition; + wristPosition = elbowPosition + elbowRotation * wristPosition; + } + + private void UpdateTransparency() { + // Determine how vertical the controller is pointing. + float animationDelta = DELTA_ALPHA * Time.deltaTime; + float distToFace = Vector3.Distance(wristPosition, Vector3.zero); + if (distToFace < fadeDistanceFromFace) { + preferredAlpha = Mathf.Max(0.0f, preferredAlpha - animationDelta); + } else { + preferredAlpha = Mathf.Min(1.0f, preferredAlpha + animationDelta); + } + + float dot = Vector3.Dot(wristRotation * Vector3.up, -wristPosition.normalized); + float minDot = (tooltipMaxAngleFromCamera - 90.0f) / -90.0f; + if (distToFace < fadeDistanceFromFace + || distToFace > tooltipMinDistanceFromFace + || dot < minDot) { + tooltipAlphaValue = Mathf.Max(0.0f, tooltipAlphaValue - animationDelta); + } else { + tooltipAlphaValue = Mathf.Min(1.0f, tooltipAlphaValue + animationDelta); + } + } + + private void UpdatePointer() { + // Determine the direction of the ray. + pointerPosition = wristPosition + wristRotation * POINTER_OFFSET; + pointerRotation = wristRotation * Quaternion.AngleAxis(pointerTiltAngle, Vector3.right); + } + +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/Controller/GvrArmModel.cs.meta b/Assets/GoogleVR/Scripts/Controller/GvrArmModel.cs.meta new file mode 100644 index 0000000..6bf1c06 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrArmModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7dda4bb2d5509e44e978d2bf56e25d7c +timeCreated: 1471566115 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/GvrArmModelOffsets.cs b/Assets/GoogleVR/Scripts/Controller/GvrArmModelOffsets.cs new file mode 100644 index 0000000..7760b50 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrArmModelOffsets.cs @@ -0,0 +1,104 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This script is not available for versions of Unity without the +// GVR native integration. + +using UnityEngine; +using System.Collections; + +/// This script positions and rotates the transform that it is attached to +/// according to a joint in the arm model. See GvrArmModel.cs for details. +public class GvrArmModelOffsets : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + /// Used to draw a line between joints for debugging purposes. + private LineRenderer lineRenderer; + + public enum Joint { + Pointer, + Wrist, + Shoulder, + Elbow + } + + /// Determines which joint to set the position and rotation to. + public Joint joint; + + /// Determines what object to draw a line to (for debugging purposes). + public GameObject debugDrawTo; + + void Awake() { + lineRenderer = gameObject.GetComponent(); + } + + void Start() { + if (GvrArmModel.Instance != null) { + GvrArmModel.Instance.OnArmModelUpdate += OnArmModelUpdate; + } else { + Debug.LogError("Unable to find GvrArmModel."); + } + } + + void OnDestroy() { + if (GvrArmModel.Instance != null) { + GvrArmModel.Instance.OnArmModelUpdate -= OnArmModelUpdate; + } + } + + private void OnArmModelUpdate() { + Vector3 jointPosition; + Quaternion jointRotation; + + switch (joint) { + case Joint.Pointer: + jointPosition = GvrArmModel.Instance.pointerPosition; + jointRotation = GvrArmModel.Instance.pointerRotation; + break; + case Joint.Wrist: + jointPosition = GvrArmModel.Instance.wristPosition; + jointRotation = GvrArmModel.Instance.wristRotation; + break; + case Joint.Elbow: + jointPosition = GvrArmModel.Instance.elbowPosition; + jointRotation = GvrArmModel.Instance.elbowRotation; + break; + case Joint.Shoulder: + jointPosition = GvrArmModel.Instance.shoulderPosition; + jointRotation = GvrArmModel.Instance.shoulderRotation; + break; + default: + throw new System.Exception("Invalid FromJoint."); + } + + transform.localPosition = jointPosition; + transform.localRotation = jointRotation; + + DrawDebugLine(); + } + + private void DrawDebugLine() { + if (lineRenderer == null || debugDrawTo == null) { + return; + } + if (lineRenderer.useWorldSpace) { + lineRenderer.SetPosition(0, transform.position); + lineRenderer.SetPosition(1, debugDrawTo.transform.position); + } else { + lineRenderer.SetPosition(0, Vector3.zero); + lineRenderer.SetPosition(1, transform.InverseTransformPoint(debugDrawTo.transform.position)); + } + } + +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/Controller/GvrArmModelOffsets.cs.meta b/Assets/GoogleVR/Scripts/Controller/GvrArmModelOffsets.cs.meta new file mode 100644 index 0000000..60f61b6 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrArmModelOffsets.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c173f7c6a736fe469d4acc5b108d6d5 +timeCreated: 1471566115 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/GvrBatteryIndicator.cs b/Assets/GoogleVR/Scripts/Controller/GvrBatteryIndicator.cs new file mode 100644 index 0000000..227a38d --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrBatteryIndicator.cs @@ -0,0 +1,68 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This script is not available for versions of Unity without the +// GVR native integration. + +using UnityEngine; +using System.Collections; + +/// Manages the battery indicator visual on the controller. +[RequireComponent(typeof(Renderer))] +public class GvrBatteryIndicator : GvrBaseControllerVisual { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private Renderer indicatorRenderer; + + /// Materials to show for each battery level. + public Material matUnknown; + public Material matCharging; + public Material matFull; + public Material matAlmostFull; + public Material matMedium; + public Material matLow; + public Material matCriticalLow; + + void Awake() { + indicatorRenderer = GetComponent(); + } + + /// Change the material when the battery state changes. + public override void OnVisualUpdate() { + if (GvrController.IsCharging) { + indicatorRenderer.material = matCharging; + } else { + switch (GvrController.BatteryLevel) { + case GvrControllerBatteryLevel.Full: + indicatorRenderer.material = matFull; + break; + case GvrControllerBatteryLevel.AlmostFull: + indicatorRenderer.material = matAlmostFull; + break; + case GvrControllerBatteryLevel.Medium: + indicatorRenderer.material = matMedium; + break; + case GvrControllerBatteryLevel.Low: + indicatorRenderer.material = matLow; + break; + case GvrControllerBatteryLevel.CriticalLow: + indicatorRenderer.material = matCriticalLow; + break; + default: + indicatorRenderer.material = matUnknown; + break; + } + } + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/Controller/GvrBatteryIndicator.cs.meta b/Assets/GoogleVR/Scripts/Controller/GvrBatteryIndicator.cs.meta new file mode 100644 index 0000000..68768a4 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrBatteryIndicator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6214420881d1dd0428d32f7bdc5fde31 +timeCreated: 1489767868 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/GvrController.cs b/Assets/GoogleVR/Scripts/Controller/GvrController.cs new file mode 100644 index 0000000..cbe309a --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrController.cs @@ -0,0 +1,408 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// GVR native integration. + +using UnityEngine; + +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +using UnityEngine.VR; +using System; +using System.Collections; + +using Gvr.Internal; + +/// Represents the controller's current connection state. +/// All values and semantics below (except for Error) are +/// from gvr_types.h in the GVR C API. +public enum GvrConnectionState { + /// Indicates that an error has occurred. + Error = -1, + + /// Indicates that the controller is disconnected. + Disconnected = 0, + /// Indicates that the device is scanning for controllers. + Scanning = 1, + /// Indicates that the device is connecting to a controller. + Connecting = 2, + /// Indicates that the device is connected to a controller. + Connected = 3, +}; + +/// Represents the API status of the current controller state. +/// Values and semantics from gvr_types.h in the GVR C API. +public enum GvrControllerApiStatus { + /// A Unity-localized error occurred. + /// This is the only value that isn't in gvr_types.h. + Error = -1, + + /// API is happy and healthy. This doesn't mean the controller itself + /// is connected, it just means that the underlying service is working + /// properly. + Ok = 0, + + /// Any other status represents a permanent failure that requires + /// external action to fix: + + /// API failed because this device does not support controllers (API is too + /// low, or other required feature not present). + Unsupported = 1, + /// This app was not authorized to use the service (e.g., missing permissions, + /// the app is blacklisted by the underlying service, etc). + NotAuthorized = 2, + /// The underlying VR service is not present. + Unavailable = 3, + /// The underlying VR service is too old, needs upgrade. + ApiServiceObsolete = 4, + /// The underlying VR service is too new, is incompatible with current client. + ApiClientObsolete = 5, + /// The underlying VR service is malfunctioning. Try again later. + ApiMalfunction = 6, +}; + +/// Represents the controller's current battery level. +/// Values and semantics from gvr_types.h in the GVR C API. +public enum GvrControllerBatteryLevel { + /// A Unity-localized error occurred. + /// This is the only value that isn't in gvr_types.h. + Error = -1, + + /// The battery state is currently unreported + Unknown = 0, + + /// Equivalent to 1 out of 5 bars on the battery indicator + CriticalLow = 1, + + /// Equivalent to 2 out of 5 bars on the battery indicator + Low = 2, + + /// Equivalent to 3 out of 5 bars on the battery indicator + Medium = 3, + + /// Equivalent to 4 out of 5 bars on the battery indicator + AlmostFull = 4, + + /// Equivalent to 5 out of 5 bars on the battery indicator + Full = 5, +}; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + + +/// Main entry point for the Daydream controller API. +/// +/// To use this API, add this behavior to a GameObject in your scene, or use the +/// GvrControllerMain prefab. There can only be one object with this behavior on your scene. +/// +/// This is a singleton object. +/// +/// To access the controller state, simply read the static properties of this class. For example, +/// to know the controller's current orientation, use GvrController.Orientation. +public class GvrController : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private static GvrController instance; + private static IControllerProvider controllerProvider; + + private ControllerState controllerState = new ControllerState(); + private IEnumerator controllerUpdate; + private WaitForEndOfFrame waitForEndOfFrame = new WaitForEndOfFrame(); + + /// Event handler for receiving button, track pad, and IMU updates from the controller. + public delegate void OnControllerUpdateEvent(); + public event OnControllerUpdateEvent OnControllerUpdate; + + public enum EmulatorConnectionMode { + OFF, + USB, + WIFI, + } + /// Indicates how we connect to the controller emulator. + [Tooltip("How to connect to the emulator: USB cable (recommended) or WIFI.")] + public EmulatorConnectionMode emulatorConnectionMode = EmulatorConnectionMode.USB; + + /// Returns the arm model instance associated with the controller. + public static GvrArmModel ArmModel { + get { + return instance != null ? instance.GetComponent() : null; + } + } + + /// Returns the controller's current connection state. + public static GvrConnectionState State { + get { + return instance != null ? instance.controllerState.connectionState : GvrConnectionState.Error; + } + } + + /// Returns the API status of the current controller state. + public static GvrControllerApiStatus ApiStatus { + get { + return instance != null ? instance.controllerState.apiStatus : GvrControllerApiStatus.Error; + } + } + + /// Returns the controller's current orientation in space, as a quaternion. + /// The space in which the orientation is represented is the usual Unity space, with + /// X pointing to the right, Y pointing up and Z pointing forward. Therefore, to make an + /// object in your scene have the same orientation as the controller, simply assign this + /// quaternion to the GameObject's transform.rotation. + public static Quaternion Orientation { + get { + return instance != null ? instance.controllerState.orientation : Quaternion.identity; + } + } + + /// Returns the controller's gyroscope reading. The gyroscope indicates the angular + /// about each of its local axes. The controller's axes are: X points to the right, + /// Y points perpendicularly up from the controller's top surface and Z lies + /// along the controller's body, pointing towards the front. The angular speed is given + /// in radians per second, using the right-hand rule (positive means a right-hand rotation + /// about the given axis). + public static Vector3 Gyro { + get { + return instance != null ? instance.controllerState.gyro : Vector3.zero; + } + } + + /// Returns the controller's accelerometer reading. The accelerometer indicates the + /// effect of acceleration and gravity in the direction of each of the controller's local + /// axes. The controller's local axes are: X points to the right, Y points perpendicularly + /// up from the controller's top surface and Z lies along the controller's body, pointing + /// towards the front. The acceleration is measured in meters per second squared. Note that + /// gravity is combined with acceleration, so when the controller is resting on a table top, + /// it will measure an acceleration of 9.8 m/s^2 on the Y axis. The accelerometer reading + /// will be zero on all three axes only if the controller is in free fall, or if the user + /// is in a zero gravity environment like a space station. + public static Vector3 Accel { + get { + return instance != null ? instance.controllerState.accel : Vector3.zero; + } + } + + /// If true, the user is currently touching the controller's touchpad. + public static bool IsTouching { + get { + return instance != null ? instance.controllerState.isTouching : false; + } + } + + /// If true, the user just started touching the touchpad. This is an event flag (it is true + /// for only one frame after the event happens, then reverts to false). + public static bool TouchDown { + get { + return instance != null ? instance.controllerState.touchDown : false; + } + } + + /// If true, the user just stopped touching the touchpad. This is an event flag (it is true + /// for only one frame after the event happens, then reverts to false). + public static bool TouchUp { + get { + return instance != null ? instance.controllerState.touchUp : false; + } + } + + public static Vector2 TouchPos { + get { + return instance != null ? instance.controllerState.touchPos : Vector2.zero; + } + } + + /// If true, the user is currently performing the recentering gesture. Most apps will want + /// to pause the interaction while this remains true. + public static bool Recentering { + get { + return instance != null ? instance.controllerState.recentering : false; + } + } + + /// If true, the user just completed the recenter gesture. The controller's orientation is + /// now being reported in the new recentered coordinate system (the controller's orientation + /// when recentering was completed was remapped to mean "forward"). This is an event flag + /// (it is true for only one frame after the event happens, then reverts to false). + /// The headset is recentered together with the controller. + public static bool Recentered { + get { + return instance != null ? instance.controllerState.recentered : false; + } + } + + /// If true, the click button (touchpad button) is currently being pressed. This is not + /// an event: it represents the button's state (it remains true while the button is being + /// pressed). + public static bool ClickButton { + get { + return instance != null ? instance.controllerState.clickButtonState : false; + } + } + + /// If true, the click button (touchpad button) was just pressed. This is an event flag: + /// it will be true for only one frame after the event happens. + public static bool ClickButtonDown { + get { + return instance != null ? instance.controllerState.clickButtonDown : false; + } + } + + /// If true, the click button (touchpad button) was just released. This is an event flag: + /// it will be true for only one frame after the event happens. + public static bool ClickButtonUp { + get { + return instance != null ? instance.controllerState.clickButtonUp : false; + } + } + + /// If true, the app button (touchpad button) is currently being pressed. This is not + /// an event: it represents the button's state (it remains true while the button is being + /// pressed). + public static bool AppButton { + get { + return instance != null ? instance.controllerState.appButtonState : false; + } + } + + /// If true, the app button was just pressed. This is an event flag: it will be true for + /// only one frame after the event happens. + public static bool AppButtonDown { + get { + return instance != null ? instance.controllerState.appButtonDown : false; + } + } + + /// If true, the app button was just released. This is an event flag: it will be true for + /// only one frame after the event happens. + public static bool AppButtonUp { + get { + return instance != null ? instance.controllerState.appButtonUp : false; + } + } + + // Always false in the emulator. + public static bool HomeButtonDown { + get { + return instance != null ? instance.controllerState.homeButtonDown : false; + } + } + + // Always false in the emulator. + public static bool HomeButtonState { + get { + return instance != null ? instance.controllerState.homeButtonState : false; + } + } + + + /// If State == GvrConnectionState.Error, this contains details about the error. + public static string ErrorDetails { + get { + if (instance != null) { + return instance.controllerState.connectionState == GvrConnectionState.Error ? + instance.controllerState.errorDetails : ""; + } else { + return "GvrController instance not found in scene. It may be missing, or it might " + + "not have initialized yet."; + } + } + } + + // Returns the GVR C library controller state pointer (gvr_controller_state*). + public static IntPtr StatePtr { + get { + return instance != null? instance.controllerState.gvrPtr : IntPtr.Zero; + } + } + + /// If true, the user is currently touching the controller's touchpad. + public static bool IsCharging { + get { + return instance != null ? instance.controllerState.isCharging : false; + } + } + + /// If true, the user is currently touching the controller's touchpad. + public static GvrControllerBatteryLevel BatteryLevel { + get { + return instance != null ? instance.controllerState.batteryLevel : GvrControllerBatteryLevel.Error; + } + } + + void Awake() { + if (instance != null) { + Debug.LogError("More than one GvrController instance was found in your scene. " + + "Ensure that there is only one GvrController."); + this.enabled = false; + return; + } + instance = this; + if (controllerProvider == null) { + controllerProvider = ControllerProviderFactory.CreateControllerProvider(this); + } + + // Keep screen on here, since GvrController must be in any GVR scene in order to enable + // controller capabilities. + Screen.sleepTimeout = SleepTimeout.NeverSleep; + } + + void OnDestroy() { + instance = null; + } + + private void UpdateController() { + controllerProvider.ReadState(controllerState); + +#if UNITY_EDITOR + // If a headset recenter was requested, do it now. + if (controllerState.recentered) { + for (int i = 0; i < Camera.allCameras.Length; i++) { + Camera cam = Camera.allCameras[i]; + // Do not reset pitch, which is how it works on the device. + cam.transform.localRotation = Quaternion.Euler(cam.transform.localRotation.eulerAngles.x, 0, 0); + } + } +#endif // UNITY_EDITOR + } + + void OnApplicationPause(bool paused) { + if (null == controllerProvider) return; + if (paused) { + controllerProvider.OnPause(); + } else { + controllerProvider.OnResume(); + } + } + + void OnEnable() { + controllerUpdate = EndOfFrame(); + StartCoroutine(controllerUpdate); + } + + void OnDisable() { + StopCoroutine(controllerUpdate); + } + + IEnumerator EndOfFrame() { + while (true) { + // This must be done at the end of the frame to ensure that all GameObjects had a chance + // to read transient controller state (e.g. events, etc) for the current frame before + // it gets reset. + yield return waitForEndOfFrame; + UpdateController(); + if (OnControllerUpdate != null) { + OnControllerUpdate(); + } + } + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} + diff --git a/Assets/GoogleVR/Scripts/Controller/GvrController.cs.meta b/Assets/GoogleVR/Scripts/Controller/GvrController.cs.meta new file mode 100644 index 0000000..71b8671 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: adde9bdea083943199c7959004756e60 +timeCreated: 1462046540 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/GvrControllerVisual.cs b/Assets/GoogleVR/Scripts/Controller/GvrControllerVisual.cs new file mode 100644 index 0000000..50675e7 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrControllerVisual.cs @@ -0,0 +1,52 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// GVR native integration. + +using UnityEngine; +using System.Collections; + +/// Provides visual feedback for the daydream controller. +[RequireComponent(typeof(Renderer))] +public class GvrControllerVisual : GvrBaseControllerVisual { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private Renderer controllerRenderer; + + public Material material_idle; + public Material material_app; + public Material material_system; + public Material material_touchpad; + + void Awake() { + controllerRenderer = GetComponent(); + } + + public override void OnVisualUpdate() { + // Choose the appropriate material to render based on button states. + if (GvrController.ClickButton) { + controllerRenderer.material = material_touchpad; + } else { + // Change material to reflect button presses. + if (GvrController.AppButton) { + controllerRenderer.material = material_app; + } else if (GvrController.Recentering) { + controllerRenderer.material = material_system; + } else { + controllerRenderer.material = material_idle; + } + } + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/Controller/GvrControllerVisual.cs.meta b/Assets/GoogleVR/Scripts/Controller/GvrControllerVisual.cs.meta new file mode 100644 index 0000000..e4fcfa8 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrControllerVisual.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aa952cbcc0eb13d4ca558b6da550ff55 +timeCreated: 1472074640 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/GvrControllerVisualManager.cs b/Assets/GoogleVR/Scripts/Controller/GvrControllerVisualManager.cs new file mode 100644 index 0000000..b41ab1f --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrControllerVisualManager.cs @@ -0,0 +1,50 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// Manages when the visual elements of GvrControllerPointer should be active. +/// When the controller is disconnected, the visual elements will be turned off. +public class GvrControllerVisualManager : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private bool wasControllerConnected = false; + + void Start() { + wasControllerConnected = IsControllerConnected(); + SetChildrenActive(wasControllerConnected); + } + + void Update() { + bool isControllerConnected = IsControllerConnected(); + if (isControllerConnected != wasControllerConnected) { + SetChildrenActive(isControllerConnected); + } + wasControllerConnected = isControllerConnected; + } + + private bool IsControllerConnected() { + return GvrController.State == GvrConnectionState.Connected; + } + + /// Activate/Deactivate the children of the transform. + /// It is expected that the children will be the visual elements + /// of GvrControllerPointer (I.e. the Laser and the 3D Controller Model). + private void SetChildrenActive(bool active) { + for (int i = 0; i < transform.childCount; i++) { + transform.GetChild(i).gameObject.SetActive(active); + } + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/Controller/GvrControllerVisualManager.cs.meta b/Assets/GoogleVR/Scripts/Controller/GvrControllerVisualManager.cs.meta new file mode 100644 index 0000000..9dca7de --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrControllerVisualManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f3bf9c1bacbb04f72bb43e892c3a98a9 +timeCreated: 1481762795 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/GvrPointerManager.cs b/Assets/GoogleVR/Scripts/Controller/GvrPointerManager.cs new file mode 100644 index 0000000..588ede6 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrPointerManager.cs @@ -0,0 +1,73 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// GvrPointerManager is a standard interface for +/// controlling which GvrBasePointer is being used +/// for user input affordance. +/// +public class GvrPointerManager : MonoBehaviour { + private static GvrPointerManager instance; + + /// Change the GvrBasePointer that is currently being used. + public static GvrBasePointer Pointer + { + get { + return instance == null ? null : instance.pointer; + } + set { + if (instance == null || instance.pointer == value) { + return; + } + + instance.pointer = value; + } + } + + /// GvrBasePointer calls this when it is created. + /// If a pointer hasn't already been assigned, it + /// will assign the newly created one by default. + /// + /// This simplifies the common case of having only one + /// GvrBasePointer so is can be automatically hooked up + /// to the manager. If multiple GvrGazePointers are in + /// the scene, the app has to take responsibility for + /// setting which one is active. + public static void OnPointerCreated(GvrBasePointer createdPointer) { + if (instance != null && GvrPointerManager.Pointer == null) { + GvrPointerManager.Pointer = createdPointer; + } + } + + private GvrBasePointer pointer; + + void Awake() { + if (instance != null) { + Debug.LogError("More than one GvrPointerManager instance was found in your scene. " + + "Ensure that there is only one GvrPointerManager."); + this.enabled = false; + return; + } + + instance = this; + } + + void OnDestroy() { + if (instance == this) { + instance = null; + } + } +} diff --git a/Assets/GoogleVR/Scripts/Controller/GvrPointerManager.cs.meta b/Assets/GoogleVR/Scripts/Controller/GvrPointerManager.cs.meta new file mode 100644 index 0000000..64ab135 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrPointerManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 22a6dc478e59e4b35b25f9f26ddc4361 +timeCreated: 1472596899 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/GvrRecenterOnlyController.cs b/Assets/GoogleVR/Scripts/Controller/GvrRecenterOnlyController.cs new file mode 100644 index 0000000..d0be7a0 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrRecenterOnlyController.cs @@ -0,0 +1,73 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// GVR native integration. + +using UnityEngine; + +#if UNITY_HAS_GOOGLEVR +using UnityEngine.VR; +#endif // UNITY_HAS_GOOGLEVR + +// Recenter only the controller. +// Usage: Set GvrControllerPointer > Controller as the pointer field, and +// the camera to recenter (e.g. Main Camera). +public class GvrRecenterOnlyController : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private Quaternion recenteringOffset = Quaternion.identity; + + [Tooltip("The controller to recenter")] + public GameObject pointer; + + [Tooltip("The camera to recenter")] + public Camera cam; + + void Start() { + if (cam == null) { + cam = Camera.main; + } + } + + void Update() { + if (cam == null || pointer == null + || VRSettings.loadedDeviceName != "daydream" + || GvrController.State != GvrConnectionState.Connected) { + return; + } + + if (GvrController.Recentered) { + pointer.transform.rotation = recenteringOffset; + cam.transform.parent.rotation = recenteringOffset; + return; + } + +#if !UNITY_EDITOR + if (GvrController.HomeButtonDown || GvrController.HomeButtonState) { + return; + } +#endif // !UNITY_EDITOR + recenteringOffset = Quaternion.Euler(0, cam.transform.rotation.eulerAngles.y, 0); + } + + void OnDisable() { + recenteringOffset = Quaternion.identity; + if (cam != null && pointer != null) { + pointer.transform.rotation = recenteringOffset; + cam.transform.parent.rotation = recenteringOffset; + } + } + +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/Controller/GvrRecenterOnlyController.cs.meta b/Assets/GoogleVR/Scripts/Controller/GvrRecenterOnlyController.cs.meta new file mode 100644 index 0000000..e6abe2a --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrRecenterOnlyController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a5d8d09b9e5d2437aa022780a2ce8c83 +timeCreated: 1487015053 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/GvrTooltip.cs b/Assets/GoogleVR/Scripts/Controller/GvrTooltip.cs new file mode 100644 index 0000000..fca2c3b --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrTooltip.cs @@ -0,0 +1,213 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using System.Collections; + +/// A tooltip for displaying control schemes overlaying the controller visual using a Unity Canvas. +/// Automatically changes what side of the controller the tooltip is shown on depending +/// on the handedness setting for the player. +/// Automatically fades out when the controller visual is too close or too far +/// away from the player's head. +/// Look at the prefab GvrControllerPointer to see an example of how to use this script. +[RequireComponent(typeof(CanvasGroup))] +[RequireComponent(typeof(RectTransform))] +[ExecuteInEditMode] +public class GvrTooltip : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + /// Rotation for a tooltip when it is displayed on the right side of the controller visual. + protected static readonly Quaternion RIGHT_SIDE_ROTATION = Quaternion.Euler(0.0f, 0.0f, 0.0f); + + /// Rotation for a tooltip when it is displayed on the left side of the controller visual. + protected static readonly Quaternion LEFT_SIDE_ROTATION = Quaternion.Euler(0.0f, 0.0f, 180.0f); + + /// Anchor point for a tooltip, used for controlling what side the tooltip is on. + protected static readonly Vector2 SQUARE_CENTER = new Vector2(0.5f, 0.5f); + + /// Pivot point for a tooltip, used for controlling what side the tooltip is on. + protected static readonly Vector2 PIVOT = new Vector2(-0.5f, 0.5f); + + /// Y Position for touch pad tooltips based on the standard controller visual. + protected const float TOUCH_PAD_Y_POSITION_METERS = 0.0385f; + + /// Y position for app button tooltips based on the standard controller visual. + protected const float APP_BUTTON_Y_POSITION_METERS = 0.0105f; + + /// Z position for all tooltips based on the standard controller visual. + protected const float TOOLTIP_Z_POSITION_METERS = 0.0098f; + + /// Options for where the controller should be displayed. + /// If set to custom, then the manually set localPosition of the tooltip is used. + /// This is useful when displaying a tooltip for a non-standard controller visual. + enum Location { + TouchPadOutside, + TouchPadInside, + AppButtonOutside, + AppButtonInside, + Custom + }; + + [Tooltip("The location to display the tooltip at relative to the controller visual.")] + [SerializeField] + private Location location; + + [Tooltip("The text field for this tooltip.")] + [SerializeField] + private Text text; + + [Tooltip("Determines if the tooltip is always visible regardless of the controller's location.")] + [SerializeField] + private bool alwaysVisible; + + private bool isOnLeft = false; + private RectTransform rectTransform; + private CanvasGroup canvasGroup; + + /// The text field for this tooltip. + public Text TooltipText { + get { + return text; + } + } + + void Awake() { + rectTransform = GetComponent(); + canvasGroup = GetComponent(); + isOnLeft = IsTooltipOnLeft(); + RefreshTooltip(); + } + + void Start() { + if (Application.isPlaying) { + if (GvrArmModel.Instance != null) { + GvrArmModel.Instance.OnArmModelUpdate += OnArmModelUpdate; + } else { + Debug.LogError("Unable to find GvrArmModel."); + } + } + } + + void OnDestroy() { + if (GvrArmModel.Instance != null) { + GvrArmModel.Instance.OnArmModelUpdate -= OnArmModelUpdate; + } + } + + private void OnArmModelUpdate() { + CheckTooltipSide(); + + if (canvasGroup != null && GvrArmModel.Instance != null) { + canvasGroup.alpha = alwaysVisible ? 1.0f : GvrArmModel.Instance.tooltipAlphaValue; + } + } + + void OnValidate() { + rectTransform = GetComponent(); + RefreshTooltip(); + } + +#if UNITY_EDITOR + void OnRenderObject() { + if (!Application.isPlaying) { + CheckTooltipSide(); + } + } +#endif // UNITY_EDITOR + + /// Returns true if this tooltip is set to display on the inside of the controller. + public bool IsTooltipInside() { + switch (location) { + case Location.TouchPadInside: + case Location.AppButtonInside: + case Location.Custom: + return true; + case Location.TouchPadOutside: + case Location.AppButtonOutside: + default: + return false; + } + } + + /// Returns true if the tooltip should display on the left side of the controller. + /// This will change based on the handedness of the controller, as well as if the + /// tooltip is set to display inside or outside. + public bool IsTooltipOnLeft() { + bool isInside = IsTooltipInside(); + GvrSettings.UserPrefsHandedness handedness = GvrSettings.Handedness; + + if (handedness == GvrSettings.UserPrefsHandedness.Left) { + return !isInside; + } else { + return isInside; + } + } + + /// Refreshes how the tooltip is being displayed based on what side it is being shown on. + /// Override to add custom display functionality. + protected virtual void OnSideChanged(bool IsLocationOnLeft) { + transform.localRotation = (isOnLeft ? LEFT_SIDE_ROTATION : RIGHT_SIDE_ROTATION); + + if (text != null) { + text.transform.localRotation = (IsLocationOnLeft ? LEFT_SIDE_ROTATION : RIGHT_SIDE_ROTATION); + text.alignment = (IsLocationOnLeft ? TextAnchor.MiddleRight : TextAnchor.MiddleLeft); + } + } + + protected float GetMetersToCanvasScale() { + return GvrUIHelpers.GetMetersToCanvasScale(transform); + } + + private Vector3 GetLocalPosition() { + float metersToCanvasScale = GetMetersToCanvasScale(); + + // Return early if we didn't find a valid metersToCanvasScale. + if (metersToCanvasScale == 0.0f) { + return rectTransform.anchoredPosition3D; + } + + float tooltipZPosition = TOOLTIP_Z_POSITION_METERS / metersToCanvasScale; + switch (location) { + case Location.TouchPadOutside: + case Location.TouchPadInside: + float touchPadYPosition = TOUCH_PAD_Y_POSITION_METERS / metersToCanvasScale; + return new Vector3(0.0f, touchPadYPosition, tooltipZPosition); + case Location.AppButtonOutside: + case Location.AppButtonInside: + float appButtonYPosition = APP_BUTTON_Y_POSITION_METERS / metersToCanvasScale; + return new Vector3(0.0f, appButtonYPosition, tooltipZPosition); + case Location.Custom: + default: + return rectTransform.anchoredPosition3D; + } + } + + private void CheckTooltipSide() { + // If handedness changes, the tooltip will switch sides. + bool newIsOnLeft = IsTooltipOnLeft(); + if (newIsOnLeft != isOnLeft) { + isOnLeft = newIsOnLeft; + RefreshTooltip(); + } + } + + private void RefreshTooltip() { + rectTransform.anchorMax = SQUARE_CENTER; + rectTransform.anchorMax = SQUARE_CENTER; + rectTransform.pivot = PIVOT; + rectTransform.anchoredPosition3D = GetLocalPosition(); + OnSideChanged(isOnLeft); + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/Controller/GvrTooltip.cs.meta b/Assets/GoogleVR/Scripts/Controller/GvrTooltip.cs.meta new file mode 100644 index 0000000..ff26dda --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/GvrTooltip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7c52851ea0de74a228fa29a84de008ba +timeCreated: 1481935272 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal.meta b/Assets/GoogleVR/Scripts/Controller/Internal.meta new file mode 100644 index 0000000..6aaa957 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3bee8a214bb054df5965a78f7323ab8a +folderAsset: yes +timeCreated: 1462043669 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviderFactory.cs b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviderFactory.cs new file mode 100644 index 0000000..49eaa0a --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviderFactory.cs @@ -0,0 +1,46 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// // GVR native integration. +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + +using UnityEngine; + +/// @cond +namespace Gvr.Internal { + /// Factory that provides a concrete implementation of IControllerProvider for the + /// current platform. + static class ControllerProviderFactory { + /// Provides a concrete implementation of IControllerProvider appropriate for the current + /// platform. This method never returns null. In the worst case, it might return a dummy + /// provider if the platform is not supported. + static internal IControllerProvider CreateControllerProvider(GvrController owner) { +#if UNITY_EDITOR || UNITY_STANDALONE + // Use the Controller Emulator. + return new EmulatorControllerProvider(owner.emulatorConnectionMode); +#elif UNITY_ANDROID + // Use the GVR C API. + return new AndroidNativeControllerProvider(); +#else + // Platform not supported. + Debug.LogWarning("No controller support on this platform."); + return new DummyControllerProvider(); +#endif // UNITY_EDITOR || UNITY_STANDALONE + } + } +} +/// @endcond + +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviderFactory.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviderFactory.cs.meta new file mode 100644 index 0000000..dca5048 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviderFactory.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9f9210011b71142d5966eec2db6cc696 +timeCreated: 1462043669 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders.meta b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders.meta new file mode 100644 index 0000000..fdeacb8 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6ae60fb379a944fc3a8be4ccdfbc0139 +folderAsset: yes +timeCreated: 1462043669 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/AndroidNativeControllerProvider.cs b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/AndroidNativeControllerProvider.cs new file mode 100644 index 0000000..e9fd49e --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/AndroidNativeControllerProvider.cs @@ -0,0 +1,396 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +using System; +using System.Runtime.InteropServices; + +/// @cond +namespace Gvr.Internal { + /// Controller Provider that uses the native GVR C API to communicate with controllers + /// via Google VR Services on Android. + class AndroidNativeControllerProvider : IControllerProvider { +#if !UNITY_HAS_GOOGLEVR || (!UNITY_ANDROID && !UNITY_EDITOR) + public void Dispose() { } +#else + // Note: keep structs and function signatures in sync with the C header file (gvr_controller.h). + // GVR controller option flags. + private const int GVR_CONTROLLER_ENABLE_ORIENTATION = 1 << 0; + private const int GVR_CONTROLLER_ENABLE_TOUCH = 1 << 1; + private const int GVR_CONTROLLER_ENABLE_GYRO = 1 << 2; + private const int GVR_CONTROLLER_ENABLE_ACCEL = 1 << 3; + private const int GVR_CONTROLLER_ENABLE_GESTURES = 1 << 4; + private const int GVR_CONTROLLER_ENABLE_POSE_PREDICTION = 1 << 5; + + // enum gvr_controller_button: + private const int GVR_CONTROLLER_BUTTON_NONE = 0; + private const int GVR_CONTROLLER_BUTTON_CLICK = 1; + private const int GVR_CONTROLLER_BUTTON_HOME = 2; + private const int GVR_CONTROLLER_BUTTON_APP = 3; + private const int GVR_CONTROLLER_BUTTON_VOLUME_UP = 4; + private const int GVR_CONTROLLER_BUTTON_VOLUME_DOWN = 5; + private const int GVR_CONTROLLER_BUTTON_COUNT = 6; + + // enum gvr_controller_connection_state: + private const int GVR_CONTROLLER_DISCONNECTED = 0; + private const int GVR_CONTROLLER_SCANNING = 1; + private const int GVR_CONTROLLER_CONNECTING = 2; + private const int GVR_CONTROLLER_CONNECTED = 3; + + // enum gvr_controller_api_status + private const int GVR_CONTROLLER_API_OK = 0; + private const int GVR_CONTROLLER_API_UNSUPPORTED = 1; + private const int GVR_CONTROLLER_API_NOT_AUTHORIZED = 2; + private const int GVR_CONTROLLER_API_UNAVAILABLE = 3; + private const int GVR_CONTROLLER_API_SERVICE_OBSOLETE = 4; + private const int GVR_CONTROLLER_API_CLIENT_OBSOLETE = 5; + private const int GVR_CONTROLLER_API_MALFUNCTION = 6; + + [StructLayout(LayoutKind.Sequential)] + private struct gvr_quat { + internal float x; + internal float y; + internal float z; + internal float w; + } + + [StructLayout(LayoutKind.Sequential)] + private struct gvr_vec3 { + internal float x; + internal float y; + internal float z; + } + + [StructLayout(LayoutKind.Sequential)] + private struct gvr_vec2 { + internal float x; + internal float y; + } + + private const string dllName = GvrActivityHelper.GVR_DLL_NAME; + + [DllImport(dllName)] + private static extern int gvr_controller_get_default_options(); + + [DllImport(dllName)] + private static extern IntPtr gvr_controller_create_and_init_android( + IntPtr jniEnv, IntPtr androidContext, IntPtr classLoader, + int options, IntPtr context); + + [DllImport(dllName)] + private static extern void gvr_controller_destroy(ref IntPtr api); + + [DllImport(dllName)] + private static extern void gvr_controller_pause(IntPtr api); + + [DllImport(dllName)] + private static extern void gvr_controller_resume(IntPtr api); + + [DllImport(dllName)] + private static extern IntPtr gvr_controller_state_create(); + + [DllImport(dllName)] + private static extern void gvr_controller_state_destroy(ref IntPtr state); + + [DllImport(dllName)] + private static extern void gvr_controller_state_update(IntPtr api, int flags, IntPtr out_state); + + [DllImport(dllName)] + private static extern int gvr_controller_state_get_api_status(IntPtr state); + + [DllImport(dllName)] + private static extern int gvr_controller_state_get_connection_state(IntPtr state); + + [DllImport(dllName)] + private static extern gvr_quat gvr_controller_state_get_orientation(IntPtr state); + + [DllImport(dllName)] + private static extern gvr_vec3 gvr_controller_state_get_gyro(IntPtr state); + + [DllImport(dllName)] + private static extern gvr_vec3 gvr_controller_state_get_accel(IntPtr state); + + [DllImport(dllName)] + private static extern byte gvr_controller_state_is_touching(IntPtr state); + + [DllImport(dllName)] + private static extern gvr_vec2 gvr_controller_state_get_touch_pos(IntPtr state); + + [DllImport(dllName)] + private static extern byte gvr_controller_state_get_touch_down(IntPtr state); + + [DllImport(dllName)] + private static extern byte gvr_controller_state_get_touch_up(IntPtr state); + + [DllImport(dllName)] + private static extern byte gvr_controller_state_get_recentered(IntPtr state); + + [DllImport(dllName)] + private static extern byte gvr_controller_state_get_recentering(IntPtr state); + + [DllImport(dllName)] + private static extern byte gvr_controller_state_get_button_state(IntPtr state, int button); + + [DllImport(dllName)] + private static extern byte gvr_controller_state_get_button_down(IntPtr state, int button); + + [DllImport(dllName)] + private static extern byte gvr_controller_state_get_button_up(IntPtr state, int button); + + [DllImport(dllName)] + private static extern long gvr_controller_state_get_last_orientation_timestamp(IntPtr state); + + [DllImport(dllName)] + private static extern long gvr_controller_state_get_last_gyro_timestamp(IntPtr state); + + [DllImport(dllName)] + private static extern long gvr_controller_state_get_last_accel_timestamp(IntPtr state); + + [DllImport(dllName)] + private static extern long gvr_controller_state_get_last_touch_timestamp(IntPtr state); + + [DllImport(dllName)] + private static extern long gvr_controller_state_get_last_button_timestamp(IntPtr state); + + [DllImport(dllName)] + private static extern byte gvr_controller_state_get_battery_charging(IntPtr state); + + [DllImport(dllName)] + private static extern int gvr_controller_state_get_battery_level(IntPtr state); + + [DllImport(dllName)] + private static extern long gvr_controller_state_get_last_battery_timestamp(IntPtr state); + + private const string VRCORE_UTILS_CLASS = "com.google.vr.vrcore.base.api.VrCoreUtils"; + + private IntPtr api; + + private AndroidJavaObject androidContext; + private AndroidJavaObject classLoader; + + private bool error = false; + private string errorDetails = string.Empty; + + private IntPtr statePtr; + + private MutablePose3D pose3d = new MutablePose3D(); + + internal AndroidNativeControllerProvider() { +#if !UNITY_EDITOR + Debug.Log("Initializing Daydream controller API."); + + int options = gvr_controller_get_default_options(); + options |= GVR_CONTROLLER_ENABLE_ACCEL; + options |= GVR_CONTROLLER_ENABLE_GYRO; + + statePtr = gvr_controller_state_create(); + // Get a hold of the activity, context and class loader. + AndroidJavaObject activity = GvrActivityHelper.GetActivity(); + if (activity == null) { + error = true; + errorDetails = "Failed to get Activity from Unity Player."; + return; + } + androidContext = GvrActivityHelper.GetApplicationContext(activity); + if (androidContext == null) { + error = true; + errorDetails = "Failed to get Android application context from Activity."; + return; + } + classLoader = GetClassLoaderFromActivity(activity); + if (classLoader == null) { + error = true; + errorDetails = "Failed to get class loader from Activity."; + return; + } + + // Use IntPtr instead of GetRawObject() so that Unity can shut down gracefully on + // Application.Quit(). Note that GetRawObject() is not pinned by the receiver so it's not + // cleaned up appropriately on shutdown, which is a known bug in Unity. + IntPtr androidContextPtr = AndroidJNI.NewLocalRef(androidContext.GetRawObject()); + IntPtr classLoaderPtr = AndroidJNI.NewLocalRef(classLoader.GetRawObject()); + Debug.Log ("Creating and initializing GVR API controller object."); + api = gvr_controller_create_and_init_android (IntPtr.Zero, androidContextPtr, classLoaderPtr, + options, IntPtr.Zero); + AndroidJNI.DeleteLocalRef(androidContextPtr); + AndroidJNI.DeleteLocalRef(classLoaderPtr); + if (IntPtr.Zero == api) { + Debug.LogError("Error creating/initializing Daydream controller API."); + error = true; + errorDetails = "Failed to initialize Daydream controller API."; + return; + } + + Debug.Log("GVR API successfully initialized. Now resuming it."); + gvr_controller_resume(api); + Debug.Log("GVR API resumed."); +#endif + } + + ~AndroidNativeControllerProvider() { + Debug.Log("Destroying GVR API structures."); + gvr_controller_state_destroy(ref statePtr); + gvr_controller_destroy(ref api); + Debug.Log("AndroidNativeControllerProvider destroyed."); + } + + public void ReadState(ControllerState outState) { + if (error) { + outState.connectionState = GvrConnectionState.Error; + outState.apiStatus = GvrControllerApiStatus.Error; + outState.errorDetails = errorDetails; + return; + } + gvr_controller_state_update(api, 0, statePtr); + + outState.connectionState = ConvertConnectionState( + gvr_controller_state_get_connection_state(statePtr)); + outState.apiStatus = ConvertControllerApiStatus( + gvr_controller_state_get_api_status(statePtr)); + + gvr_quat rawOri = gvr_controller_state_get_orientation(statePtr); + gvr_vec3 rawAccel = gvr_controller_state_get_accel(statePtr); + gvr_vec3 rawGyro = gvr_controller_state_get_gyro(statePtr); + + // Convert GVR API orientation (right-handed) into Unity axis system (left-handed). + pose3d.Set(Vector3.zero, new Quaternion(rawOri.x, rawOri.y, rawOri.z, rawOri.w)); + pose3d.SetRightHanded(pose3d.Matrix); + outState.orientation = pose3d.Orientation; + + // For accelerometer, we have to flip Z because the GVR API has Z pointing backwards + // and Unity has Z pointing forward. + outState.accel = new Vector3(rawAccel.x, rawAccel.y, -rawAccel.z); + + // Gyro in GVR represents a right-handed angular velocity about each axis (positive means + // clockwise when sighting along axis). Since Unity uses a left-handed system, we flip the + // signs to adjust the sign of the rotational velocity (so that positive means + // counter-clockwise). In addition, since in Unity the Z axis points forward while GVR + // has Z pointing backwards, we flip the Z axis sign again. So the result is that + // we should use -X, -Y, +Z: + outState.gyro = new Vector3(-rawGyro.x, -rawGyro.y, rawGyro.z); + + outState.isTouching = 0 != gvr_controller_state_is_touching(statePtr); + + gvr_vec2 touchPos = gvr_controller_state_get_touch_pos(statePtr); + outState.touchPos = new Vector2(touchPos.x, touchPos.y); + + outState.touchDown = 0 != gvr_controller_state_get_touch_down(statePtr); + outState.touchUp = 0 != gvr_controller_state_get_touch_up(statePtr); + + outState.appButtonDown = + 0 != gvr_controller_state_get_button_down(statePtr, GVR_CONTROLLER_BUTTON_APP); + outState.appButtonState = + 0 != gvr_controller_state_get_button_state(statePtr, GVR_CONTROLLER_BUTTON_APP); + outState.appButtonUp = + 0 != gvr_controller_state_get_button_up(statePtr, GVR_CONTROLLER_BUTTON_APP); + + outState.homeButtonDown = + 0 != gvr_controller_state_get_button_down(statePtr, GVR_CONTROLLER_BUTTON_HOME); + outState.homeButtonState = + 0 != gvr_controller_state_get_button_state(statePtr, GVR_CONTROLLER_BUTTON_HOME); + + outState.clickButtonDown = + 0 != gvr_controller_state_get_button_down(statePtr, GVR_CONTROLLER_BUTTON_CLICK); + outState.clickButtonState = + 0 != gvr_controller_state_get_button_state(statePtr, GVR_CONTROLLER_BUTTON_CLICK); + outState.clickButtonUp = + 0 != gvr_controller_state_get_button_up(statePtr, GVR_CONTROLLER_BUTTON_CLICK); + + outState.recentering = 0 != gvr_controller_state_get_recentering(statePtr); + outState.recentered = 0 != gvr_controller_state_get_recentered(statePtr); + outState.gvrPtr = statePtr; + + // Update battery information. + try { + outState.isCharging = 0 != gvr_controller_state_get_battery_charging(statePtr); + outState.batteryLevel = (GvrControllerBatteryLevel)gvr_controller_state_get_battery_level(statePtr); + } catch (EntryPointNotFoundException) { + // Older VrCore version. Does not support battery indicator. + } + } + + public void OnPause() { + if (IntPtr.Zero != api) { + gvr_controller_pause(api); + } + } + + public void OnResume() { + if (IntPtr.Zero != api) { + gvr_controller_resume(api); + } + } + + private GvrConnectionState ConvertConnectionState(int connectionState) { + switch (connectionState) { + case GVR_CONTROLLER_CONNECTED: + return GvrConnectionState.Connected; + case GVR_CONTROLLER_CONNECTING: + return GvrConnectionState.Connecting; + case GVR_CONTROLLER_SCANNING: + return GvrConnectionState.Scanning; + default: + return GvrConnectionState.Disconnected; + } + } + + private GvrControllerApiStatus ConvertControllerApiStatus(int gvrControllerApiStatus) { + switch (gvrControllerApiStatus) { + case GVR_CONTROLLER_API_OK: + return GvrControllerApiStatus.Ok; + case GVR_CONTROLLER_API_UNSUPPORTED: + return GvrControllerApiStatus.Unsupported; + case GVR_CONTROLLER_API_NOT_AUTHORIZED: + return GvrControllerApiStatus.NotAuthorized; + case GVR_CONTROLLER_API_SERVICE_OBSOLETE: + return GvrControllerApiStatus.ApiServiceObsolete; + case GVR_CONTROLLER_API_CLIENT_OBSOLETE: + return GvrControllerApiStatus.ApiClientObsolete; + case GVR_CONTROLLER_API_MALFUNCTION: + return GvrControllerApiStatus.ApiMalfunction; + case GVR_CONTROLLER_API_UNAVAILABLE: + default: // Fall through. + return GvrControllerApiStatus.Unavailable; + } + } + + private static AndroidJavaObject GetClassLoaderFromActivity(AndroidJavaObject activity) { + AndroidJavaObject result = activity.Call("getClassLoader"); + if (result == null) { + Debug.LogErrorFormat("Failed to get class loader from Activity."); + return null; + } + return result; + } + + private static int GetVrCoreClientApiVersion(AndroidJavaObject activity) { + try { + AndroidJavaClass utilsClass = new AndroidJavaClass(VRCORE_UTILS_CLASS); + int apiVersion = utilsClass.CallStatic("getVrCoreClientApiVersion", activity); + Debug.LogFormat("VrCore client API version: " + apiVersion); + return apiVersion; + } catch (Exception exc) { + // Even though a catch-all block is normally frowned upon, in this case we really + // need it because this method has to be robust to unpredictable circumstances: + // VrCore might not exist in the device, the Java layer might be broken, etc, etc. + // None of those should abort the app. + Debug.LogError("Error obtaining VrCore client API version: " + exc); + return 0; + } + } +#endif // !UNITY_HAS_GOOGLEVR || (!UNITY_ANDROID && !UNITY_EDITOR) + } +} +/// @endcond diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/AndroidNativeControllerProvider.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/AndroidNativeControllerProvider.cs.meta new file mode 100644 index 0000000..b54b41c --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/AndroidNativeControllerProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3fda152dc25154b4a9cccb75fd77f018 +timeCreated: 1462060442 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/DummyControllerProvider.cs b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/DummyControllerProvider.cs new file mode 100644 index 0000000..6a7f7b9 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/DummyControllerProvider.cs @@ -0,0 +1,37 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// // GVR native integration. +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + +using Gvr; + +/// @cond +namespace Gvr.Internal { + /// Dummy controller provider. + /// Used in platforms that do not support controllers. + class DummyControllerProvider : IControllerProvider { + private ControllerState dummyState = new ControllerState(); + internal DummyControllerProvider() {} + public void ReadState(ControllerState outState) { + outState.CopyFrom(dummyState); + } + public void OnPause() {} + public void OnResume() {} + } +} +/// @endcond + +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/DummyControllerProvider.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/DummyControllerProvider.cs.meta new file mode 100644 index 0000000..aae426f --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/DummyControllerProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0f791be37caef48c79f72011276ab16a +timeCreated: 1462043669 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/EmulatorControllerProvider.cs b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/EmulatorControllerProvider.cs new file mode 100644 index 0000000..0b2c55c --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/EmulatorControllerProvider.cs @@ -0,0 +1,176 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// // GVR native integration. +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + +using UnityEngine; + +/// @cond +namespace Gvr.Internal { + /// Controller provider that connects to the controller emulator to obtain controller events. + class EmulatorControllerProvider : IControllerProvider { + private ControllerState state = new ControllerState(); + + /// Yaw correction due to recentering. + private Quaternion yawCorrection = Quaternion.identity; + + /// True if we performed the initial recenter. + private bool initialRecenterDone = false; + + /// The last (uncorrected) orientation received from the emulator. + private Quaternion lastRawOrientation = Quaternion.identity; + + /// Creates a new EmulatorControllerProvider with the specified settings. + internal EmulatorControllerProvider(GvrController.EmulatorConnectionMode connectionMode) { + if (connectionMode == GvrController.EmulatorConnectionMode.USB) { + EmulatorConfig.Instance.PHONE_EVENT_MODE = EmulatorConfig.Mode.USB; + } else if (connectionMode == GvrController.EmulatorConnectionMode.WIFI) { + EmulatorConfig.Instance.PHONE_EVENT_MODE = EmulatorConfig.Mode.WIFI; + } else { + EmulatorConfig.Instance.PHONE_EVENT_MODE = EmulatorConfig.Mode.OFF; + } + + EmulatorManager.Instance.touchEventListeners += HandleTouchEvent; + EmulatorManager.Instance.orientationEventListeners += HandleOrientationEvent; + EmulatorManager.Instance.buttonEventListeners += HandleButtonEvent; + EmulatorManager.Instance.gyroEventListeners += HandleGyroEvent; + EmulatorManager.Instance.accelEventListeners += HandleAccelEvent; + } + + public void ReadState(ControllerState outState) { + lock (state) { + state.connectionState = EmulatorManager.Instance.Connected ? GvrConnectionState.Connected : + GvrConnectionState.Connecting; + state.apiStatus = EmulatorManager.Instance.Connected ? GvrControllerApiStatus.Ok : + GvrControllerApiStatus.Unavailable; + + // During emulation, just assume the controller is fully charged + state.isCharging = false; + state.batteryLevel = GvrControllerBatteryLevel.Full; + + outState.CopyFrom(state); + } + state.ClearTransientState(); + } + + public void OnPause() {} + public void OnResume() {} + + private void HandleTouchEvent(EmulatorTouchEvent touchEvent) { + if (touchEvent.pointers.Count < 1) return; + EmulatorTouchEvent.Pointer pointer = touchEvent.pointers[0]; + + lock (state) { + state.touchPos = new Vector2(pointer.normalizedX, pointer.normalizedY); + switch (touchEvent.getActionMasked()) { + case EmulatorTouchEvent.Action.kActionDown: + state.touchDown = true; + state.isTouching = true; + break; + case EmulatorTouchEvent.Action.kActionMove: + state.isTouching = true; + break; + case EmulatorTouchEvent.Action.kActionUp: + state.isTouching = false; + state.touchUp = true; + break; + } + } + } + + private void HandleOrientationEvent(EmulatorOrientationEvent orientationEvent) { + lastRawOrientation = ConvertEmulatorQuaternion(orientationEvent.orientation); + if (!initialRecenterDone) { + Recenter(); + initialRecenterDone = true; + } + lock (state) { + state.orientation = yawCorrection * lastRawOrientation; + } + } + + private void HandleButtonEvent(EmulatorButtonEvent buttonEvent) { + if (buttonEvent.code == EmulatorButtonEvent.ButtonCode.kHome) { + if (buttonEvent.down) { + lock (state) { + // Started the recentering gesture. + state.recentering = true; + } + } else { + // Finished the recentering gesture. Recenter controller. + Recenter(); + } + return; + } + + if (buttonEvent.code != EmulatorButtonEvent.ButtonCode.kApp && + buttonEvent.code != EmulatorButtonEvent.ButtonCode.kClick) return; + + lock (state) { + if (buttonEvent.code == EmulatorButtonEvent.ButtonCode.kApp) { + state.appButtonState = buttonEvent.down; + state.appButtonDown = buttonEvent.down; + state.appButtonUp = !buttonEvent.down; + } else { + state.clickButtonState = buttonEvent.down; + state.clickButtonDown = buttonEvent.down; + state.clickButtonUp = !buttonEvent.down; + } + } + } + + private void HandleGyroEvent(EmulatorGyroEvent gyroEvent) { + lock (state) { + state.gyro = ConvertEmulatorGyro(gyroEvent.value); + } + } + + private void HandleAccelEvent(EmulatorAccelEvent accelEvent) { + lock (state) { + state.accel = ConvertEmulatorAccel(accelEvent.value); + } + } + + private static Quaternion ConvertEmulatorQuaternion(Quaternion emulatorQuat) { + // Convert from the emulator's coordinate space to Unity's standard coordinate space. + return new Quaternion(emulatorQuat.x, -emulatorQuat.z, emulatorQuat.y, emulatorQuat.w); + } + + private static Vector3 ConvertEmulatorGyro(Vector3 emulatorGyro) { + // Convert from the emulator's coordinate space to Unity's standard coordinate space. + return new Vector3(-emulatorGyro.x, -emulatorGyro.z, -emulatorGyro.y); + } + + private static Vector3 ConvertEmulatorAccel(Vector3 emulatorAccel) { + // Convert from the emulator's coordinate space to Unity's standard coordinate space. + return new Vector3(emulatorAccel.x, emulatorAccel.z, emulatorAccel.y); + } + + private void Recenter() { + lock (state) { + // We want the current orientation to be "forward" so, we set the yaw correction + // to undo the current rotation's yaw. + yawCorrection = Quaternion.AngleAxis(-lastRawOrientation.eulerAngles.y, Vector3.up); + state.orientation = Quaternion.identity; + state.recentering = false; + state.recentered = true; + } + } + } +} +/// @endcond + +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/EmulatorControllerProvider.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/EmulatorControllerProvider.cs.meta new file mode 100644 index 0000000..b27dd4b --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerProviders/EmulatorControllerProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0ca644865f5f4479fb50471605078cf0 +timeCreated: 1462051657 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerState.cs b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerState.cs new file mode 100644 index 0000000..6b20983 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerState.cs @@ -0,0 +1,105 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// // GVR native integration. +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + +using UnityEngine; +using System; + +using Gvr; + +/// @cond +namespace Gvr.Internal { + /// Internal representation of the controller's current state. + /// This representation is used by controller providers to represent the controller's state. + /// + /// The fields in this class have identical meanings to their correspondents in the GVR C API, + /// so they are not redundantly documented here. + class ControllerState { + internal GvrConnectionState connectionState = GvrConnectionState.Disconnected; + internal GvrControllerApiStatus apiStatus = GvrControllerApiStatus.Unavailable; + internal Quaternion orientation = Quaternion.identity; + internal Vector3 gyro = Vector3.zero; + internal Vector3 accel = Vector3.zero; + internal bool isTouching = false; + internal Vector2 touchPos = Vector2.zero; + internal bool touchDown = false; + internal bool touchUp = false; + internal bool recentering = false; + internal bool recentered = false; + + internal bool clickButtonState = false; + internal bool clickButtonDown = false; + internal bool clickButtonUp = false; + + internal bool appButtonState = false; + internal bool appButtonDown = false; + internal bool appButtonUp = false; + + // Always false for the emulator. + internal bool homeButtonDown = false; + internal bool homeButtonState = false; + + internal string errorDetails = ""; + internal IntPtr gvrPtr = IntPtr.Zero; + + internal bool isCharging = false; + internal GvrControllerBatteryLevel batteryLevel = GvrControllerBatteryLevel.Unknown; + + public void CopyFrom(ControllerState other) { + connectionState = other.connectionState; + apiStatus = other.apiStatus; + orientation = other.orientation; + gyro = other.gyro; + accel = other.accel; + isTouching = other.isTouching; + touchPos = other.touchPos; + touchDown = other.touchDown; + touchUp = other.touchUp; + recentering = other.recentering; + recentered = other.recentered; + clickButtonState = other.clickButtonState; + clickButtonDown = other.clickButtonDown; + clickButtonUp = other.clickButtonUp; + appButtonState = other.appButtonState; + appButtonDown = other.appButtonDown; + appButtonUp = other.appButtonUp; + homeButtonDown = other.homeButtonDown; + homeButtonState = other.homeButtonState; + errorDetails = other.errorDetails; + gvrPtr = other.gvrPtr; + isCharging = other.isCharging; + batteryLevel = other.batteryLevel; + } + + /// Resets the transient state (the state variables that represent events, and which are true + /// for only one frame). + public void ClearTransientState() { + touchDown = false; + touchUp = false; + recentered = false; + clickButtonDown = false; + clickButtonUp = false; + appButtonDown = false; + appButtonUp = false; + homeButtonDown = false; + homeButtonState = false; + } + } +} +/// @endcond + +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/ControllerState.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerState.cs.meta new file mode 100644 index 0000000..280f786 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/ControllerState.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9159532a8a3d946aa9df74e771243e5b +timeCreated: 1462043669 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator.meta b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator.meta new file mode 100644 index 0000000..5ea3240 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6f26e421513d645d28448658551a7f41 +folderAsset: yes +timeCreated: 1462051657 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorClientSocket.cs b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorClientSocket.cs new file mode 100644 index 0000000..d5e0008 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorClientSocket.cs @@ -0,0 +1,243 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Net.Sockets; +using System.Runtime.InteropServices; +using System.Threading; + +using proto; + +/// @cond +namespace Gvr.Internal { + class EmulatorClientSocket : MonoBehaviour { + private static readonly int kPhoneEventPort = 7003; + private const int kSocketReadTimeoutMillis = 5000; + + // Minimum interval, in seconds, between attempts to reconnect the socket. + private const float kMinReconnectInterval = 1f; + + private TcpClient phoneMirroringSocket; + + private Thread phoneEventThread; + //private TcpClient phoneEventSocket; + //private NetworkStream phoneEventStream; + + private volatile bool shouldStop = false; + + // Flag used to limit connection state logging to initial failure and successful reconnects. + private volatile bool lastConnectionAttemptWasSuccessful = true; + + private EmulatorManager phoneRemote; + public bool connected { get; private set; } + + public void Init(EmulatorManager remote) { + phoneRemote = remote; + + if (EmulatorConfig.Instance.PHONE_EVENT_MODE != EmulatorConfig.Mode.OFF) { + phoneEventThread = new Thread(phoneEventSocketLoop); + phoneEventThread.IsBackground = true; + phoneEventThread.Start(); + } + } + + private void phoneEventSocketLoop() { + while (!shouldStop) { + long lastConnectionAttemptTime = DateTime.Now.Ticks; + try { + phoneConnect(); + } catch(Exception e) { + if (lastConnectionAttemptWasSuccessful) { + Debug.LogWarningFormat("{0}\n{1}", e.Message, e.StackTrace); + // Suppress additional failures until we have successfully reconnected. + lastConnectionAttemptWasSuccessful = false; + } + } + + // Wait a while in order to enforce the minimum time between connection attempts. + TimeSpan elapsed = new TimeSpan(DateTime.Now.Ticks - lastConnectionAttemptTime); + float toWait = kMinReconnectInterval - (float) elapsed.TotalSeconds; + if (toWait > 0) { + Thread.Sleep((int) (toWait * 1000)); + } + } + } + + private void phoneConnect() { + string addr = EmulatorConfig.Instance.PHONE_EVENT_MODE == EmulatorConfig.Mode.USB + ? EmulatorConfig.USB_SERVER_IP : EmulatorConfig.WIFI_SERVER_IP; + + try { + if (EmulatorConfig.Instance.PHONE_EVENT_MODE == EmulatorConfig.Mode.USB) { + setupPortForwarding(kPhoneEventPort); + } + TcpClient tcpClient = new TcpClient(addr, kPhoneEventPort); + connected = true; + ProcessConnection(tcpClient); + tcpClient.Close(); + } finally { + connected = false; + } + } + + private void setupPortForwarding(int port) { +#if !UNITY_WEBPLAYER + string adbCommand = string.Format("adb forward tcp:{0} tcp:{0}", port); + System.Diagnostics.Process myProcess = new System.Diagnostics.Process(); + +#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN + string processFilename = "CMD.exe"; + string processArguments = @"/k " + adbCommand + " & exit"; + + // See "Common Error Lookup Tool" (https://www.microsoft.com/en-us/download/details.aspx?id=985) + // MSG_DIR_BAD_COMMAND_OR_FILE (cmdmsg.h) + int kExitCodeCommandNotFound = 9009; // 0x2331 + +#else + string processFilename = "bash"; + string processArguments = string.Format("-l -c \"{0}\"", adbCommand); + + // "command not found" (see http://tldp.org/LDP/abs/html/exitcodes.html) + int kExitCodeCommandNotFound = 127; +#endif // UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN + + System.Diagnostics.ProcessStartInfo myProcessStartInfo = + new System.Diagnostics.ProcessStartInfo(processFilename, processArguments); + myProcessStartInfo.UseShellExecute = false; + myProcessStartInfo.RedirectStandardError = true; + myProcessStartInfo.CreateNoWindow = true; + myProcess.StartInfo = myProcessStartInfo; + myProcess.Start(); + myProcess.WaitForExit(); + // Also wait for HasExited here, to avoid ExitCode access below occasionally throwing InvalidOperationException + while (!myProcess.HasExited) { + Thread.Sleep(1); + } + int exitCode = myProcess.ExitCode; + string standardError = myProcess.StandardError.ReadToEnd(); + myProcess.Close(); + + if (exitCode == 0) { + // Port forwarding setup successfully. + return; + } + + if (exitCode == kExitCodeCommandNotFound) { + // Caught by phoneEventSocketLoop. + throw new Exception( + "Android Debug Bridge (`adb`) command not found." + + "\nVerify that the Android SDK is installed and that the directory containing" + + " `adb` is included in your PATH environment variable."); + } + // Caught by phoneEventSocketLoop. + throw new Exception( + String.Format( + "Failed to setup port forwarding." + + " Exit code {0} returned by process: {1} {2}\n{3}", + exitCode, processFilename, processArguments, standardError)); +#endif // !UNITY_WEBPLAYER + } + + private void ProcessConnection(TcpClient tcpClient) { + byte[] buffer = new byte[4]; + NetworkStream stream = tcpClient.GetStream(); + stream.ReadTimeout = kSocketReadTimeoutMillis; + tcpClient.ReceiveTimeout = kSocketReadTimeoutMillis; + while (!shouldStop) { + int bytesRead = blockingRead(stream, buffer, 0, 4); + if (bytesRead < 4) { + // Caught by phoneEventSocketLoop. + throw new Exception( + "Failed to read from controller emulator app event socket." + + "\nVerify that the controller emulator app is running."); + } + int msgLen = unpack32bits(correctEndianness(buffer), 0); + + byte[] dataBuffer = new byte[msgLen]; + bytesRead = blockingRead(stream, dataBuffer, 0, msgLen); + if (bytesRead < msgLen) { + // Caught by phoneEventSocketLoop. + throw new Exception( + "Failed to read from controller emulator app event socket." + + "\nVerify that the controller emulator app is running."); + } + + PhoneEvent proto = + PhoneEvent.CreateBuilder().MergeFrom(dataBuffer).Build(); + phoneRemote.OnPhoneEvent(proto); + + if (!lastConnectionAttemptWasSuccessful) { + Debug.Log("Successfully connected to controller emulator app."); + // Log first failure after above successful read from event socket. + lastConnectionAttemptWasSuccessful = true; + } + } + } + + private int blockingRead(NetworkStream stream, byte[] buffer, int index, + int count) { + int bytesRead = 0; + while (!shouldStop && bytesRead < count) { + try { + int n = stream.Read(buffer, index + bytesRead, count - bytesRead); + if (n <= 0) { + // Failed to read. + return -1; + } + bytesRead += n; + } catch (IOException) { + // Read failed or timed out. + return -1; + } catch (ObjectDisposedException) { + // Socket closed. + return -1; + } + } + return bytesRead; + } + + void OnDestroy() { + shouldStop = true; + + if (phoneMirroringSocket != null) { + phoneMirroringSocket.Close (); + phoneMirroringSocket = null; + } + + if (phoneEventThread != null) { + phoneEventThread.Join(); + } + } + + private int unpack32bits(byte[] array, int offset) { + int num = 0; + for (int i = 0; i < 4; i++) { + num += array [offset + i] << (i * 8); + } + return num; + } + + static private byte[] correctEndianness(byte[] array) { + if (BitConverter.IsLittleEndian) + Array.Reverse(array); + + return array; + } + } +} +/// @endcond diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorClientSocket.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorClientSocket.cs.meta new file mode 100644 index 0000000..d2b5387 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorClientSocket.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6bf1f92fb4ae24291b71e77c1ccac323 +timeCreated: 1462051657 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorConfig.cs b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorConfig.cs new file mode 100644 index 0000000..fdbdc5a --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorConfig.cs @@ -0,0 +1,59 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +using UnityEngine; + +/// @cond +namespace Gvr.Internal { + class EmulatorConfig : MonoBehaviour { + public static EmulatorConfig Instance { + get { + if (instance == null) { + EmulatorConfig[] configs = (EmulatorConfig[]) FindObjectsOfType(typeof(EmulatorConfig)); + if (configs.Length == 1) { + instance = configs[0]; + } else if (configs.Length > 1) { + Debug.LogError( + "Multiple PhoneRemote/Config objects in scene. Ignoring all."); + } + } + if (instance == null) { + var gameObject = new GameObject("PhoneRemoteConfig"); + instance = gameObject.AddComponent(); + } + return instance; + } + } + private static EmulatorConfig instance = null; + + public enum Mode { + OFF, + USB, + WIFI, + } + + // Set this value to match how the PC is connected to the phone that is + // streaming gyro, accel, and touch events. Set to OFF if using Wifi instead. + public Mode PHONE_EVENT_MODE = Mode.USB; + + /*----- Internal Parameters (should not require any changes). -----*/ + + // IP address of the phone, when connected to the PC via USB. + public static readonly string USB_SERVER_IP = "127.0.0.1"; + + // IP address of the phone, when connected to the PC via WiFi. + public static readonly string WIFI_SERVER_IP = "192.168.43.1"; + } +} +/// @endcond diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorConfig.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorConfig.cs.meta new file mode 100644 index 0000000..4b42fd7 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorConfig.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a229fefd8ee7448b0b700f6000ebdec3 +timeCreated: 1462051657 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorDataTypes.cs b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorDataTypes.cs new file mode 100644 index 0000000..774b163 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorDataTypes.cs @@ -0,0 +1,189 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +using proto; + +/// @cond +namespace Gvr.Internal { + struct EmulatorGyroEvent { + public readonly long timestamp; + public readonly Vector3 value; + + public EmulatorGyroEvent(PhoneEvent.Types.GyroscopeEvent proto) { + timestamp = proto.Timestamp; + value = new Vector3(proto.X, proto.Y, proto.Z); + } + } + + struct EmulatorAccelEvent { + public readonly long timestamp; + public readonly Vector3 value; + + public EmulatorAccelEvent(PhoneEvent.Types.AccelerometerEvent proto) { + timestamp = proto.Timestamp; + value = new Vector3(proto.X, proto.Y, proto.Z); + } + } + + struct EmulatorTouchEvent { + // Action constants. These should match the constants in the Android + // MotionEvent: + // http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_CANCEL + public enum Action { + kActionDown = 0, + kActionUp = 1, + kActionMove = 2, + kActionCancel = 3, + kActionPointerDown = 5, + kActionPointerUp = 6, + kActionHoverMove = 7, + kActionHoverEnter = 9, + kActionHoverExit = 10 + }; + + // Use getActionMasked() and getActionPointer() instead. + private readonly int action; + public readonly int relativeTimestamp; + public readonly List pointers; + + public struct Pointer { + public readonly int fingerId; + public readonly float normalizedX; + public readonly float normalizedY; + + public Pointer(int fingerId, float normalizedX, float normalizedY) { + this.fingerId = fingerId; + this.normalizedX = normalizedX; + this.normalizedY = normalizedY; + } + + public override string ToString () { + return string.Format ("({0}, {1}, {2})", fingerId, normalizedX, + normalizedY); + } + } + + public EmulatorTouchEvent(PhoneEvent.Types.MotionEvent proto, long lastDownTimeMs) { + action = proto.Action; + relativeTimestamp = + (Action)(proto.Action & ACTION_MASK) == Action.kActionDown + ? 0 : (int) (proto.Timestamp - lastDownTimeMs); + pointers = new List(); + foreach (PhoneEvent.Types.MotionEvent.Types.Pointer pointer in + proto.PointersList) { + pointers.Add( + new Pointer(pointer.Id, pointer.NormalizedX, pointer.NormalizedY)); + } + } + + public EmulatorTouchEvent(Action action, int pointerId, int relativeTimestamp, + List pointers) { + int fingerIndex = 0; + if (action == Action.kActionPointerDown + || action == Action.kActionPointerUp) { + fingerIndex = findPointerIndex(pointerId, pointers); + if (fingerIndex == -1) { + Debug.LogWarning("Could not find specific fingerId " + pointerId + + " in the supplied list of pointers."); + fingerIndex = 0; + } + } + this.action = getActionUnmasked(action, fingerIndex); + this.relativeTimestamp = relativeTimestamp; + this.pointers = pointers; + } + + // See Android's getActionMasked() and getActionIndex(). + private static readonly int ACTION_POINTER_INDEX_SHIFT = 8; + private static readonly int ACTION_POINTER_INDEX_MASK = 0xff00; + private static readonly int ACTION_MASK = 0xff; + + public Action getActionMasked() { + return (Action)(action & ACTION_MASK); + } + + public Pointer getActionPointer() { + int index = + (action & ACTION_POINTER_INDEX_MASK) >> ACTION_POINTER_INDEX_SHIFT; + return pointers[index]; + } + + + private static int getActionUnmasked(Action action, int fingerIndex) { + return ((int)action) | (fingerIndex << ACTION_POINTER_INDEX_SHIFT); + } + + private static int findPointerIndex(int fingerId, List pointers) { + // Encode the fingerId info into the action, as Android does. See Android's + // getActionMasked() and getActionIndex(). + int fingerIndex = -1; + for (int i = 0; i < pointers.Count; i++) { + if (fingerId == pointers[i].fingerId) { + fingerIndex = i; + break; + } + } + + return fingerIndex; + } + + public override string ToString () { + System.Text.StringBuilder builder = new System.Text.StringBuilder (); + builder.AppendFormat("t = {0}; A = {1}; P = {2}; N = {3}; [", + relativeTimestamp, getActionMasked (), getActionPointer ().fingerId, + pointers.Count); + for (int i = 0; i < pointers.Count; i++) { + builder.Append(pointers[i]).Append (", "); + } + builder.Append ("]"); + return builder.ToString(); + } + } + + struct EmulatorOrientationEvent { + public readonly long timestamp; + public readonly Quaternion orientation; + + public EmulatorOrientationEvent(PhoneEvent.Types.OrientationEvent proto) { + timestamp = proto.Timestamp; + // Convert from right-handed coordinates to left-handed. + orientation = new Quaternion(proto.X, proto.Y, -proto.Z, proto.W); + } + } + + struct EmulatorButtonEvent { + // Codes as reported by the IC app (reuses Android KeyEvent codes). + public enum ButtonCode { + kNone = 0, + kHome = 3, // android.view.KeyEvent.KEYCODE_HOME + kVolumeUp = 25, // android.view.KeyEvent.KEYCODE_VOLUME_UP + kVolumeDown = 24, // android.view.KeyEvent.KEYCODE_VOLUME_DOWN + kClick = 66, // android.view.KeyEvent.KEYCODE_ENTER + kApp = 82, // android.view.KeyEvent.KEYCODE_MENU + } + + public readonly ButtonCode code; + public readonly bool down; + public EmulatorButtonEvent(PhoneEvent.Types.KeyEvent proto) { + code = (ButtonCode) proto.Code; + down = proto.Action == 0; + } + } +} +/// @endcond diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorDataTypes.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorDataTypes.cs.meta new file mode 100644 index 0000000..175d304 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorDataTypes.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 76d2b695633884daf905c07095c8a01c +timeCreated: 1462051657 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorManager.cs b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorManager.cs new file mode 100644 index 0000000..f496061 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorManager.cs @@ -0,0 +1,237 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +using proto; + +/// @cond +namespace Gvr.Internal { + class EmulatorManager : MonoBehaviour { + + private IEnumerator emulatorUpdate; + private WaitForEndOfFrame waitForEndOfFrame = new WaitForEndOfFrame(); + + public static EmulatorManager Instance { + get { + if (instance == null) { + var gameObject = new GameObject("PhoneRemote"); + instance = gameObject.AddComponent(); + // This object should survive all scene transitions. + GameObject.DontDestroyOnLoad(instance); + } + return instance; + } + } + private static EmulatorManager instance = null; + + public delegate void OnGyroEvent(EmulatorGyroEvent gyroEvent); + public event OnGyroEvent gyroEventListeners { + add { + if (value != null) { + value(currentGyroEvent); + } + gyroEventListenersInternal += value; + } + + remove { + gyroEventListenersInternal -= value; + } + } + + public delegate void OnAccelEvent(EmulatorAccelEvent accelEvent); + public event OnAccelEvent accelEventListeners { + add { + if (value != null) { + value(currentAccelEvent); + } + accelEventListenersInternal += value; + } + + remove { + accelEventListenersInternal -= value; + } + } + + public delegate void OnTouchEvent(EmulatorTouchEvent touchEvent); + public event OnTouchEvent touchEventListeners { + add { + if (value != null + && currentTouchEvent.pointers != null /* null only during init */) { + value(currentTouchEvent); + } + touchEventListenersInternal += value; + } + + remove { + touchEventListenersInternal -= value; + } + } + + public delegate void OnOrientationEvent(EmulatorOrientationEvent orientationEvent); + public event OnOrientationEvent orientationEventListeners { + add { + if (value != null) { + value(currentOrientationEvent); + } + orientationEventListenersInternal += value; + } + + remove { + orientationEventListenersInternal -= value; + } + } + + public delegate void OnButtonEvent(EmulatorButtonEvent buttonEvent); + public event OnButtonEvent buttonEventListeners { + add { + if (value != null) { + value(currentButtonEvent); + } + buttonEventListenersInternal += value; + } + + remove { + buttonEventListenersInternal -= value; + } + } + + + private void onGyroEvent(EmulatorGyroEvent e) { + currentGyroEvent = e; + if (gyroEventListenersInternal != null) { + gyroEventListenersInternal(e); + } + } + + private void onAccelEvent(EmulatorAccelEvent e) { + currentAccelEvent = e; + if (accelEventListenersInternal != null) { + accelEventListenersInternal(e); + } + } + + private void onTouchEvent(EmulatorTouchEvent e) { + currentTouchEvent = e; + if (touchEventListenersInternal != null) { + touchEventListenersInternal(e); + } + } + + private void onOrientationEvent(EmulatorOrientationEvent e) { + currentOrientationEvent = e; + if (orientationEventListenersInternal != null) { + orientationEventListenersInternal(e); + } + } + + private void onButtonEvent(EmulatorButtonEvent e) { + currentButtonEvent = e; + if (buttonEventListenersInternal != null) { + buttonEventListenersInternal(e); + } + } + + EmulatorGyroEvent currentGyroEvent; + EmulatorAccelEvent currentAccelEvent; + EmulatorTouchEvent currentTouchEvent; + EmulatorOrientationEvent currentOrientationEvent; + EmulatorButtonEvent currentButtonEvent; + + private event OnGyroEvent gyroEventListenersInternal; + private event OnAccelEvent accelEventListenersInternal; + private event OnTouchEvent touchEventListenersInternal; + private event OnOrientationEvent orientationEventListenersInternal; + private event OnButtonEvent buttonEventListenersInternal; + + private Queue pendingEvents = Queue.Synchronized(new Queue()); + private EmulatorClientSocket socket; + private long lastDownTimeMs; + + public bool Connected { + get { + return socket != null && socket.connected; + } + } + + public void Awake() { + if (instance == null) { + instance = this; + } + if (instance != this) { + Debug.LogWarning("PhoneRemote must be a singleton."); + enabled = false; + return; + } + } + + public void Start() { + socket = gameObject.AddComponent(); + socket.Init(this); + emulatorUpdate = EndOfFrame(); + StartCoroutine(emulatorUpdate); + } + + IEnumerator EndOfFrame() { + while (true) { + yield return waitForEndOfFrame; + lock (pendingEvents.SyncRoot) { + while (pendingEvents.Count > 0) { + PhoneEvent phoneEvent = (PhoneEvent) pendingEvents.Dequeue(); + ProcessEventAtEndOfFrame(phoneEvent); + } + } + } + } + + public void OnPhoneEvent(PhoneEvent e) { + pendingEvents.Enqueue(e); + } + + private void ProcessEventAtEndOfFrame(PhoneEvent e) { + switch (e.Type) { + case PhoneEvent.Types.Type.MOTION: + EmulatorTouchEvent touchEvent = new EmulatorTouchEvent(e.MotionEvent, lastDownTimeMs); + onTouchEvent(touchEvent); + if (touchEvent.getActionMasked() == EmulatorTouchEvent.Action.kActionDown) { + lastDownTimeMs = e.MotionEvent.Timestamp; + } + break; + case PhoneEvent.Types.Type.GYROSCOPE: + EmulatorGyroEvent gyroEvent = new EmulatorGyroEvent(e.GyroscopeEvent); + onGyroEvent(gyroEvent); + break; + case PhoneEvent.Types.Type.ACCELEROMETER: + EmulatorAccelEvent accelEvent = new EmulatorAccelEvent(e.AccelerometerEvent); + onAccelEvent(accelEvent); + break; + case PhoneEvent.Types.Type.ORIENTATION: + EmulatorOrientationEvent orientationEvent = + new EmulatorOrientationEvent(e.OrientationEvent); + onOrientationEvent(orientationEvent); + break; + case PhoneEvent.Types.Type.KEY: + EmulatorButtonEvent buttonEvent = new EmulatorButtonEvent(e.KeyEvent); + onButtonEvent(buttonEvent); + break; + default: + Debug.Log("Unsupported PhoneEvent type: " + e.Type); + break; + } + } + } +} +/// @endcond diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorManager.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorManager.cs.meta new file mode 100644 index 0000000..0cb58af --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/EmulatorManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c42ca6bb02b364893b127c681c158442 +timeCreated: 1462051658 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/PhoneEvent.cs b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/PhoneEvent.cs new file mode 100644 index 0000000..574ce5d --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/PhoneEvent.cs @@ -0,0 +1,3506 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. + +// Generated by ProtoGen, Version=2.4.1.473, Culture=neutral, PublicKeyToken=55f7125234beb589. DO NOT EDIT! +#pragma warning disable 1591, 0612 +#region Designer generated code + +using pb = global::Google.ProtocolBuffers; +using pbc = global::Google.ProtocolBuffers.Collections; +using pbd = global::Google.ProtocolBuffers.Descriptors; +using scg = global::System.Collections.Generic; + +/// @cond +namespace proto { + + namespace Proto { + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public static partial class PhoneEvent { + + #region Extension registration + public static void RegisterAllExtensions(pb::ExtensionRegistry registry) { + } + #endregion + #region Static variables + #endregion + #region Extensions + internal static readonly object Descriptor; + static PhoneEvent() { + Descriptor = null; + } + #endregion + + } + } + #region Messages + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class PhoneEvent : pb::GeneratedMessageLite { + private PhoneEvent() { } + private static readonly PhoneEvent defaultInstance = new PhoneEvent().MakeReadOnly(); + private static readonly string[] _phoneEventFieldNames = new string[] { "accelerometer_event", "depth_map_event", "gyroscope_event", "key_event", "motion_event", "orientation_event", "type" }; + private static readonly uint[] _phoneEventFieldTags = new uint[] { 34, 42, 26, 58, 18, 50, 8 }; + public static PhoneEvent DefaultInstance { + get { return defaultInstance; } + } + + public override PhoneEvent DefaultInstanceForType { + get { return DefaultInstance; } + } + + protected override PhoneEvent ThisMessage { + get { return this; } + } + + #region Nested types + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public static class Types { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public enum Type { + MOTION = 1, + GYROSCOPE = 2, + ACCELEROMETER = 3, + DEPTH_MAP = 4, + ORIENTATION = 5, + KEY = 6, + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class MotionEvent : pb::GeneratedMessageLite { + private MotionEvent() { } + private static readonly MotionEvent defaultInstance = new MotionEvent().MakeReadOnly(); + private static readonly string[] _motionEventFieldNames = new string[] { "action", "pointers", "timestamp" }; + private static readonly uint[] _motionEventFieldTags = new uint[] { 16, 26, 8 }; + public static MotionEvent DefaultInstance { + get { return defaultInstance; } + } + + public override MotionEvent DefaultInstanceForType { + get { return DefaultInstance; } + } + + protected override MotionEvent ThisMessage { + get { return this; } + } + + #region Nested types + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public static class Types { + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class Pointer : pb::GeneratedMessageLite { + private Pointer() { } + private static readonly Pointer defaultInstance = new Pointer().MakeReadOnly(); + private static readonly string[] _pointerFieldNames = new string[] { "id", "normalized_x", "normalized_y" }; + private static readonly uint[] _pointerFieldTags = new uint[] { 8, 21, 29 }; + public static Pointer DefaultInstance { + get { return defaultInstance; } + } + + public override Pointer DefaultInstanceForType { + get { return DefaultInstance; } + } + + protected override Pointer ThisMessage { + get { return this; } + } + + public const int IdFieldNumber = 1; + private bool hasId; + private int id_; + public bool HasId { + get { return hasId; } + } + public int Id { + get { return id_; } + } + + public const int NormalizedXFieldNumber = 2; + private bool hasNormalizedX; + private float normalizedX_; + public bool HasNormalizedX { + get { return hasNormalizedX; } + } + public float NormalizedX { + get { return normalizedX_; } + } + + public const int NormalizedYFieldNumber = 3; + private bool hasNormalizedY; + private float normalizedY_; + public bool HasNormalizedY { + get { return hasNormalizedY; } + } + public float NormalizedY { + get { return normalizedY_; } + } + + public override bool IsInitialized { + get { + return true; + } + } + + public override void WriteTo(pb::ICodedOutputStream output) { + string[] field_names = _pointerFieldNames; + if (hasId) { + output.WriteInt32(1, field_names[0], Id); + } + if (hasNormalizedX) { + output.WriteFloat(2, field_names[1], NormalizedX); + } + if (hasNormalizedY) { + output.WriteFloat(3, field_names[2], NormalizedY); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (hasId) { + size += pb::CodedOutputStream.ComputeInt32Size(1, Id); + } + if (hasNormalizedX) { + size += pb::CodedOutputStream.ComputeFloatSize(2, NormalizedX); + } + if (hasNormalizedY) { + size += pb::CodedOutputStream.ComputeFloatSize(3, NormalizedY); + } + memoizedSerializedSize = size; + return size; + } + } + + #region Lite runtime methods + public override int GetHashCode() { + int hash = GetType().GetHashCode(); + if (hasId) hash ^= id_.GetHashCode(); + if (hasNormalizedX) hash ^= normalizedX_.GetHashCode(); + if (hasNormalizedY) hash ^= normalizedY_.GetHashCode(); + return hash; + } + + public override bool Equals(object obj) { + Pointer other = obj as Pointer; + if (other == null) return false; + if (hasId != other.hasId || (hasId && !id_.Equals(other.id_))) return false; + if (hasNormalizedX != other.hasNormalizedX || (hasNormalizedX && !normalizedX_.Equals(other.normalizedX_))) return false; + if (hasNormalizedY != other.hasNormalizedY || (hasNormalizedY && !normalizedY_.Equals(other.normalizedY_))) return false; + return true; + } + + public override void PrintTo(global::System.IO.TextWriter writer) { + PrintField("id", hasId, id_, writer); + PrintField("normalized_x", hasNormalizedX, normalizedX_, writer); + PrintField("normalized_y", hasNormalizedY, normalizedY_, writer); + } + #endregion + + public static Pointer ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static Pointer ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static Pointer ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static Pointer ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static Pointer ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static Pointer ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static Pointer ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static Pointer ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static Pointer ParseFrom(pb::ICodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static Pointer ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + private Pointer MakeReadOnly() { + return this; + } + + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(Pointer prototype) { + return new Builder(prototype); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() { + result = DefaultInstance; + resultIsReadOnly = true; + } + internal Builder(Pointer cloneFrom) { + result = cloneFrom; + resultIsReadOnly = true; + } + + private bool resultIsReadOnly; + private Pointer result; + + private Pointer PrepareBuilder() { + if (resultIsReadOnly) { + Pointer original = result; + result = new Pointer(); + resultIsReadOnly = false; + MergeFrom(original); + } + return result; + } + + public override bool IsInitialized { + get { return result.IsInitialized; } + } + + protected override Pointer MessageBeingBuilt { + get { return PrepareBuilder(); } + } + + public override Builder Clear() { + result = DefaultInstance; + resultIsReadOnly = true; + return this; + } + + public override Builder Clone() { + if (resultIsReadOnly) { + return new Builder(result); + } else { + return new Builder().MergeFrom(result); + } + } + + public override Pointer DefaultInstanceForType { + get { return global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer.DefaultInstance; } + } + + public override Pointer BuildPartial() { + if (resultIsReadOnly) { + return result; + } + resultIsReadOnly = true; + return result.MakeReadOnly(); + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is Pointer) { + return MergeFrom((Pointer) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(Pointer other) { + if (other == global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer.DefaultInstance) return this; + PrepareBuilder(); + if (other.HasId) { + Id = other.Id; + } + if (other.HasNormalizedX) { + NormalizedX = other.NormalizedX; + } + if (other.HasNormalizedY) { + NormalizedY = other.NormalizedY; + } + return this; + } + + public override Builder MergeFrom(pb::ICodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + PrepareBuilder(); + uint tag; + string field_name; + while (input.ReadTag(out tag, out field_name)) { + if(tag == 0 && field_name != null) { + int field_ordinal = global::System.Array.BinarySearch(_pointerFieldNames, field_name, global::System.StringComparer.Ordinal); + if(field_ordinal >= 0) + tag = _pointerFieldTags[field_ordinal]; + else { + ParseUnknownField(input, extensionRegistry, tag, field_name); + continue; + } + } + switch (tag) { + case 0: { + throw pb::InvalidProtocolBufferException.InvalidTag(); + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag, field_name); + break; + } + case 8: { + result.hasId = input.ReadInt32(ref result.id_); + break; + } + case 21: { + result.hasNormalizedX = input.ReadFloat(ref result.normalizedX_); + break; + } + case 29: { + result.hasNormalizedY = input.ReadFloat(ref result.normalizedY_); + break; + } + } + } + + return this; + } + + + public bool HasId { + get { return result.hasId; } + } + public int Id { + get { return result.Id; } + set { SetId(value); } + } + public Builder SetId(int value) { + PrepareBuilder(); + result.hasId = true; + result.id_ = value; + return this; + } + public Builder ClearId() { + PrepareBuilder(); + result.hasId = false; + result.id_ = 0; + return this; + } + + public bool HasNormalizedX { + get { return result.hasNormalizedX; } + } + public float NormalizedX { + get { return result.NormalizedX; } + set { SetNormalizedX(value); } + } + public Builder SetNormalizedX(float value) { + PrepareBuilder(); + result.hasNormalizedX = true; + result.normalizedX_ = value; + return this; + } + public Builder ClearNormalizedX() { + PrepareBuilder(); + result.hasNormalizedX = false; + result.normalizedX_ = 0F; + return this; + } + + public bool HasNormalizedY { + get { return result.hasNormalizedY; } + } + public float NormalizedY { + get { return result.NormalizedY; } + set { SetNormalizedY(value); } + } + public Builder SetNormalizedY(float value) { + PrepareBuilder(); + result.hasNormalizedY = true; + result.normalizedY_ = value; + return this; + } + public Builder ClearNormalizedY() { + PrepareBuilder(); + result.hasNormalizedY = false; + result.normalizedY_ = 0F; + return this; + } + } + static Pointer() { + object.ReferenceEquals(global::proto.Proto.PhoneEvent.Descriptor, null); + } + } + + } + #endregion + + public const int TimestampFieldNumber = 1; + private bool hasTimestamp; + private long timestamp_; + public bool HasTimestamp { + get { return hasTimestamp; } + } + public long Timestamp { + get { return timestamp_; } + } + + public const int ActionFieldNumber = 2; + private bool hasAction; + private int action_; + public bool HasAction { + get { return hasAction; } + } + public int Action { + get { return action_; } + } + + public const int PointersFieldNumber = 3; + private pbc::PopsicleList pointers_ = new pbc::PopsicleList(); + public scg::IList PointersList { + get { return pointers_; } + } + public int PointersCount { + get { return pointers_.Count; } + } + public global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer GetPointers(int index) { + return pointers_[index]; + } + + public override bool IsInitialized { + get { + return true; + } + } + + public override void WriteTo(pb::ICodedOutputStream output) { + string[] field_names = _motionEventFieldNames; + if (hasTimestamp) { + output.WriteInt64(1, field_names[2], Timestamp); + } + if (hasAction) { + output.WriteInt32(2, field_names[0], Action); + } + if (pointers_.Count > 0) { + output.WriteMessageArray(3, field_names[1], pointers_); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (hasTimestamp) { + size += pb::CodedOutputStream.ComputeInt64Size(1, Timestamp); + } + if (hasAction) { + size += pb::CodedOutputStream.ComputeInt32Size(2, Action); + } + foreach (global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer element in PointersList) { + size += pb::CodedOutputStream.ComputeMessageSize(3, element); + } + memoizedSerializedSize = size; + return size; + } + } + + #region Lite runtime methods + public override int GetHashCode() { + int hash = GetType().GetHashCode(); + if (hasTimestamp) hash ^= timestamp_.GetHashCode(); + if (hasAction) hash ^= action_.GetHashCode(); + foreach(global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer i in pointers_) + hash ^= i.GetHashCode(); + return hash; + } + + public override bool Equals(object obj) { + MotionEvent other = obj as MotionEvent; + if (other == null) return false; + if (hasTimestamp != other.hasTimestamp || (hasTimestamp && !timestamp_.Equals(other.timestamp_))) return false; + if (hasAction != other.hasAction || (hasAction && !action_.Equals(other.action_))) return false; + if(pointers_.Count != other.pointers_.Count) return false; + for(int ix=0; ix < pointers_.Count; ix++) + if(!pointers_[ix].Equals(other.pointers_[ix])) return false; + return true; + } + + public override void PrintTo(global::System.IO.TextWriter writer) { + PrintField("timestamp", hasTimestamp, timestamp_, writer); + PrintField("action", hasAction, action_, writer); + PrintField("pointers", pointers_, writer); + } + #endregion + + public static MotionEvent ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static MotionEvent ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static MotionEvent ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static MotionEvent ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static MotionEvent ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static MotionEvent ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static MotionEvent ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static MotionEvent ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static MotionEvent ParseFrom(pb::ICodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static MotionEvent ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + private MotionEvent MakeReadOnly() { + pointers_.MakeReadOnly(); + return this; + } + + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(MotionEvent prototype) { + return new Builder(prototype); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() { + result = DefaultInstance; + resultIsReadOnly = true; + } + internal Builder(MotionEvent cloneFrom) { + result = cloneFrom; + resultIsReadOnly = true; + } + + private bool resultIsReadOnly; + private MotionEvent result; + + private MotionEvent PrepareBuilder() { + if (resultIsReadOnly) { + MotionEvent original = result; + result = new MotionEvent(); + resultIsReadOnly = false; + MergeFrom(original); + } + return result; + } + + public override bool IsInitialized { + get { return result.IsInitialized; } + } + + protected override MotionEvent MessageBeingBuilt { + get { return PrepareBuilder(); } + } + + public override Builder Clear() { + result = DefaultInstance; + resultIsReadOnly = true; + return this; + } + + public override Builder Clone() { + if (resultIsReadOnly) { + return new Builder(result); + } else { + return new Builder().MergeFrom(result); + } + } + + public override MotionEvent DefaultInstanceForType { + get { return global::proto.PhoneEvent.Types.MotionEvent.DefaultInstance; } + } + + public override MotionEvent BuildPartial() { + if (resultIsReadOnly) { + return result; + } + resultIsReadOnly = true; + return result.MakeReadOnly(); + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is MotionEvent) { + return MergeFrom((MotionEvent) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(MotionEvent other) { + if (other == global::proto.PhoneEvent.Types.MotionEvent.DefaultInstance) return this; + PrepareBuilder(); + if (other.HasTimestamp) { + Timestamp = other.Timestamp; + } + if (other.HasAction) { + Action = other.Action; + } + if (other.pointers_.Count != 0) { + result.pointers_.Add(other.pointers_); + } + return this; + } + + public override Builder MergeFrom(pb::ICodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + PrepareBuilder(); + uint tag; + string field_name; + while (input.ReadTag(out tag, out field_name)) { + if(tag == 0 && field_name != null) { + int field_ordinal = global::System.Array.BinarySearch(_motionEventFieldNames, field_name, global::System.StringComparer.Ordinal); + if(field_ordinal >= 0) + tag = _motionEventFieldTags[field_ordinal]; + else { + ParseUnknownField(input, extensionRegistry, tag, field_name); + continue; + } + } + switch (tag) { + case 0: { + throw pb::InvalidProtocolBufferException.InvalidTag(); + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag, field_name); + break; + } + case 8: { + result.hasTimestamp = input.ReadInt64(ref result.timestamp_); + break; + } + case 16: { + result.hasAction = input.ReadInt32(ref result.action_); + break; + } + case 26: { + input.ReadMessageArray(tag, field_name, result.pointers_, global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer.DefaultInstance, extensionRegistry); + break; + } + } + } + + return this; + } + + + public bool HasTimestamp { + get { return result.hasTimestamp; } + } + public long Timestamp { + get { return result.Timestamp; } + set { SetTimestamp(value); } + } + public Builder SetTimestamp(long value) { + PrepareBuilder(); + result.hasTimestamp = true; + result.timestamp_ = value; + return this; + } + public Builder ClearTimestamp() { + PrepareBuilder(); + result.hasTimestamp = false; + result.timestamp_ = 0L; + return this; + } + + public bool HasAction { + get { return result.hasAction; } + } + public int Action { + get { return result.Action; } + set { SetAction(value); } + } + public Builder SetAction(int value) { + PrepareBuilder(); + result.hasAction = true; + result.action_ = value; + return this; + } + public Builder ClearAction() { + PrepareBuilder(); + result.hasAction = false; + result.action_ = 0; + return this; + } + + public pbc::IPopsicleList PointersList { + get { return PrepareBuilder().pointers_; } + } + public int PointersCount { + get { return result.PointersCount; } + } + public global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer GetPointers(int index) { + return result.GetPointers(index); + } + public Builder SetPointers(int index, global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + result.pointers_[index] = value; + return this; + } + public Builder SetPointers(int index, global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + PrepareBuilder(); + result.pointers_[index] = builderForValue.Build(); + return this; + } + public Builder AddPointers(global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + result.pointers_.Add(value); + return this; + } + public Builder AddPointers(global::proto.PhoneEvent.Types.MotionEvent.Types.Pointer.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + PrepareBuilder(); + result.pointers_.Add(builderForValue.Build()); + return this; + } + public Builder AddRangePointers(scg::IEnumerable values) { + PrepareBuilder(); + result.pointers_.Add(values); + return this; + } + public Builder ClearPointers() { + PrepareBuilder(); + result.pointers_.Clear(); + return this; + } + } + static MotionEvent() { + object.ReferenceEquals(global::proto.Proto.PhoneEvent.Descriptor, null); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class GyroscopeEvent : pb::GeneratedMessageLite { + private GyroscopeEvent() { } + private static readonly GyroscopeEvent defaultInstance = new GyroscopeEvent().MakeReadOnly(); + private static readonly string[] _gyroscopeEventFieldNames = new string[] { "timestamp", "x", "y", "z" }; + private static readonly uint[] _gyroscopeEventFieldTags = new uint[] { 8, 21, 29, 37 }; + public static GyroscopeEvent DefaultInstance { + get { return defaultInstance; } + } + + public override GyroscopeEvent DefaultInstanceForType { + get { return DefaultInstance; } + } + + protected override GyroscopeEvent ThisMessage { + get { return this; } + } + + public const int TimestampFieldNumber = 1; + private bool hasTimestamp; + private long timestamp_; + public bool HasTimestamp { + get { return hasTimestamp; } + } + public long Timestamp { + get { return timestamp_; } + } + + public const int XFieldNumber = 2; + private bool hasX; + private float x_; + public bool HasX { + get { return hasX; } + } + public float X { + get { return x_; } + } + + public const int YFieldNumber = 3; + private bool hasY; + private float y_; + public bool HasY { + get { return hasY; } + } + public float Y { + get { return y_; } + } + + public const int ZFieldNumber = 4; + private bool hasZ; + private float z_; + public bool HasZ { + get { return hasZ; } + } + public float Z { + get { return z_; } + } + + public override bool IsInitialized { + get { + return true; + } + } + + public override void WriteTo(pb::ICodedOutputStream output) { + string[] field_names = _gyroscopeEventFieldNames; + if (hasTimestamp) { + output.WriteInt64(1, field_names[0], Timestamp); + } + if (hasX) { + output.WriteFloat(2, field_names[1], X); + } + if (hasY) { + output.WriteFloat(3, field_names[2], Y); + } + if (hasZ) { + output.WriteFloat(4, field_names[3], Z); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (hasTimestamp) { + size += pb::CodedOutputStream.ComputeInt64Size(1, Timestamp); + } + if (hasX) { + size += pb::CodedOutputStream.ComputeFloatSize(2, X); + } + if (hasY) { + size += pb::CodedOutputStream.ComputeFloatSize(3, Y); + } + if (hasZ) { + size += pb::CodedOutputStream.ComputeFloatSize(4, Z); + } + memoizedSerializedSize = size; + return size; + } + } + + #region Lite runtime methods + public override int GetHashCode() { + int hash = GetType().GetHashCode(); + if (hasTimestamp) hash ^= timestamp_.GetHashCode(); + if (hasX) hash ^= x_.GetHashCode(); + if (hasY) hash ^= y_.GetHashCode(); + if (hasZ) hash ^= z_.GetHashCode(); + return hash; + } + + public override bool Equals(object obj) { + GyroscopeEvent other = obj as GyroscopeEvent; + if (other == null) return false; + if (hasTimestamp != other.hasTimestamp || (hasTimestamp && !timestamp_.Equals(other.timestamp_))) return false; + if (hasX != other.hasX || (hasX && !x_.Equals(other.x_))) return false; + if (hasY != other.hasY || (hasY && !y_.Equals(other.y_))) return false; + if (hasZ != other.hasZ || (hasZ && !z_.Equals(other.z_))) return false; + return true; + } + + public override void PrintTo(global::System.IO.TextWriter writer) { + PrintField("timestamp", hasTimestamp, timestamp_, writer); + PrintField("x", hasX, x_, writer); + PrintField("y", hasY, y_, writer); + PrintField("z", hasZ, z_, writer); + } + #endregion + + public static GyroscopeEvent ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static GyroscopeEvent ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static GyroscopeEvent ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static GyroscopeEvent ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static GyroscopeEvent ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static GyroscopeEvent ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static GyroscopeEvent ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static GyroscopeEvent ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static GyroscopeEvent ParseFrom(pb::ICodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static GyroscopeEvent ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + private GyroscopeEvent MakeReadOnly() { + return this; + } + + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(GyroscopeEvent prototype) { + return new Builder(prototype); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() { + result = DefaultInstance; + resultIsReadOnly = true; + } + internal Builder(GyroscopeEvent cloneFrom) { + result = cloneFrom; + resultIsReadOnly = true; + } + + private bool resultIsReadOnly; + private GyroscopeEvent result; + + private GyroscopeEvent PrepareBuilder() { + if (resultIsReadOnly) { + GyroscopeEvent original = result; + result = new GyroscopeEvent(); + resultIsReadOnly = false; + MergeFrom(original); + } + return result; + } + + public override bool IsInitialized { + get { return result.IsInitialized; } + } + + protected override GyroscopeEvent MessageBeingBuilt { + get { return PrepareBuilder(); } + } + + public override Builder Clear() { + result = DefaultInstance; + resultIsReadOnly = true; + return this; + } + + public override Builder Clone() { + if (resultIsReadOnly) { + return new Builder(result); + } else { + return new Builder().MergeFrom(result); + } + } + + public override GyroscopeEvent DefaultInstanceForType { + get { return global::proto.PhoneEvent.Types.GyroscopeEvent.DefaultInstance; } + } + + public override GyroscopeEvent BuildPartial() { + if (resultIsReadOnly) { + return result; + } + resultIsReadOnly = true; + return result.MakeReadOnly(); + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is GyroscopeEvent) { + return MergeFrom((GyroscopeEvent) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(GyroscopeEvent other) { + if (other == global::proto.PhoneEvent.Types.GyroscopeEvent.DefaultInstance) return this; + PrepareBuilder(); + if (other.HasTimestamp) { + Timestamp = other.Timestamp; + } + if (other.HasX) { + X = other.X; + } + if (other.HasY) { + Y = other.Y; + } + if (other.HasZ) { + Z = other.Z; + } + return this; + } + + public override Builder MergeFrom(pb::ICodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + PrepareBuilder(); + uint tag; + string field_name; + while (input.ReadTag(out tag, out field_name)) { + if(tag == 0 && field_name != null) { + int field_ordinal = global::System.Array.BinarySearch(_gyroscopeEventFieldNames, field_name, global::System.StringComparer.Ordinal); + if(field_ordinal >= 0) + tag = _gyroscopeEventFieldTags[field_ordinal]; + else { + ParseUnknownField(input, extensionRegistry, tag, field_name); + continue; + } + } + switch (tag) { + case 0: { + throw pb::InvalidProtocolBufferException.InvalidTag(); + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag, field_name); + break; + } + case 8: { + result.hasTimestamp = input.ReadInt64(ref result.timestamp_); + break; + } + case 21: { + result.hasX = input.ReadFloat(ref result.x_); + break; + } + case 29: { + result.hasY = input.ReadFloat(ref result.y_); + break; + } + case 37: { + result.hasZ = input.ReadFloat(ref result.z_); + break; + } + } + } + + return this; + } + + + public bool HasTimestamp { + get { return result.hasTimestamp; } + } + public long Timestamp { + get { return result.Timestamp; } + set { SetTimestamp(value); } + } + public Builder SetTimestamp(long value) { + PrepareBuilder(); + result.hasTimestamp = true; + result.timestamp_ = value; + return this; + } + public Builder ClearTimestamp() { + PrepareBuilder(); + result.hasTimestamp = false; + result.timestamp_ = 0L; + return this; + } + + public bool HasX { + get { return result.hasX; } + } + public float X { + get { return result.X; } + set { SetX(value); } + } + public Builder SetX(float value) { + PrepareBuilder(); + result.hasX = true; + result.x_ = value; + return this; + } + public Builder ClearX() { + PrepareBuilder(); + result.hasX = false; + result.x_ = 0F; + return this; + } + + public bool HasY { + get { return result.hasY; } + } + public float Y { + get { return result.Y; } + set { SetY(value); } + } + public Builder SetY(float value) { + PrepareBuilder(); + result.hasY = true; + result.y_ = value; + return this; + } + public Builder ClearY() { + PrepareBuilder(); + result.hasY = false; + result.y_ = 0F; + return this; + } + + public bool HasZ { + get { return result.hasZ; } + } + public float Z { + get { return result.Z; } + set { SetZ(value); } + } + public Builder SetZ(float value) { + PrepareBuilder(); + result.hasZ = true; + result.z_ = value; + return this; + } + public Builder ClearZ() { + PrepareBuilder(); + result.hasZ = false; + result.z_ = 0F; + return this; + } + } + static GyroscopeEvent() { + object.ReferenceEquals(global::proto.Proto.PhoneEvent.Descriptor, null); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class AccelerometerEvent : pb::GeneratedMessageLite { + private AccelerometerEvent() { } + private static readonly AccelerometerEvent defaultInstance = new AccelerometerEvent().MakeReadOnly(); + private static readonly string[] _accelerometerEventFieldNames = new string[] { "timestamp", "x", "y", "z" }; + private static readonly uint[] _accelerometerEventFieldTags = new uint[] { 8, 21, 29, 37 }; + public static AccelerometerEvent DefaultInstance { + get { return defaultInstance; } + } + + public override AccelerometerEvent DefaultInstanceForType { + get { return DefaultInstance; } + } + + protected override AccelerometerEvent ThisMessage { + get { return this; } + } + + public const int TimestampFieldNumber = 1; + private bool hasTimestamp; + private long timestamp_; + public bool HasTimestamp { + get { return hasTimestamp; } + } + public long Timestamp { + get { return timestamp_; } + } + + public const int XFieldNumber = 2; + private bool hasX; + private float x_; + public bool HasX { + get { return hasX; } + } + public float X { + get { return x_; } + } + + public const int YFieldNumber = 3; + private bool hasY; + private float y_; + public bool HasY { + get { return hasY; } + } + public float Y { + get { return y_; } + } + + public const int ZFieldNumber = 4; + private bool hasZ; + private float z_; + public bool HasZ { + get { return hasZ; } + } + public float Z { + get { return z_; } + } + + public override bool IsInitialized { + get { + return true; + } + } + + public override void WriteTo(pb::ICodedOutputStream output) { + string[] field_names = _accelerometerEventFieldNames; + if (hasTimestamp) { + output.WriteInt64(1, field_names[0], Timestamp); + } + if (hasX) { + output.WriteFloat(2, field_names[1], X); + } + if (hasY) { + output.WriteFloat(3, field_names[2], Y); + } + if (hasZ) { + output.WriteFloat(4, field_names[3], Z); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (hasTimestamp) { + size += pb::CodedOutputStream.ComputeInt64Size(1, Timestamp); + } + if (hasX) { + size += pb::CodedOutputStream.ComputeFloatSize(2, X); + } + if (hasY) { + size += pb::CodedOutputStream.ComputeFloatSize(3, Y); + } + if (hasZ) { + size += pb::CodedOutputStream.ComputeFloatSize(4, Z); + } + memoizedSerializedSize = size; + return size; + } + } + + #region Lite runtime methods + public override int GetHashCode() { + int hash = GetType().GetHashCode(); + if (hasTimestamp) hash ^= timestamp_.GetHashCode(); + if (hasX) hash ^= x_.GetHashCode(); + if (hasY) hash ^= y_.GetHashCode(); + if (hasZ) hash ^= z_.GetHashCode(); + return hash; + } + + public override bool Equals(object obj) { + AccelerometerEvent other = obj as AccelerometerEvent; + if (other == null) return false; + if (hasTimestamp != other.hasTimestamp || (hasTimestamp && !timestamp_.Equals(other.timestamp_))) return false; + if (hasX != other.hasX || (hasX && !x_.Equals(other.x_))) return false; + if (hasY != other.hasY || (hasY && !y_.Equals(other.y_))) return false; + if (hasZ != other.hasZ || (hasZ && !z_.Equals(other.z_))) return false; + return true; + } + + public override void PrintTo(global::System.IO.TextWriter writer) { + PrintField("timestamp", hasTimestamp, timestamp_, writer); + PrintField("x", hasX, x_, writer); + PrintField("y", hasY, y_, writer); + PrintField("z", hasZ, z_, writer); + } + #endregion + + public static AccelerometerEvent ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static AccelerometerEvent ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static AccelerometerEvent ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static AccelerometerEvent ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static AccelerometerEvent ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static AccelerometerEvent ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static AccelerometerEvent ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static AccelerometerEvent ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static AccelerometerEvent ParseFrom(pb::ICodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static AccelerometerEvent ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + private AccelerometerEvent MakeReadOnly() { + return this; + } + + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(AccelerometerEvent prototype) { + return new Builder(prototype); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() { + result = DefaultInstance; + resultIsReadOnly = true; + } + internal Builder(AccelerometerEvent cloneFrom) { + result = cloneFrom; + resultIsReadOnly = true; + } + + private bool resultIsReadOnly; + private AccelerometerEvent result; + + private AccelerometerEvent PrepareBuilder() { + if (resultIsReadOnly) { + AccelerometerEvent original = result; + result = new AccelerometerEvent(); + resultIsReadOnly = false; + MergeFrom(original); + } + return result; + } + + public override bool IsInitialized { + get { return result.IsInitialized; } + } + + protected override AccelerometerEvent MessageBeingBuilt { + get { return PrepareBuilder(); } + } + + public override Builder Clear() { + result = DefaultInstance; + resultIsReadOnly = true; + return this; + } + + public override Builder Clone() { + if (resultIsReadOnly) { + return new Builder(result); + } else { + return new Builder().MergeFrom(result); + } + } + + public override AccelerometerEvent DefaultInstanceForType { + get { return global::proto.PhoneEvent.Types.AccelerometerEvent.DefaultInstance; } + } + + public override AccelerometerEvent BuildPartial() { + if (resultIsReadOnly) { + return result; + } + resultIsReadOnly = true; + return result.MakeReadOnly(); + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is AccelerometerEvent) { + return MergeFrom((AccelerometerEvent) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(AccelerometerEvent other) { + if (other == global::proto.PhoneEvent.Types.AccelerometerEvent.DefaultInstance) return this; + PrepareBuilder(); + if (other.HasTimestamp) { + Timestamp = other.Timestamp; + } + if (other.HasX) { + X = other.X; + } + if (other.HasY) { + Y = other.Y; + } + if (other.HasZ) { + Z = other.Z; + } + return this; + } + + public override Builder MergeFrom(pb::ICodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + PrepareBuilder(); + uint tag; + string field_name; + while (input.ReadTag(out tag, out field_name)) { + if(tag == 0 && field_name != null) { + int field_ordinal = global::System.Array.BinarySearch(_accelerometerEventFieldNames, field_name, global::System.StringComparer.Ordinal); + if(field_ordinal >= 0) + tag = _accelerometerEventFieldTags[field_ordinal]; + else { + ParseUnknownField(input, extensionRegistry, tag, field_name); + continue; + } + } + switch (tag) { + case 0: { + throw pb::InvalidProtocolBufferException.InvalidTag(); + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag, field_name); + break; + } + case 8: { + result.hasTimestamp = input.ReadInt64(ref result.timestamp_); + break; + } + case 21: { + result.hasX = input.ReadFloat(ref result.x_); + break; + } + case 29: { + result.hasY = input.ReadFloat(ref result.y_); + break; + } + case 37: { + result.hasZ = input.ReadFloat(ref result.z_); + break; + } + } + } + + return this; + } + + + public bool HasTimestamp { + get { return result.hasTimestamp; } + } + public long Timestamp { + get { return result.Timestamp; } + set { SetTimestamp(value); } + } + public Builder SetTimestamp(long value) { + PrepareBuilder(); + result.hasTimestamp = true; + result.timestamp_ = value; + return this; + } + public Builder ClearTimestamp() { + PrepareBuilder(); + result.hasTimestamp = false; + result.timestamp_ = 0L; + return this; + } + + public bool HasX { + get { return result.hasX; } + } + public float X { + get { return result.X; } + set { SetX(value); } + } + public Builder SetX(float value) { + PrepareBuilder(); + result.hasX = true; + result.x_ = value; + return this; + } + public Builder ClearX() { + PrepareBuilder(); + result.hasX = false; + result.x_ = 0F; + return this; + } + + public bool HasY { + get { return result.hasY; } + } + public float Y { + get { return result.Y; } + set { SetY(value); } + } + public Builder SetY(float value) { + PrepareBuilder(); + result.hasY = true; + result.y_ = value; + return this; + } + public Builder ClearY() { + PrepareBuilder(); + result.hasY = false; + result.y_ = 0F; + return this; + } + + public bool HasZ { + get { return result.hasZ; } + } + public float Z { + get { return result.Z; } + set { SetZ(value); } + } + public Builder SetZ(float value) { + PrepareBuilder(); + result.hasZ = true; + result.z_ = value; + return this; + } + public Builder ClearZ() { + PrepareBuilder(); + result.hasZ = false; + result.z_ = 0F; + return this; + } + } + static AccelerometerEvent() { + object.ReferenceEquals(global::proto.Proto.PhoneEvent.Descriptor, null); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class DepthMapEvent : pb::GeneratedMessageLite { + private DepthMapEvent() { } + private static readonly DepthMapEvent defaultInstance = new DepthMapEvent().MakeReadOnly(); + private static readonly string[] _depthMapEventFieldNames = new string[] { "height", "timestamp", "width", "z_distances" }; + private static readonly uint[] _depthMapEventFieldTags = new uint[] { 24, 8, 16, 34 }; + public static DepthMapEvent DefaultInstance { + get { return defaultInstance; } + } + + public override DepthMapEvent DefaultInstanceForType { + get { return DefaultInstance; } + } + + protected override DepthMapEvent ThisMessage { + get { return this; } + } + + public const int TimestampFieldNumber = 1; + private bool hasTimestamp; + private long timestamp_; + public bool HasTimestamp { + get { return hasTimestamp; } + } + public long Timestamp { + get { return timestamp_; } + } + + public const int WidthFieldNumber = 2; + private bool hasWidth; + private int width_; + public bool HasWidth { + get { return hasWidth; } + } + public int Width { + get { return width_; } + } + + public const int HeightFieldNumber = 3; + private bool hasHeight; + private int height_; + public bool HasHeight { + get { return hasHeight; } + } + public int Height { + get { return height_; } + } + + public const int ZDistancesFieldNumber = 4; + private int zDistancesMemoizedSerializedSize; + private pbc::PopsicleList zDistances_ = new pbc::PopsicleList(); + public scg::IList ZDistancesList { + get { return pbc::Lists.AsReadOnly(zDistances_); } + } + public int ZDistancesCount { + get { return zDistances_.Count; } + } + public float GetZDistances(int index) { + return zDistances_[index]; + } + + public override bool IsInitialized { + get { + return true; + } + } + + public override void WriteTo(pb::ICodedOutputStream output) { + string[] field_names = _depthMapEventFieldNames; + if (hasTimestamp) { + output.WriteInt64(1, field_names[1], Timestamp); + } + if (hasWidth) { + output.WriteInt32(2, field_names[2], Width); + } + if (hasHeight) { + output.WriteInt32(3, field_names[0], Height); + } + if (zDistances_.Count > 0) { + output.WritePackedFloatArray(4, field_names[3], zDistancesMemoizedSerializedSize, zDistances_); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (hasTimestamp) { + size += pb::CodedOutputStream.ComputeInt64Size(1, Timestamp); + } + if (hasWidth) { + size += pb::CodedOutputStream.ComputeInt32Size(2, Width); + } + if (hasHeight) { + size += pb::CodedOutputStream.ComputeInt32Size(3, Height); + } + { + int dataSize = 0; + dataSize = 4 * zDistances_.Count; + size += dataSize; + if (zDistances_.Count != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize); + } + zDistancesMemoizedSerializedSize = dataSize; + } + memoizedSerializedSize = size; + return size; + } + } + + #region Lite runtime methods + public override int GetHashCode() { + int hash = GetType().GetHashCode(); + if (hasTimestamp) hash ^= timestamp_.GetHashCode(); + if (hasWidth) hash ^= width_.GetHashCode(); + if (hasHeight) hash ^= height_.GetHashCode(); + foreach(float i in zDistances_) + hash ^= i.GetHashCode(); + return hash; + } + + public override bool Equals(object obj) { + DepthMapEvent other = obj as DepthMapEvent; + if (other == null) return false; + if (hasTimestamp != other.hasTimestamp || (hasTimestamp && !timestamp_.Equals(other.timestamp_))) return false; + if (hasWidth != other.hasWidth || (hasWidth && !width_.Equals(other.width_))) return false; + if (hasHeight != other.hasHeight || (hasHeight && !height_.Equals(other.height_))) return false; + if(zDistances_.Count != other.zDistances_.Count) return false; + for(int ix=0; ix < zDistances_.Count; ix++) + if(!zDistances_[ix].Equals(other.zDistances_[ix])) return false; + return true; + } + + public override void PrintTo(global::System.IO.TextWriter writer) { + PrintField("timestamp", hasTimestamp, timestamp_, writer); + PrintField("width", hasWidth, width_, writer); + PrintField("height", hasHeight, height_, writer); + PrintField("z_distances", zDistances_, writer); + } + #endregion + + public static DepthMapEvent ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static DepthMapEvent ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static DepthMapEvent ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static DepthMapEvent ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static DepthMapEvent ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static DepthMapEvent ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static DepthMapEvent ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static DepthMapEvent ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static DepthMapEvent ParseFrom(pb::ICodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static DepthMapEvent ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + private DepthMapEvent MakeReadOnly() { + zDistances_.MakeReadOnly(); + return this; + } + + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(DepthMapEvent prototype) { + return new Builder(prototype); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() { + result = DefaultInstance; + resultIsReadOnly = true; + } + internal Builder(DepthMapEvent cloneFrom) { + result = cloneFrom; + resultIsReadOnly = true; + } + + private bool resultIsReadOnly; + private DepthMapEvent result; + + private DepthMapEvent PrepareBuilder() { + if (resultIsReadOnly) { + DepthMapEvent original = result; + result = new DepthMapEvent(); + resultIsReadOnly = false; + MergeFrom(original); + } + return result; + } + + public override bool IsInitialized { + get { return result.IsInitialized; } + } + + protected override DepthMapEvent MessageBeingBuilt { + get { return PrepareBuilder(); } + } + + public override Builder Clear() { + result = DefaultInstance; + resultIsReadOnly = true; + return this; + } + + public override Builder Clone() { + if (resultIsReadOnly) { + return new Builder(result); + } else { + return new Builder().MergeFrom(result); + } + } + + public override DepthMapEvent DefaultInstanceForType { + get { return global::proto.PhoneEvent.Types.DepthMapEvent.DefaultInstance; } + } + + public override DepthMapEvent BuildPartial() { + if (resultIsReadOnly) { + return result; + } + resultIsReadOnly = true; + return result.MakeReadOnly(); + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is DepthMapEvent) { + return MergeFrom((DepthMapEvent) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(DepthMapEvent other) { + if (other == global::proto.PhoneEvent.Types.DepthMapEvent.DefaultInstance) return this; + PrepareBuilder(); + if (other.HasTimestamp) { + Timestamp = other.Timestamp; + } + if (other.HasWidth) { + Width = other.Width; + } + if (other.HasHeight) { + Height = other.Height; + } + if (other.zDistances_.Count != 0) { + result.zDistances_.Add(other.zDistances_); + } + return this; + } + + public override Builder MergeFrom(pb::ICodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + PrepareBuilder(); + uint tag; + string field_name; + while (input.ReadTag(out tag, out field_name)) { + if(tag == 0 && field_name != null) { + int field_ordinal = global::System.Array.BinarySearch(_depthMapEventFieldNames, field_name, global::System.StringComparer.Ordinal); + if(field_ordinal >= 0) + tag = _depthMapEventFieldTags[field_ordinal]; + else { + ParseUnknownField(input, extensionRegistry, tag, field_name); + continue; + } + } + switch (tag) { + case 0: { + throw pb::InvalidProtocolBufferException.InvalidTag(); + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag, field_name); + break; + } + case 8: { + result.hasTimestamp = input.ReadInt64(ref result.timestamp_); + break; + } + case 16: { + result.hasWidth = input.ReadInt32(ref result.width_); + break; + } + case 24: { + result.hasHeight = input.ReadInt32(ref result.height_); + break; + } + case 34: + case 37: { + input.ReadFloatArray(tag, field_name, result.zDistances_); + break; + } + } + } + + return this; + } + + + public bool HasTimestamp { + get { return result.hasTimestamp; } + } + public long Timestamp { + get { return result.Timestamp; } + set { SetTimestamp(value); } + } + public Builder SetTimestamp(long value) { + PrepareBuilder(); + result.hasTimestamp = true; + result.timestamp_ = value; + return this; + } + public Builder ClearTimestamp() { + PrepareBuilder(); + result.hasTimestamp = false; + result.timestamp_ = 0L; + return this; + } + + public bool HasWidth { + get { return result.hasWidth; } + } + public int Width { + get { return result.Width; } + set { SetWidth(value); } + } + public Builder SetWidth(int value) { + PrepareBuilder(); + result.hasWidth = true; + result.width_ = value; + return this; + } + public Builder ClearWidth() { + PrepareBuilder(); + result.hasWidth = false; + result.width_ = 0; + return this; + } + + public bool HasHeight { + get { return result.hasHeight; } + } + public int Height { + get { return result.Height; } + set { SetHeight(value); } + } + public Builder SetHeight(int value) { + PrepareBuilder(); + result.hasHeight = true; + result.height_ = value; + return this; + } + public Builder ClearHeight() { + PrepareBuilder(); + result.hasHeight = false; + result.height_ = 0; + return this; + } + + public pbc::IPopsicleList ZDistancesList { + get { return PrepareBuilder().zDistances_; } + } + public int ZDistancesCount { + get { return result.ZDistancesCount; } + } + public float GetZDistances(int index) { + return result.GetZDistances(index); + } + public Builder SetZDistances(int index, float value) { + PrepareBuilder(); + result.zDistances_[index] = value; + return this; + } + public Builder AddZDistances(float value) { + PrepareBuilder(); + result.zDistances_.Add(value); + return this; + } + public Builder AddRangeZDistances(scg::IEnumerable values) { + PrepareBuilder(); + result.zDistances_.Add(values); + return this; + } + public Builder ClearZDistances() { + PrepareBuilder(); + result.zDistances_.Clear(); + return this; + } + } + static DepthMapEvent() { + object.ReferenceEquals(global::proto.Proto.PhoneEvent.Descriptor, null); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class OrientationEvent : pb::GeneratedMessageLite { + private OrientationEvent() { } + private static readonly OrientationEvent defaultInstance = new OrientationEvent().MakeReadOnly(); + private static readonly string[] _orientationEventFieldNames = new string[] { "timestamp", "w", "x", "y", "z" }; + private static readonly uint[] _orientationEventFieldTags = new uint[] { 8, 45, 21, 29, 37 }; + public static OrientationEvent DefaultInstance { + get { return defaultInstance; } + } + + public override OrientationEvent DefaultInstanceForType { + get { return DefaultInstance; } + } + + protected override OrientationEvent ThisMessage { + get { return this; } + } + + public const int TimestampFieldNumber = 1; + private bool hasTimestamp; + private long timestamp_; + public bool HasTimestamp { + get { return hasTimestamp; } + } + public long Timestamp { + get { return timestamp_; } + } + + public const int XFieldNumber = 2; + private bool hasX; + private float x_; + public bool HasX { + get { return hasX; } + } + public float X { + get { return x_; } + } + + public const int YFieldNumber = 3; + private bool hasY; + private float y_; + public bool HasY { + get { return hasY; } + } + public float Y { + get { return y_; } + } + + public const int ZFieldNumber = 4; + private bool hasZ; + private float z_; + public bool HasZ { + get { return hasZ; } + } + public float Z { + get { return z_; } + } + + public const int WFieldNumber = 5; + private bool hasW; + private float w_; + public bool HasW { + get { return hasW; } + } + public float W { + get { return w_; } + } + + public override bool IsInitialized { + get { + return true; + } + } + + public override void WriteTo(pb::ICodedOutputStream output) { + string[] field_names = _orientationEventFieldNames; + if (hasTimestamp) { + output.WriteInt64(1, field_names[0], Timestamp); + } + if (hasX) { + output.WriteFloat(2, field_names[2], X); + } + if (hasY) { + output.WriteFloat(3, field_names[3], Y); + } + if (hasZ) { + output.WriteFloat(4, field_names[4], Z); + } + if (hasW) { + output.WriteFloat(5, field_names[1], W); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (hasTimestamp) { + size += pb::CodedOutputStream.ComputeInt64Size(1, Timestamp); + } + if (hasX) { + size += pb::CodedOutputStream.ComputeFloatSize(2, X); + } + if (hasY) { + size += pb::CodedOutputStream.ComputeFloatSize(3, Y); + } + if (hasZ) { + size += pb::CodedOutputStream.ComputeFloatSize(4, Z); + } + if (hasW) { + size += pb::CodedOutputStream.ComputeFloatSize(5, W); + } + memoizedSerializedSize = size; + return size; + } + } + + #region Lite runtime methods + public override int GetHashCode() { + int hash = GetType().GetHashCode(); + if (hasTimestamp) hash ^= timestamp_.GetHashCode(); + if (hasX) hash ^= x_.GetHashCode(); + if (hasY) hash ^= y_.GetHashCode(); + if (hasZ) hash ^= z_.GetHashCode(); + if (hasW) hash ^= w_.GetHashCode(); + return hash; + } + + public override bool Equals(object obj) { + OrientationEvent other = obj as OrientationEvent; + if (other == null) return false; + if (hasTimestamp != other.hasTimestamp || (hasTimestamp && !timestamp_.Equals(other.timestamp_))) return false; + if (hasX != other.hasX || (hasX && !x_.Equals(other.x_))) return false; + if (hasY != other.hasY || (hasY && !y_.Equals(other.y_))) return false; + if (hasZ != other.hasZ || (hasZ && !z_.Equals(other.z_))) return false; + if (hasW != other.hasW || (hasW && !w_.Equals(other.w_))) return false; + return true; + } + + public override void PrintTo(global::System.IO.TextWriter writer) { + PrintField("timestamp", hasTimestamp, timestamp_, writer); + PrintField("x", hasX, x_, writer); + PrintField("y", hasY, y_, writer); + PrintField("z", hasZ, z_, writer); + PrintField("w", hasW, w_, writer); + } + #endregion + + public static OrientationEvent ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static OrientationEvent ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static OrientationEvent ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static OrientationEvent ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static OrientationEvent ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static OrientationEvent ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static OrientationEvent ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static OrientationEvent ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static OrientationEvent ParseFrom(pb::ICodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static OrientationEvent ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + private OrientationEvent MakeReadOnly() { + return this; + } + + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(OrientationEvent prototype) { + return new Builder(prototype); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() { + result = DefaultInstance; + resultIsReadOnly = true; + } + internal Builder(OrientationEvent cloneFrom) { + result = cloneFrom; + resultIsReadOnly = true; + } + + private bool resultIsReadOnly; + private OrientationEvent result; + + private OrientationEvent PrepareBuilder() { + if (resultIsReadOnly) { + OrientationEvent original = result; + result = new OrientationEvent(); + resultIsReadOnly = false; + MergeFrom(original); + } + return result; + } + + public override bool IsInitialized { + get { return result.IsInitialized; } + } + + protected override OrientationEvent MessageBeingBuilt { + get { return PrepareBuilder(); } + } + + public override Builder Clear() { + result = DefaultInstance; + resultIsReadOnly = true; + return this; + } + + public override Builder Clone() { + if (resultIsReadOnly) { + return new Builder(result); + } else { + return new Builder().MergeFrom(result); + } + } + + public override OrientationEvent DefaultInstanceForType { + get { return global::proto.PhoneEvent.Types.OrientationEvent.DefaultInstance; } + } + + public override OrientationEvent BuildPartial() { + if (resultIsReadOnly) { + return result; + } + resultIsReadOnly = true; + return result.MakeReadOnly(); + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is OrientationEvent) { + return MergeFrom((OrientationEvent) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(OrientationEvent other) { + if (other == global::proto.PhoneEvent.Types.OrientationEvent.DefaultInstance) return this; + PrepareBuilder(); + if (other.HasTimestamp) { + Timestamp = other.Timestamp; + } + if (other.HasX) { + X = other.X; + } + if (other.HasY) { + Y = other.Y; + } + if (other.HasZ) { + Z = other.Z; + } + if (other.HasW) { + W = other.W; + } + return this; + } + + public override Builder MergeFrom(pb::ICodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + PrepareBuilder(); + uint tag; + string field_name; + while (input.ReadTag(out tag, out field_name)) { + if(tag == 0 && field_name != null) { + int field_ordinal = global::System.Array.BinarySearch(_orientationEventFieldNames, field_name, global::System.StringComparer.Ordinal); + if(field_ordinal >= 0) + tag = _orientationEventFieldTags[field_ordinal]; + else { + ParseUnknownField(input, extensionRegistry, tag, field_name); + continue; + } + } + switch (tag) { + case 0: { + throw pb::InvalidProtocolBufferException.InvalidTag(); + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag, field_name); + break; + } + case 8: { + result.hasTimestamp = input.ReadInt64(ref result.timestamp_); + break; + } + case 21: { + result.hasX = input.ReadFloat(ref result.x_); + break; + } + case 29: { + result.hasY = input.ReadFloat(ref result.y_); + break; + } + case 37: { + result.hasZ = input.ReadFloat(ref result.z_); + break; + } + case 45: { + result.hasW = input.ReadFloat(ref result.w_); + break; + } + } + } + + return this; + } + + + public bool HasTimestamp { + get { return result.hasTimestamp; } + } + public long Timestamp { + get { return result.Timestamp; } + set { SetTimestamp(value); } + } + public Builder SetTimestamp(long value) { + PrepareBuilder(); + result.hasTimestamp = true; + result.timestamp_ = value; + return this; + } + public Builder ClearTimestamp() { + PrepareBuilder(); + result.hasTimestamp = false; + result.timestamp_ = 0L; + return this; + } + + public bool HasX { + get { return result.hasX; } + } + public float X { + get { return result.X; } + set { SetX(value); } + } + public Builder SetX(float value) { + PrepareBuilder(); + result.hasX = true; + result.x_ = value; + return this; + } + public Builder ClearX() { + PrepareBuilder(); + result.hasX = false; + result.x_ = 0F; + return this; + } + + public bool HasY { + get { return result.hasY; } + } + public float Y { + get { return result.Y; } + set { SetY(value); } + } + public Builder SetY(float value) { + PrepareBuilder(); + result.hasY = true; + result.y_ = value; + return this; + } + public Builder ClearY() { + PrepareBuilder(); + result.hasY = false; + result.y_ = 0F; + return this; + } + + public bool HasZ { + get { return result.hasZ; } + } + public float Z { + get { return result.Z; } + set { SetZ(value); } + } + public Builder SetZ(float value) { + PrepareBuilder(); + result.hasZ = true; + result.z_ = value; + return this; + } + public Builder ClearZ() { + PrepareBuilder(); + result.hasZ = false; + result.z_ = 0F; + return this; + } + + public bool HasW { + get { return result.hasW; } + } + public float W { + get { return result.W; } + set { SetW(value); } + } + public Builder SetW(float value) { + PrepareBuilder(); + result.hasW = true; + result.w_ = value; + return this; + } + public Builder ClearW() { + PrepareBuilder(); + result.hasW = false; + result.w_ = 0F; + return this; + } + } + static OrientationEvent() { + object.ReferenceEquals(global::proto.Proto.PhoneEvent.Descriptor, null); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class KeyEvent : pb::GeneratedMessageLite { + private KeyEvent() { } + private static readonly KeyEvent defaultInstance = new KeyEvent().MakeReadOnly(); + private static readonly string[] _keyEventFieldNames = new string[] { "action", "code" }; + private static readonly uint[] _keyEventFieldTags = new uint[] { 8, 16 }; + public static KeyEvent DefaultInstance { + get { return defaultInstance; } + } + + public override KeyEvent DefaultInstanceForType { + get { return DefaultInstance; } + } + + protected override KeyEvent ThisMessage { + get { return this; } + } + + public const int ActionFieldNumber = 1; + private bool hasAction; + private int action_; + public bool HasAction { + get { return hasAction; } + } + public int Action { + get { return action_; } + } + + public const int CodeFieldNumber = 2; + private bool hasCode; + private int code_; + public bool HasCode { + get { return hasCode; } + } + public int Code { + get { return code_; } + } + + public override bool IsInitialized { + get { + return true; + } + } + + public override void WriteTo(pb::ICodedOutputStream output) { + string[] field_names = _keyEventFieldNames; + if (hasAction) { + output.WriteInt32(1, field_names[0], Action); + } + if (hasCode) { + output.WriteInt32(2, field_names[1], Code); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (hasAction) { + size += pb::CodedOutputStream.ComputeInt32Size(1, Action); + } + if (hasCode) { + size += pb::CodedOutputStream.ComputeInt32Size(2, Code); + } + memoizedSerializedSize = size; + return size; + } + } + + #region Lite runtime methods + public override int GetHashCode() { + int hash = GetType().GetHashCode(); + if (hasAction) hash ^= action_.GetHashCode(); + if (hasCode) hash ^= code_.GetHashCode(); + return hash; + } + + public override bool Equals(object obj) { + KeyEvent other = obj as KeyEvent; + if (other == null) return false; + if (hasAction != other.hasAction || (hasAction && !action_.Equals(other.action_))) return false; + if (hasCode != other.hasCode || (hasCode && !code_.Equals(other.code_))) return false; + return true; + } + + public override void PrintTo(global::System.IO.TextWriter writer) { + PrintField("action", hasAction, action_, writer); + PrintField("code", hasCode, code_, writer); + } + #endregion + + public static KeyEvent ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static KeyEvent ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static KeyEvent ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static KeyEvent ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static KeyEvent ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static KeyEvent ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static KeyEvent ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static KeyEvent ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static KeyEvent ParseFrom(pb::ICodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static KeyEvent ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + private KeyEvent MakeReadOnly() { + return this; + } + + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(KeyEvent prototype) { + return new Builder(prototype); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() { + result = DefaultInstance; + resultIsReadOnly = true; + } + internal Builder(KeyEvent cloneFrom) { + result = cloneFrom; + resultIsReadOnly = true; + } + + private bool resultIsReadOnly; + private KeyEvent result; + + private KeyEvent PrepareBuilder() { + if (resultIsReadOnly) { + KeyEvent original = result; + result = new KeyEvent(); + resultIsReadOnly = false; + MergeFrom(original); + } + return result; + } + + public override bool IsInitialized { + get { return result.IsInitialized; } + } + + protected override KeyEvent MessageBeingBuilt { + get { return PrepareBuilder(); } + } + + public override Builder Clear() { + result = DefaultInstance; + resultIsReadOnly = true; + return this; + } + + public override Builder Clone() { + if (resultIsReadOnly) { + return new Builder(result); + } else { + return new Builder().MergeFrom(result); + } + } + + public override KeyEvent DefaultInstanceForType { + get { return global::proto.PhoneEvent.Types.KeyEvent.DefaultInstance; } + } + + public override KeyEvent BuildPartial() { + if (resultIsReadOnly) { + return result; + } + resultIsReadOnly = true; + return result.MakeReadOnly(); + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is KeyEvent) { + return MergeFrom((KeyEvent) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(KeyEvent other) { + if (other == global::proto.PhoneEvent.Types.KeyEvent.DefaultInstance) return this; + PrepareBuilder(); + if (other.HasAction) { + Action = other.Action; + } + if (other.HasCode) { + Code = other.Code; + } + return this; + } + + public override Builder MergeFrom(pb::ICodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + PrepareBuilder(); + uint tag; + string field_name; + while (input.ReadTag(out tag, out field_name)) { + if(tag == 0 && field_name != null) { + int field_ordinal = global::System.Array.BinarySearch(_keyEventFieldNames, field_name, global::System.StringComparer.Ordinal); + if(field_ordinal >= 0) + tag = _keyEventFieldTags[field_ordinal]; + else { + ParseUnknownField(input, extensionRegistry, tag, field_name); + continue; + } + } + switch (tag) { + case 0: { + throw pb::InvalidProtocolBufferException.InvalidTag(); + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag, field_name); + break; + } + case 8: { + result.hasAction = input.ReadInt32(ref result.action_); + break; + } + case 16: { + result.hasCode = input.ReadInt32(ref result.code_); + break; + } + } + } + + return this; + } + + + public bool HasAction { + get { return result.hasAction; } + } + public int Action { + get { return result.Action; } + set { SetAction(value); } + } + public Builder SetAction(int value) { + PrepareBuilder(); + result.hasAction = true; + result.action_ = value; + return this; + } + public Builder ClearAction() { + PrepareBuilder(); + result.hasAction = false; + result.action_ = 0; + return this; + } + + public bool HasCode { + get { return result.hasCode; } + } + public int Code { + get { return result.Code; } + set { SetCode(value); } + } + public Builder SetCode(int value) { + PrepareBuilder(); + result.hasCode = true; + result.code_ = value; + return this; + } + public Builder ClearCode() { + PrepareBuilder(); + result.hasCode = false; + result.code_ = 0; + return this; + } + } + static KeyEvent() { + object.ReferenceEquals(global::proto.Proto.PhoneEvent.Descriptor, null); + } + } + + } + #endregion + + public const int TypeFieldNumber = 1; + private bool hasType; + private global::proto.PhoneEvent.Types.Type type_ = global::proto.PhoneEvent.Types.Type.MOTION; + public bool HasType { + get { return hasType; } + } + public global::proto.PhoneEvent.Types.Type Type { + get { return type_; } + } + + public const int MotionEventFieldNumber = 2; + private bool hasMotionEvent; + private global::proto.PhoneEvent.Types.MotionEvent motionEvent_; + public bool HasMotionEvent { + get { return hasMotionEvent; } + } + public global::proto.PhoneEvent.Types.MotionEvent MotionEvent { + get { return motionEvent_ ?? global::proto.PhoneEvent.Types.MotionEvent.DefaultInstance; } + } + + public const int GyroscopeEventFieldNumber = 3; + private bool hasGyroscopeEvent; + private global::proto.PhoneEvent.Types.GyroscopeEvent gyroscopeEvent_; + public bool HasGyroscopeEvent { + get { return hasGyroscopeEvent; } + } + public global::proto.PhoneEvent.Types.GyroscopeEvent GyroscopeEvent { + get { return gyroscopeEvent_ ?? global::proto.PhoneEvent.Types.GyroscopeEvent.DefaultInstance; } + } + + public const int AccelerometerEventFieldNumber = 4; + private bool hasAccelerometerEvent; + private global::proto.PhoneEvent.Types.AccelerometerEvent accelerometerEvent_; + public bool HasAccelerometerEvent { + get { return hasAccelerometerEvent; } + } + public global::proto.PhoneEvent.Types.AccelerometerEvent AccelerometerEvent { + get { return accelerometerEvent_ ?? global::proto.PhoneEvent.Types.AccelerometerEvent.DefaultInstance; } + } + + public const int DepthMapEventFieldNumber = 5; + private bool hasDepthMapEvent; + private global::proto.PhoneEvent.Types.DepthMapEvent depthMapEvent_; + public bool HasDepthMapEvent { + get { return hasDepthMapEvent; } + } + public global::proto.PhoneEvent.Types.DepthMapEvent DepthMapEvent { + get { return depthMapEvent_ ?? global::proto.PhoneEvent.Types.DepthMapEvent.DefaultInstance; } + } + + public const int OrientationEventFieldNumber = 6; + private bool hasOrientationEvent; + private global::proto.PhoneEvent.Types.OrientationEvent orientationEvent_; + public bool HasOrientationEvent { + get { return hasOrientationEvent; } + } + public global::proto.PhoneEvent.Types.OrientationEvent OrientationEvent { + get { return orientationEvent_ ?? global::proto.PhoneEvent.Types.OrientationEvent.DefaultInstance; } + } + + public const int KeyEventFieldNumber = 7; + private bool hasKeyEvent; + private global::proto.PhoneEvent.Types.KeyEvent keyEvent_; + public bool HasKeyEvent { + get { return hasKeyEvent; } + } + public global::proto.PhoneEvent.Types.KeyEvent KeyEvent { + get { return keyEvent_ ?? global::proto.PhoneEvent.Types.KeyEvent.DefaultInstance; } + } + + public override bool IsInitialized { + get { + return true; + } + } + + public override void WriteTo(pb::ICodedOutputStream output) { + string[] field_names = _phoneEventFieldNames; + if (hasType) { + output.WriteEnum(1, field_names[6], (int) Type, Type); + } + if (hasMotionEvent) { + output.WriteMessage(2, field_names[4], MotionEvent); + } + if (hasGyroscopeEvent) { + output.WriteMessage(3, field_names[2], GyroscopeEvent); + } + if (hasAccelerometerEvent) { + output.WriteMessage(4, field_names[0], AccelerometerEvent); + } + if (hasDepthMapEvent) { + output.WriteMessage(5, field_names[1], DepthMapEvent); + } + if (hasOrientationEvent) { + output.WriteMessage(6, field_names[5], OrientationEvent); + } + if (hasKeyEvent) { + output.WriteMessage(7, field_names[3], KeyEvent); + } + } + + private int memoizedSerializedSize = -1; + public override int SerializedSize { + get { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (hasType) { + size += pb::CodedOutputStream.ComputeEnumSize(1, (int) Type); + } + if (hasMotionEvent) { + size += pb::CodedOutputStream.ComputeMessageSize(2, MotionEvent); + } + if (hasGyroscopeEvent) { + size += pb::CodedOutputStream.ComputeMessageSize(3, GyroscopeEvent); + } + if (hasAccelerometerEvent) { + size += pb::CodedOutputStream.ComputeMessageSize(4, AccelerometerEvent); + } + if (hasDepthMapEvent) { + size += pb::CodedOutputStream.ComputeMessageSize(5, DepthMapEvent); + } + if (hasOrientationEvent) { + size += pb::CodedOutputStream.ComputeMessageSize(6, OrientationEvent); + } + if (hasKeyEvent) { + size += pb::CodedOutputStream.ComputeMessageSize(7, KeyEvent); + } + memoizedSerializedSize = size; + return size; + } + } + + #region Lite runtime methods + public override int GetHashCode() { + int hash = GetType().GetHashCode(); + if (hasType) hash ^= type_.GetHashCode(); + if (hasMotionEvent) hash ^= motionEvent_.GetHashCode(); + if (hasGyroscopeEvent) hash ^= gyroscopeEvent_.GetHashCode(); + if (hasAccelerometerEvent) hash ^= accelerometerEvent_.GetHashCode(); + if (hasDepthMapEvent) hash ^= depthMapEvent_.GetHashCode(); + if (hasOrientationEvent) hash ^= orientationEvent_.GetHashCode(); + if (hasKeyEvent) hash ^= keyEvent_.GetHashCode(); + return hash; + } + + public override bool Equals(object obj) { + PhoneEvent other = obj as PhoneEvent; + if (other == null) return false; + if (hasType != other.hasType || (hasType && !type_.Equals(other.type_))) return false; + if (hasMotionEvent != other.hasMotionEvent || (hasMotionEvent && !motionEvent_.Equals(other.motionEvent_))) return false; + if (hasGyroscopeEvent != other.hasGyroscopeEvent || (hasGyroscopeEvent && !gyroscopeEvent_.Equals(other.gyroscopeEvent_))) return false; + if (hasAccelerometerEvent != other.hasAccelerometerEvent || (hasAccelerometerEvent && !accelerometerEvent_.Equals(other.accelerometerEvent_))) return false; + if (hasDepthMapEvent != other.hasDepthMapEvent || (hasDepthMapEvent && !depthMapEvent_.Equals(other.depthMapEvent_))) return false; + if (hasOrientationEvent != other.hasOrientationEvent || (hasOrientationEvent && !orientationEvent_.Equals(other.orientationEvent_))) return false; + if (hasKeyEvent != other.hasKeyEvent || (hasKeyEvent && !keyEvent_.Equals(other.keyEvent_))) return false; + return true; + } + + public override void PrintTo(global::System.IO.TextWriter writer) { + PrintField("type", hasType, type_, writer); + PrintField("motion_event", hasMotionEvent, motionEvent_, writer); + PrintField("gyroscope_event", hasGyroscopeEvent, gyroscopeEvent_, writer); + PrintField("accelerometer_event", hasAccelerometerEvent, accelerometerEvent_, writer); + PrintField("depth_map_event", hasDepthMapEvent, depthMapEvent_, writer); + PrintField("orientation_event", hasOrientationEvent, orientationEvent_, writer); + PrintField("key_event", hasKeyEvent, keyEvent_, writer); + } + #endregion + + public static PhoneEvent ParseFrom(pb::ByteString data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static PhoneEvent ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static PhoneEvent ParseFrom(byte[] data) { + return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed(); + } + public static PhoneEvent ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed(); + } + public static PhoneEvent ParseFrom(global::System.IO.Stream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static PhoneEvent ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + public static PhoneEvent ParseDelimitedFrom(global::System.IO.Stream input) { + return CreateBuilder().MergeDelimitedFrom(input).BuildParsed(); + } + public static PhoneEvent ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) { + return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed(); + } + public static PhoneEvent ParseFrom(pb::ICodedInputStream input) { + return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed(); + } + public static PhoneEvent ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed(); + } + private PhoneEvent MakeReadOnly() { + return this; + } + + public static Builder CreateBuilder() { return new Builder(); } + public override Builder ToBuilder() { return CreateBuilder(this); } + public override Builder CreateBuilderForType() { return new Builder(); } + public static Builder CreateBuilder(PhoneEvent prototype) { + return new Builder(prototype); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")] + public sealed partial class Builder : pb::GeneratedBuilderLite { + protected override Builder ThisBuilder { + get { return this; } + } + public Builder() { + result = DefaultInstance; + resultIsReadOnly = true; + } + internal Builder(PhoneEvent cloneFrom) { + result = cloneFrom; + resultIsReadOnly = true; + } + + private bool resultIsReadOnly; + private PhoneEvent result; + + private PhoneEvent PrepareBuilder() { + if (resultIsReadOnly) { + PhoneEvent original = result; + result = new PhoneEvent(); + resultIsReadOnly = false; + MergeFrom(original); + } + return result; + } + + public override bool IsInitialized { + get { return result.IsInitialized; } + } + + protected override PhoneEvent MessageBeingBuilt { + get { return PrepareBuilder(); } + } + + public override Builder Clear() { + result = DefaultInstance; + resultIsReadOnly = true; + return this; + } + + public override Builder Clone() { + if (resultIsReadOnly) { + return new Builder(result); + } else { + return new Builder().MergeFrom(result); + } + } + + public override PhoneEvent DefaultInstanceForType { + get { return global::proto.PhoneEvent.DefaultInstance; } + } + + public override PhoneEvent BuildPartial() { + if (resultIsReadOnly) { + return result; + } + resultIsReadOnly = true; + return result.MakeReadOnly(); + } + + public override Builder MergeFrom(pb::IMessageLite other) { + if (other is PhoneEvent) { + return MergeFrom((PhoneEvent) other); + } else { + base.MergeFrom(other); + return this; + } + } + + public override Builder MergeFrom(PhoneEvent other) { + if (other == global::proto.PhoneEvent.DefaultInstance) return this; + PrepareBuilder(); + if (other.HasType) { + Type = other.Type; + } + if (other.HasMotionEvent) { + MergeMotionEvent(other.MotionEvent); + } + if (other.HasGyroscopeEvent) { + MergeGyroscopeEvent(other.GyroscopeEvent); + } + if (other.HasAccelerometerEvent) { + MergeAccelerometerEvent(other.AccelerometerEvent); + } + if (other.HasDepthMapEvent) { + MergeDepthMapEvent(other.DepthMapEvent); + } + if (other.HasOrientationEvent) { + MergeOrientationEvent(other.OrientationEvent); + } + if (other.HasKeyEvent) { + MergeKeyEvent(other.KeyEvent); + } + return this; + } + + public override Builder MergeFrom(pb::ICodedInputStream input) { + return MergeFrom(input, pb::ExtensionRegistry.Empty); + } + + public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) { + PrepareBuilder(); + uint tag; + string field_name; + while (input.ReadTag(out tag, out field_name)) { + if(tag == 0 && field_name != null) { + int field_ordinal = global::System.Array.BinarySearch(_phoneEventFieldNames, field_name, global::System.StringComparer.Ordinal); + if(field_ordinal >= 0) + tag = _phoneEventFieldTags[field_ordinal]; + else { + ParseUnknownField(input, extensionRegistry, tag, field_name); + continue; + } + } + switch (tag) { + case 0: { + throw pb::InvalidProtocolBufferException.InvalidTag(); + } + default: { + if (pb::WireFormat.IsEndGroupTag(tag)) { + return this; + } + ParseUnknownField(input, extensionRegistry, tag, field_name); + break; + } + case 8: { + object unknown; + if(input.ReadEnum(ref result.type_, out unknown)) { + result.hasType = true; + } else if(unknown is int) { + } + break; + } + case 18: { + global::proto.PhoneEvent.Types.MotionEvent.Builder subBuilder = global::proto.PhoneEvent.Types.MotionEvent.CreateBuilder(); + if (result.hasMotionEvent) { + subBuilder.MergeFrom(MotionEvent); + } + input.ReadMessage(subBuilder, extensionRegistry); + MotionEvent = subBuilder.BuildPartial(); + break; + } + case 26: { + global::proto.PhoneEvent.Types.GyroscopeEvent.Builder subBuilder = global::proto.PhoneEvent.Types.GyroscopeEvent.CreateBuilder(); + if (result.hasGyroscopeEvent) { + subBuilder.MergeFrom(GyroscopeEvent); + } + input.ReadMessage(subBuilder, extensionRegistry); + GyroscopeEvent = subBuilder.BuildPartial(); + break; + } + case 34: { + global::proto.PhoneEvent.Types.AccelerometerEvent.Builder subBuilder = global::proto.PhoneEvent.Types.AccelerometerEvent.CreateBuilder(); + if (result.hasAccelerometerEvent) { + subBuilder.MergeFrom(AccelerometerEvent); + } + input.ReadMessage(subBuilder, extensionRegistry); + AccelerometerEvent = subBuilder.BuildPartial(); + break; + } + case 42: { + global::proto.PhoneEvent.Types.DepthMapEvent.Builder subBuilder = global::proto.PhoneEvent.Types.DepthMapEvent.CreateBuilder(); + if (result.hasDepthMapEvent) { + subBuilder.MergeFrom(DepthMapEvent); + } + input.ReadMessage(subBuilder, extensionRegistry); + DepthMapEvent = subBuilder.BuildPartial(); + break; + } + case 50: { + global::proto.PhoneEvent.Types.OrientationEvent.Builder subBuilder = global::proto.PhoneEvent.Types.OrientationEvent.CreateBuilder(); + if (result.hasOrientationEvent) { + subBuilder.MergeFrom(OrientationEvent); + } + input.ReadMessage(subBuilder, extensionRegistry); + OrientationEvent = subBuilder.BuildPartial(); + break; + } + case 58: { + global::proto.PhoneEvent.Types.KeyEvent.Builder subBuilder = global::proto.PhoneEvent.Types.KeyEvent.CreateBuilder(); + if (result.hasKeyEvent) { + subBuilder.MergeFrom(KeyEvent); + } + input.ReadMessage(subBuilder, extensionRegistry); + KeyEvent = subBuilder.BuildPartial(); + break; + } + } + } + + return this; + } + + + public bool HasType { + get { return result.hasType; } + } + public global::proto.PhoneEvent.Types.Type Type { + get { return result.Type; } + set { SetType(value); } + } + public Builder SetType(global::proto.PhoneEvent.Types.Type value) { + PrepareBuilder(); + result.hasType = true; + result.type_ = value; + return this; + } + public Builder ClearType() { + PrepareBuilder(); + result.hasType = false; + result.type_ = global::proto.PhoneEvent.Types.Type.MOTION; + return this; + } + + public bool HasMotionEvent { + get { return result.hasMotionEvent; } + } + public global::proto.PhoneEvent.Types.MotionEvent MotionEvent { + get { return result.MotionEvent; } + set { SetMotionEvent(value); } + } + public Builder SetMotionEvent(global::proto.PhoneEvent.Types.MotionEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + result.hasMotionEvent = true; + result.motionEvent_ = value; + return this; + } + public Builder SetMotionEvent(global::proto.PhoneEvent.Types.MotionEvent.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + PrepareBuilder(); + result.hasMotionEvent = true; + result.motionEvent_ = builderForValue.Build(); + return this; + } + public Builder MergeMotionEvent(global::proto.PhoneEvent.Types.MotionEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + if (result.hasMotionEvent && + result.motionEvent_ != global::proto.PhoneEvent.Types.MotionEvent.DefaultInstance) { + result.motionEvent_ = global::proto.PhoneEvent.Types.MotionEvent.CreateBuilder(result.motionEvent_).MergeFrom(value).BuildPartial(); + } else { + result.motionEvent_ = value; + } + result.hasMotionEvent = true; + return this; + } + public Builder ClearMotionEvent() { + PrepareBuilder(); + result.hasMotionEvent = false; + result.motionEvent_ = null; + return this; + } + + public bool HasGyroscopeEvent { + get { return result.hasGyroscopeEvent; } + } + public global::proto.PhoneEvent.Types.GyroscopeEvent GyroscopeEvent { + get { return result.GyroscopeEvent; } + set { SetGyroscopeEvent(value); } + } + public Builder SetGyroscopeEvent(global::proto.PhoneEvent.Types.GyroscopeEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + result.hasGyroscopeEvent = true; + result.gyroscopeEvent_ = value; + return this; + } + public Builder SetGyroscopeEvent(global::proto.PhoneEvent.Types.GyroscopeEvent.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + PrepareBuilder(); + result.hasGyroscopeEvent = true; + result.gyroscopeEvent_ = builderForValue.Build(); + return this; + } + public Builder MergeGyroscopeEvent(global::proto.PhoneEvent.Types.GyroscopeEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + if (result.hasGyroscopeEvent && + result.gyroscopeEvent_ != global::proto.PhoneEvent.Types.GyroscopeEvent.DefaultInstance) { + result.gyroscopeEvent_ = global::proto.PhoneEvent.Types.GyroscopeEvent.CreateBuilder(result.gyroscopeEvent_).MergeFrom(value).BuildPartial(); + } else { + result.gyroscopeEvent_ = value; + } + result.hasGyroscopeEvent = true; + return this; + } + public Builder ClearGyroscopeEvent() { + PrepareBuilder(); + result.hasGyroscopeEvent = false; + result.gyroscopeEvent_ = null; + return this; + } + + public bool HasAccelerometerEvent { + get { return result.hasAccelerometerEvent; } + } + public global::proto.PhoneEvent.Types.AccelerometerEvent AccelerometerEvent { + get { return result.AccelerometerEvent; } + set { SetAccelerometerEvent(value); } + } + public Builder SetAccelerometerEvent(global::proto.PhoneEvent.Types.AccelerometerEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + result.hasAccelerometerEvent = true; + result.accelerometerEvent_ = value; + return this; + } + public Builder SetAccelerometerEvent(global::proto.PhoneEvent.Types.AccelerometerEvent.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + PrepareBuilder(); + result.hasAccelerometerEvent = true; + result.accelerometerEvent_ = builderForValue.Build(); + return this; + } + public Builder MergeAccelerometerEvent(global::proto.PhoneEvent.Types.AccelerometerEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + if (result.hasAccelerometerEvent && + result.accelerometerEvent_ != global::proto.PhoneEvent.Types.AccelerometerEvent.DefaultInstance) { + result.accelerometerEvent_ = global::proto.PhoneEvent.Types.AccelerometerEvent.CreateBuilder(result.accelerometerEvent_).MergeFrom(value).BuildPartial(); + } else { + result.accelerometerEvent_ = value; + } + result.hasAccelerometerEvent = true; + return this; + } + public Builder ClearAccelerometerEvent() { + PrepareBuilder(); + result.hasAccelerometerEvent = false; + result.accelerometerEvent_ = null; + return this; + } + + public bool HasDepthMapEvent { + get { return result.hasDepthMapEvent; } + } + public global::proto.PhoneEvent.Types.DepthMapEvent DepthMapEvent { + get { return result.DepthMapEvent; } + set { SetDepthMapEvent(value); } + } + public Builder SetDepthMapEvent(global::proto.PhoneEvent.Types.DepthMapEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + result.hasDepthMapEvent = true; + result.depthMapEvent_ = value; + return this; + } + public Builder SetDepthMapEvent(global::proto.PhoneEvent.Types.DepthMapEvent.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + PrepareBuilder(); + result.hasDepthMapEvent = true; + result.depthMapEvent_ = builderForValue.Build(); + return this; + } + public Builder MergeDepthMapEvent(global::proto.PhoneEvent.Types.DepthMapEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + if (result.hasDepthMapEvent && + result.depthMapEvent_ != global::proto.PhoneEvent.Types.DepthMapEvent.DefaultInstance) { + result.depthMapEvent_ = global::proto.PhoneEvent.Types.DepthMapEvent.CreateBuilder(result.depthMapEvent_).MergeFrom(value).BuildPartial(); + } else { + result.depthMapEvent_ = value; + } + result.hasDepthMapEvent = true; + return this; + } + public Builder ClearDepthMapEvent() { + PrepareBuilder(); + result.hasDepthMapEvent = false; + result.depthMapEvent_ = null; + return this; + } + + public bool HasOrientationEvent { + get { return result.hasOrientationEvent; } + } + public global::proto.PhoneEvent.Types.OrientationEvent OrientationEvent { + get { return result.OrientationEvent; } + set { SetOrientationEvent(value); } + } + public Builder SetOrientationEvent(global::proto.PhoneEvent.Types.OrientationEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + result.hasOrientationEvent = true; + result.orientationEvent_ = value; + return this; + } + public Builder SetOrientationEvent(global::proto.PhoneEvent.Types.OrientationEvent.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + PrepareBuilder(); + result.hasOrientationEvent = true; + result.orientationEvent_ = builderForValue.Build(); + return this; + } + public Builder MergeOrientationEvent(global::proto.PhoneEvent.Types.OrientationEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + if (result.hasOrientationEvent && + result.orientationEvent_ != global::proto.PhoneEvent.Types.OrientationEvent.DefaultInstance) { + result.orientationEvent_ = global::proto.PhoneEvent.Types.OrientationEvent.CreateBuilder(result.orientationEvent_).MergeFrom(value).BuildPartial(); + } else { + result.orientationEvent_ = value; + } + result.hasOrientationEvent = true; + return this; + } + public Builder ClearOrientationEvent() { + PrepareBuilder(); + result.hasOrientationEvent = false; + result.orientationEvent_ = null; + return this; + } + + public bool HasKeyEvent { + get { return result.hasKeyEvent; } + } + public global::proto.PhoneEvent.Types.KeyEvent KeyEvent { + get { return result.KeyEvent; } + set { SetKeyEvent(value); } + } + public Builder SetKeyEvent(global::proto.PhoneEvent.Types.KeyEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + result.hasKeyEvent = true; + result.keyEvent_ = value; + return this; + } + public Builder SetKeyEvent(global::proto.PhoneEvent.Types.KeyEvent.Builder builderForValue) { + pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue"); + PrepareBuilder(); + result.hasKeyEvent = true; + result.keyEvent_ = builderForValue.Build(); + return this; + } + public Builder MergeKeyEvent(global::proto.PhoneEvent.Types.KeyEvent value) { + pb::ThrowHelper.ThrowIfNull(value, "value"); + PrepareBuilder(); + if (result.hasKeyEvent && + result.keyEvent_ != global::proto.PhoneEvent.Types.KeyEvent.DefaultInstance) { + result.keyEvent_ = global::proto.PhoneEvent.Types.KeyEvent.CreateBuilder(result.keyEvent_).MergeFrom(value).BuildPartial(); + } else { + result.keyEvent_ = value; + } + result.hasKeyEvent = true; + return this; + } + public Builder ClearKeyEvent() { + PrepareBuilder(); + result.hasKeyEvent = false; + result.keyEvent_ = null; + return this; + } + } + static PhoneEvent() { + object.ReferenceEquals(global::proto.Proto.PhoneEvent.Descriptor, null); + } + } + + #endregion + +} +/// @endcond + +#endregion Designer generated code diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/PhoneEvent.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/PhoneEvent.cs.meta new file mode 100644 index 0000000..a96e927 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/Emulator/PhoneEvent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1a6b456eb0cd540a489e0f82c377b187 +timeCreated: 1462046540 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/IControllerProvider.cs b/Assets/GoogleVR/Scripts/Controller/Internal/IControllerProvider.cs new file mode 100644 index 0000000..5b03e51 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/IControllerProvider.cs @@ -0,0 +1,41 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// // GVR native integration. +using System; + +/// @cond +namespace Gvr.Internal { + /// Internal interface that abstracts an implementation of a controller. + /// + /// Each platform has a different concrete implementation of a Controller Provider. + /// For example, if running on the Unity Editor, we use an implementation that + /// communicates with the controller emulator via USB or WiFi. If running on a real + /// Android device, we use an implementation that uses the underlying Daydream controller API. + interface IControllerProvider { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + /// Notifies the controller provider that the application has paused. + void OnPause(); + + /// Notifies the controller provider that the application has resumed. + void OnResume(); + + /// Reads the controller's current state and stores it in outState. + void ReadState(ControllerState outState); +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } +} +/// @endcond + diff --git a/Assets/GoogleVR/Scripts/Controller/Internal/IControllerProvider.cs.meta b/Assets/GoogleVR/Scripts/Controller/Internal/IControllerProvider.cs.meta new file mode 100644 index 0000000..915d314 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Controller/Internal/IControllerProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a546592901a23411d99a5fef0ada01e7 +timeCreated: 1462043673 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem.meta b/Assets/GoogleVR/Scripts/EventSystem.meta new file mode 100644 index 0000000..c843c0e --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3eff84475c3a4453f9b3f655b1b89332 +folderAsset: yes +timeCreated: 1477613910 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointer.cs b/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointer.cs new file mode 100644 index 0000000..802bfab --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointer.cs @@ -0,0 +1,152 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; + +/// This abstract class should be implemented for pointer based input, and used with +/// the GvrPointerInputModule script. +/// +/// It provides methods called on pointer interaction with in-game objects and UI, +/// trigger events, and 'BaseInputModule' class state changes. +/// +/// To have the methods called, an instance of this (implemented) class must be +/// registered with the **GvrPointerManager** script on 'OnEnable' by calling +/// GvrPointerManager.OnPointerCreated. +/// A registered instance should also un-register itself at 'OnDisable' calls +/// by setting the **GvrPointerManager.Pointer** static property +/// to null. +/// +/// This abstract class should be implemented by pointers doing 1 of 2 things: +/// 1. Responding to movement of the users head (Cardboard gaze-based-pointer). +/// 2. Responding to the movement of the daydream controller (Daydream 3D pointer). +public abstract class GvrBasePointer { + + /// Convenience function to access what the pointer is currently hitting. + public RaycastResult CurrentRaycastResult { + get { + GvrPointerInputModule inputModule = GvrPointerInputModule.FindInputModule(); + if (inputModule == null) { + return new RaycastResult(); + } + + if (inputModule.Impl == null) { + return new RaycastResult(); + } + + if (inputModule.Impl.CurrentEventData == null) { + return new RaycastResult(); + } + + return inputModule.Impl.CurrentEventData.pointerCurrentRaycast; + } + } + + /// This is used by GvrBasePointerRaycaster to determine if the + /// enterRadius or the exitRadius should be used for the raycast. + /// It is set by GvrPointerInputModule and doesn't need to be controlled manually. + public bool ShouldUseExitRadiusForRaycast { get; set; } + + /// Returns the transform that represents this pointer. + /// It is used by GvrBasePointerRaycaster as the origin of the ray. + public virtual Transform PointerTransform { get; set; } + + /// Returns the point that represents the reticle position + /// It is used by the keyboard as the end of the ray. + public abstract Vector3 LineEndPoint { get; } + + /// Returns the max distance this pointer will be rendered at from the camera. + /// This is used by GvrBasePointerRaycaster to calculate the ray when using + /// the default "Camera" RaycastMode. See GvrBasePointerRaycaster.cs for details. + public abstract float MaxPointerDistance { get; } + + public virtual bool TriggerDown { + get { + bool isTriggerDown = Input.GetMouseButtonDown(0); +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + return isTriggerDown || GvrController.ClickButtonDown; +#else + return isTriggerDown; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + } + + /// If true, the trigger is currently being pressed. This is not + /// an event: it represents the trigger's state (it remains true while the trigger is being + /// pressed). + /// Defaults to GvrController.ClickButton, can be overridden to change the trigger. + public virtual bool Triggering { + get { + bool isTriggering = Input.GetMouseButton(0); +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + return isTriggering || GvrController.ClickButton; +#else + return isTriggering; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + } + + public virtual void OnStart() { + GvrPointerManager.OnPointerCreated(this); + } + + /// This is called when the 'BaseInputModule' system should be enabled. + public abstract void OnInputModuleEnabled(); + + /// This is called when the 'BaseInputModule' system should be disabled. + public abstract void OnInputModuleDisabled(); + + /// Called when the pointer is facing a valid GameObject. This can be a 3D + /// or UI element. + /// + /// **raycastResult** is the hit detection result for the object being pointed at. + /// **ray** is the ray that was cast to determine the raycastResult. + /// **isInteractive** is true if the object being pointed at is interactive. + public abstract void OnPointerEnter(RaycastResult rayastResult, Ray ray, + bool isInteractive); + + /// Called every frame the user is still pointing at a valid GameObject. This + /// can be a 3D or UI element. + /// + /// **raycastResult** is the hit detection result for the object being pointed at. + /// **ray** is the ray that was cast to determine the raycastResult. + /// **isInteractive** is true if the object being pointed at is interactive. + public abstract void OnPointerHover(RaycastResult rayastResult, Ray ray, + bool isInteractive); + + /// Called when the pointer no longer faces an object previously + /// intersected with a ray projected from the camera. + /// This is also called just before **OnInputModuleDisabled** + /// previousObject will be null in this case. + /// + /// **previousObject** is the object that was being pointed at the previous frame. + public abstract void OnPointerExit(GameObject previousObject); + + /// Called when a click is initiated. + public abstract void OnPointerClickDown(); + + /// Called when click is finished. + public abstract void OnPointerClickUp(); + + /// Return the radius of the pointer. It is used by GvrPointerPhysicsRaycaster when + /// searching for valid pointer targets. If a radius is 0, then a ray is used to find + /// a valid pointer target. Otherwise it will use a SphereCast. + /// The *enterRadius* is used for finding new targets while the *exitRadius* + /// is used to see if you are still nearby the object currently pointed at + /// to avoid a flickering effect when just at the border of the intersection. + /// + /// NOTE: This is only works with GvrPointerPhysicsRaycaster. To use it with uGUI, + /// add 3D colliders to your canvas elements. + public abstract void GetPointerRadius(out float enterRadius, out float exitRadius); +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointer.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointer.cs.meta new file mode 100644 index 0000000..2e14f87 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 41c83891d500f43ca90ce70315712c84 +timeCreated: 1472600806 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointerRaycaster.cs b/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointerRaycaster.cs new file mode 100644 index 0000000..b6b5a75 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointerRaycaster.cs @@ -0,0 +1,124 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; + +/// This script provides shared functionality used by all Gvr raycasters. +public abstract class GvrBasePointerRaycaster : BaseRaycaster { + public enum RaycastMode { + /// Default method for casting ray. + /// Casts a ray from the camera through the target of the pointer. + /// This is ideal for reticles that are always rendered on top. + /// The object that is selected will always be the object that appears + /// underneath the reticle from the perspective of the camera. + /// This also prevents the reticle from appearing to "jump" when it starts/stops hitting an object. + /// + /// Note: This will prevent the user from pointing around an object to hit something that is out of sight. + /// This isn't a problem in a typical use case. + Camera, + /// Cast a ray directly from the pointer origin. + /// This is ideal for full-length laser pointers. + Direct + } + + /// Determines which raycast mode to use for this raycaster. + public RaycastMode raycastMode = RaycastMode.Camera; + + private Ray lastRay; + + /// Returns the pointer's maximum distance from the pointer's origin. + public float MaxPointerDistance { + get { + if (GvrPointerManager.Pointer == null) { + return 0.0f; + } + + return GvrPointerManager.Pointer.MaxPointerDistance; + } + } + + /// Returns the pointer's radius to use for the raycast. + public float PointerRadius { + get { + if (GvrPointerManager.Pointer == null) { + return 0.0f; + } + + float enterRadius, exitRadius; + GvrPointerManager.Pointer.GetPointerRadius(out enterRadius, out exitRadius); + if (GvrPointerManager.Pointer.ShouldUseExitRadiusForRaycast) { + return exitRadius; + } else { + return enterRadius; + } + } + } + + protected GvrBasePointerRaycaster() { + } + + /// Returns true if the pointer and the pointer's transform are both + /// available through the GvrPointerManager. + public bool IsPointerAvailable() { + if (GvrPointerManager.Pointer == null) { + return false; + } + + if (GvrPointerManager.Pointer.PointerTransform == null) { + return false; + } + + return true; + } + + public Ray GetLastRay() { + return lastRay; + } + + /// Calculates the ray to use for raycasting based on + /// the selected raycast mode. + protected Ray GetRay() { + if (!IsPointerAvailable()) { + Debug.LogError("Calling GetRay when the pointer isn't available."); + lastRay = new Ray(); + return lastRay; + } + + Transform pointerTransform = GvrPointerManager.Pointer.PointerTransform; + + switch (raycastMode) { + case RaycastMode.Camera: + Vector3 rayPointerStart = pointerTransform.position; + Vector3 rayPointerEnd = rayPointerStart + (pointerTransform.forward * MaxPointerDistance); + + Vector3 cameraLocation = Camera.main.transform.position; + Vector3 finalRayDirection = rayPointerEnd - cameraLocation; + finalRayDirection.Normalize(); + + Vector3 finalRayStart = cameraLocation + (finalRayDirection * Camera.main.nearClipPlane); + + lastRay = new Ray(finalRayStart, finalRayDirection); + break; + case RaycastMode.Direct: + lastRay = new Ray(pointerTransform.position, pointerTransform.forward); + break; + default: + lastRay = new Ray(); + break; + } + + return lastRay; + } +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointerRaycaster.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointerRaycaster.cs.meta new file mode 100644 index 0000000..f0c22b2 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrBasePointerRaycaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b05767d6e8b854cd0987b344898cc15d +timeCreated: 1478543740 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrEventInterfacesExtension.cs b/Assets/GoogleVR/Scripts/EventSystem/GvrEventInterfacesExtension.cs new file mode 100644 index 0000000..81f6b29 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrEventInterfacesExtension.cs @@ -0,0 +1,22 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine.EventSystems; + +/// Interface to implement if you wish to receive OnGvrPointerHover callbacks. +public interface IGvrPointerHoverHandler : IEventSystemHandler { + + /// Called when pointer is hovering over GameObject. + void OnGvrPointerHover(PointerEventData eventData); +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrEventInterfacesExtension.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/GvrEventInterfacesExtension.cs.meta new file mode 100644 index 0000000..e2e98f5 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrEventInterfacesExtension.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e7441953e05443d4fa517d1ce7382b0c +timeCreated: 1475082809 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrExecuteEventsExtension.cs b/Assets/GoogleVR/Scripts/EventSystem/GvrExecuteEventsExtension.cs new file mode 100644 index 0000000..2d734be --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrExecuteEventsExtension.cs @@ -0,0 +1,30 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; +using System.Collections; + +/// This script extends the standard Unity EventSystem events with Gvr specific events. +public static class GvrExecuteEventsExtension { + private static readonly ExecuteEvents.EventFunction s_HoverHandler = Execute; + + private static void Execute(IGvrPointerHoverHandler handler, BaseEventData eventData) { + handler.OnGvrPointerHover(ExecuteEvents.ValidateEventData(eventData)); + } + + public static ExecuteEvents.EventFunction pointerHoverHandler { + get { return s_HoverHandler; } + } +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrExecuteEventsExtension.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/GvrExecuteEventsExtension.cs.meta new file mode 100644 index 0000000..5c537c3 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrExecuteEventsExtension.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2a443597ee157fe49a30c4310f1fb2eb +timeCreated: 1475082615 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrPointerGraphicRaycaster.cs b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerGraphicRaycaster.cs new file mode 100644 index 0000000..b69663b --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerGraphicRaycaster.cs @@ -0,0 +1,208 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +/// This script provides a raycaster for use with the GvrPointerInputModule. +/// It behaves similarly to the standards Graphic raycaster, except that it utilize raycast +/// modes specifically for Gvr. +/// +/// View GvrBasePointerRaycaster.cs and GvrPointerInputModule.cs for more details. +[AddComponentMenu("GoogleVR/GvrPointerGraphicRaycaster")] +[RequireComponent(typeof(Canvas))] +public class GvrPointerGraphicRaycaster : GvrBasePointerRaycaster { + public enum BlockingObjects { + None = 0, + TwoD = 1, + ThreeD = 2, + All = 3, + } + + private const int NO_EVENT_MASK_SET = -1; + + public bool ignoreReversedGraphics = true; + public BlockingObjects blockingObjects = BlockingObjects.None; + public LayerMask blockingMask = NO_EVENT_MASK_SET; + + private Canvas targetCanvas; + private List raycastResults = new List(); + private Camera cachedPointerEventCamera; + + private static readonly List sortedGraphics = new List(); + + public override Camera eventCamera { + get { + switch (raycastMode) { + case RaycastMode.Direct: + if (cachedPointerEventCamera == null) { + if (!IsPointerAvailable()) { + Debug.LogError("Can't find eventCamera, pointer is not available."); + return Camera.main; + } + + Transform pointerTransform = GvrPointerManager.Pointer.PointerTransform; + cachedPointerEventCamera = pointerTransform.GetComponent(); + + if (cachedPointerEventCamera == null) { + Debug.LogError("GvrPointerGraphicRaycaster requires GvrPointer to have a Camera when in Direct mode."); + } + } + + return cachedPointerEventCamera != null ? cachedPointerEventCamera : Camera.main; + case RaycastMode.Camera: + default: + return Camera.main; + } + } + } + + private Canvas canvas { + get { + if (targetCanvas != null) + return targetCanvas; + + targetCanvas = GetComponent(); + return targetCanvas; + } + } + + protected GvrPointerGraphicRaycaster() { + } + + public override void Raycast(PointerEventData eventData, List resultAppendList) { + if (canvas == null) { + return; + } + + if (!IsPointerAvailable() || eventCamera == null) { + return; + } + + if (canvas.renderMode != RenderMode.WorldSpace) { + Debug.LogError("GvrPointerGraphicRaycaster requires that the canvas renderMode is set to WorldSpace."); + return; + } + + Ray ray = GetRay(); + float hitDistance = float.MaxValue; + + if (blockingObjects != BlockingObjects.None) { + float dist = eventCamera.farClipPlane - eventCamera.nearClipPlane; + + if (blockingObjects == BlockingObjects.ThreeD || blockingObjects == BlockingObjects.All) { + RaycastHit hit; + if (Physics.Raycast(ray, out hit, dist, blockingMask)) { + hitDistance = hit.distance; + } + } + + if (blockingObjects == BlockingObjects.TwoD || blockingObjects == BlockingObjects.All) { + RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction, dist, blockingMask); + + if (hit.collider != null) { + hitDistance = hit.fraction * dist; + } + } + } + + raycastResults.Clear(); + Ray finalRay; + Raycast(canvas, ray, eventCamera, MaxPointerDistance, raycastResults, out finalRay); + + for (int index = 0; index < raycastResults.Count; index++) { + GameObject go = raycastResults[index].gameObject; + bool appendGraphic = true; + + if (ignoreReversedGraphics) { + // If we have a camera compare the direction against the cameras forward. + Vector3 cameraFoward = eventCamera.transform.rotation * Vector3.forward; + Vector3 dir = go.transform.rotation * Vector3.forward; + appendGraphic = Vector3.Dot(cameraFoward, dir) > 0; + } + + if (appendGraphic) { + float distance = 0; + + Transform trans = go.transform; + Vector3 transForward = trans.forward; + // http://geomalgorithms.com/a06-_intersect-2.html + float transDot = Vector3.Dot(transForward, trans.position - finalRay.origin); + float rayDot = Vector3.Dot(transForward, finalRay.direction); + distance = transDot / rayDot; + + // Check to see if the go is behind the camera. + if (distance < 0) { + continue; + } + + if (distance >= hitDistance) { + continue; + } + + Vector3 hitPosition = finalRay.origin + (finalRay.direction * distance); + + RaycastResult castResult = new RaycastResult + { + gameObject = go, + module = this, + distance = distance, + worldPosition = hitPosition, + screenPosition = eventCamera.WorldToScreenPoint(hitPosition), + index = resultAppendList.Count, + depth = raycastResults[index].depth, + sortingLayer = canvas.sortingLayerID, + sortingOrder = canvas.sortingOrder + }; + resultAppendList.Add(castResult); + } + } + } + + /// Perform a raycast into the screen and collect all graphics underneath it. + private static void Raycast(Canvas canvas, Ray ray, Camera cam, float maxPointerDistance, + List results, out Ray finalRay) { + Vector3 screenPoint = cam.WorldToScreenPoint(ray.GetPoint(maxPointerDistance)); + finalRay = cam.ScreenPointToRay(screenPoint); + + // Necessary for the event system + IList foundGraphics = GraphicRegistry.GetGraphicsForCanvas(canvas); + for (int i = 0; i < foundGraphics.Count; ++i) { + Graphic graphic = foundGraphics[i]; + + // -1 means it hasn't been processed by the canvas, which means it isn't actually drawn + if (graphic.depth == -1 || !graphic.raycastTarget) { + continue; + } + + if (!RectTransformUtility.RectangleContainsScreenPoint(graphic.rectTransform, screenPoint, cam)) { + continue; + } + + if (graphic.Raycast(screenPoint, cam)) { + sortedGraphics.Add(graphic); + } + } + + sortedGraphics.Sort((g1, g2) => g2.depth.CompareTo(g1.depth)); + + for (int i = 0; i < sortedGraphics.Count; ++i) { + results.Add(sortedGraphics[i]); + } + + sortedGraphics.Clear(); + } +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrPointerGraphicRaycaster.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerGraphicRaycaster.cs.meta new file mode 100644 index 0000000..45e429d --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerGraphicRaycaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 739800cd36aba44e9b04ce977e5784bd +timeCreated: 1478217778 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrPointerPhysicsRaycaster.cs b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerPhysicsRaycaster.cs new file mode 100644 index 0000000..86dd45a --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerPhysicsRaycaster.cs @@ -0,0 +1,109 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +/// This script provides a raycaster for use with the GvrPointerInputModule. +/// It behaves similarly to the standards Physics raycaster, except that it utilize raycast +/// modes specifically for Gvr. +/// +/// View GvrBasePointerRaycaster.cs and GvrPointerInputModule.cs for more details. +[AddComponentMenu("GoogleVR/GvrPointerPhysicsRaycaster")] +public class GvrPointerPhysicsRaycaster : GvrBasePointerRaycaster { + /// Const to use for clarity when no event mask is set + protected const int NO_EVENT_MASK_SET = -1; + + /// Layer mask used to filter events. Always combined with the camera's culling mask if a camera is used. + [SerializeField] + protected LayerMask raycasterEventMask = NO_EVENT_MASK_SET; + + /// Stored reference to the event camera. + private Camera cachedEventCamera; + + /// eventCamera is used for masking layers and determining the distance of the raycast. + /// It will use the camera on the same object as this script. + /// If there is none, it will use the main camera. + public override Camera eventCamera { + get { + if (cachedEventCamera == null) { + cachedEventCamera = GetComponent(); + } + return cachedEventCamera != null ? cachedEventCamera : Camera.main; + } + } + + /// Event mask used to determine which objects will receive events. + public int finalEventMask { + get { + return (eventCamera != null) ? eventCamera.cullingMask & eventMask : NO_EVENT_MASK_SET; + } + } + + /// Layer mask used to filter events. Always combined with the camera's culling mask if a camera is used. + public LayerMask eventMask { + get { + return raycasterEventMask; + } + set { + raycasterEventMask = value; + } + } + + protected GvrPointerPhysicsRaycaster() { + } + + public override void Raycast(PointerEventData eventData, List resultAppendList) { + if (!IsPointerAvailable() || eventCamera == null) { + return; + } + + Ray ray = GetRay(); + float dist = eventCamera.farClipPlane - eventCamera.nearClipPlane; + float radius = PointerRadius; + RaycastHit[] hits; + + if (radius > 0.0f) { + hits = Physics.SphereCastAll(ray, radius, dist, finalEventMask); + } else { + hits = Physics.RaycastAll(ray, dist, finalEventMask); + } + + if (hits.Length == 0) { + return; + } + + System.Array.Sort(hits, (r1, r2) => r1.distance.CompareTo(r2.distance)); + + for (int b = 0, bmax = hits.Length; b < bmax; ++b) { + Vector3 projection = Vector3.Project(hits[b].point - ray.origin, ray.direction); + Vector3 hitPosition = projection + ray.origin; + + RaycastResult result = new RaycastResult { + gameObject = hits[b].collider.gameObject, + module = this, + distance = hits[b].distance, + worldPosition = hitPosition, + worldNormal = hits[b].normal, + screenPosition = eventCamera.WorldToScreenPoint(hitPosition), + index = resultAppendList.Count, + sortingLayer = 0, + sortingOrder = 0 + }; + + resultAppendList.Add(result); + } + } +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrPointerPhysicsRaycaster.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerPhysicsRaycaster.cs.meta new file mode 100644 index 0000000..e1c3870 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerPhysicsRaycaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eb5dd43baba2d4dc1bab789615567e3d +timeCreated: 1478196044 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrPointerScrollInput.cs b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerScrollInput.cs new file mode 100644 index 0000000..b985125 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerScrollInput.cs @@ -0,0 +1,234 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; +using System.Collections; +using System.Collections.Generic; +using System.Linq; + +/// This class is used by _GvrPointerInputModule_ to route scroll events through Unity's Event System. +/// It maintains indepedent velocities for each instance of _IScrollHandler_ that is currently being scrolled. +/// Inertia can optionally be toggled off. +[System.Serializable] +public class GvrPointerScrollInput { + public const string PROPERTY_NAME_INERTIA = "inertia"; + public const string PROPERTY_NAME_DECELERATION_RATE = "decelerationRate"; + + private class ScrollInfo { + public bool isScrolling = false; + public Vector2 initScroll = Vector2.zero; + public Vector2 lastScroll = Vector2.zero; + public Vector2 scrollVelocity = Vector2.zero; + } + + /// Inertia means that scroll events will continue for a while after the user stops + /// touching the touchpad. It gradually slows down according to the decelerationRate. + [Tooltip("Determines if movement inertia is enabled.")] + public bool inertia = true; + + /// The deceleration rate is the speed reduction per second. + /// A value of 0.5 halves the speed each second. The default is 0.135. + /// The deceleration rate is only used when inertia is enabled. + [Tooltip("The rate at which movement slows down.")] + public float decelerationRate = 0.05f; + + /// Multiplier for calculating the scroll delta so that the scroll delta is + /// within the order of magnitude that the UI system expects. + public const float SCROLL_DELTA_MULTIPLIER = 1000.0f; + + private const float CUTOFF_HZ = 10.0f; + private const float RC = (float) (1.0 / (2.0 * Mathf.PI * CUTOFF_HZ)); + private const float SPEED_CLAMP_RATIO = 0.05f; + private const float SPEED_CLAMP = (SPEED_CLAMP_RATIO * SCROLL_DELTA_MULTIPLIER); + private const float SPEED_CLAMP_SQUARED = SPEED_CLAMP * SPEED_CLAMP; + private const float INERTIA_THRESHOLD_RATIO = 0.2f; + private const float INERTIA_THRESHOLD = (INERTIA_THRESHOLD_RATIO * SCROLL_DELTA_MULTIPLIER); + private const float INERTIA_THRESHOLD_SQUARED = INERTIA_THRESHOLD * INERTIA_THRESHOLD; + private const float SLOP_VERTICAL = 0.165f * SCROLL_DELTA_MULTIPLIER; + private const float SLOP_HORIZONTAL = 0.15f * SCROLL_DELTA_MULTIPLIER; + + private Dictionary scrollHandlers = new Dictionary(); + private List scrollingObjects = new List(); + + public void HandleScroll(GameObject currentGameObject, PointerEventData pointerData, + bool isPointerActiveAndAvailable) { + bool touchDown = false; + bool touching = false; + bool touchUp = false; + Vector2 currentScroll = Vector2.zero; + +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + touchDown |= GvrController.TouchDown; + touching |= GvrController.IsTouching; + touchUp |= GvrController.TouchUp; + currentScroll = GvrController.TouchPos * SCROLL_DELTA_MULTIPLIER; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + + if (!isPointerActiveAndAvailable) { + touchDown = false; + touching = false; + touchUp = false; + } + + GameObject currentScrollHandler = ExecuteEvents.GetEventHandler(currentGameObject); + + if (touchDown) { + RemoveScrollHandler(currentScrollHandler); + } + + if (currentScrollHandler != null && (touchDown || touching)) { + OnTouchingScrollHandler(currentScrollHandler, pointerData, currentScroll); + } else if (touchUp && currentScrollHandler != null) { + OnReleaseScrollHandler(currentScrollHandler); + } + + StopScrollingIfNecessary(touching, currentScrollHandler); + UpdateInertiaScrollHandlers(touching, currentScrollHandler, pointerData); + } + + private void OnTouchingScrollHandler(GameObject currentScrollHandler, PointerEventData pointerData, + Vector2 currentScroll) { + ScrollInfo scrollInfo = null; + if (!scrollHandlers.ContainsKey(currentScrollHandler)) { + scrollInfo = AddScrollHandler(currentScrollHandler, currentScroll); + } else { + scrollInfo = scrollHandlers[currentScrollHandler]; + } + + // Determine if we should start scrolling this scrollHandler. + // This is true if the current scroll is outside of the slop threshold. + if (CanScrollStart(scrollInfo, currentScroll)) { + scrollInfo.isScrolling = true; + } + + if (scrollInfo.isScrolling) { + if (inertia) { + UpdateVelocity(scrollInfo, currentScroll); + } else { + // If inertia is disabled, then we send scroll events immediately. + pointerData.scrollDelta = currentScroll - scrollInfo.lastScroll; + ExecuteEvents.ExecuteHierarchy(currentScrollHandler, pointerData, ExecuteEvents.scrollHandler); + pointerData.scrollDelta = Vector2.zero; + } + } + + scrollInfo.lastScroll = currentScroll; + } + + private void OnReleaseScrollHandler(GameObject currentScrollHandler) { + // When we touch up, immediately stop scrolling the currentScrollHandler if it's velocity is low. + ScrollInfo scrollInfo; + if (scrollHandlers.TryGetValue(currentScrollHandler, out scrollInfo)) { + if (!scrollInfo.isScrolling || scrollInfo.scrollVelocity.sqrMagnitude <= INERTIA_THRESHOLD_SQUARED) { + RemoveScrollHandler(currentScrollHandler); + } + } + } + + private void UpdateVelocity(ScrollInfo scrollInfo, Vector2 currentScroll) { + Vector2 scrollDisplacement = (currentScroll - scrollInfo.lastScroll); + Vector2 newVelocity = scrollDisplacement / Time.deltaTime; + float weight = Time.deltaTime / (RC + Time.deltaTime); + scrollInfo.scrollVelocity = Vector2.Lerp(scrollInfo.scrollVelocity, newVelocity, weight); + } + + private void StopScrollingIfNecessary(bool touching, GameObject currentScrollHandler) { + if (scrollHandlers.Count == 0) { + return; + } + + // If inertia is disabled, stop scrolling any scrollHandler that isn't currently being touched. + for (int i = scrollingObjects.Count - 1; i >= 0; i--) { + GameObject scrollHandler = scrollingObjects[i]; + ScrollInfo scrollInfo = scrollHandlers[scrollHandler]; + + bool isScrollling = scrollInfo.isScrolling; + + bool isVelocityBelowThreshold = + isScrollling && scrollInfo.scrollVelocity.sqrMagnitude <= SPEED_CLAMP_SQUARED; + + bool isCurrentlyTouching = touching && scrollHandler == currentScrollHandler; + + bool shouldStopScrolling = (inertia && isVelocityBelowThreshold) + || ((!inertia || !isScrollling) && !isCurrentlyTouching); + + if (shouldStopScrolling) { + RemoveScrollHandler(scrollHandler); + } + } + } + + private void UpdateInertiaScrollHandlers(bool touching, GameObject currentScrollHandler, + PointerEventData pointerData) { + if (!inertia || pointerData == null) { + return; + } + + // If the currentScrollHandler is null, then the currently scrolling scrollHandlers + // must still be decelerated so the function does not return early. + + for (int i = 0; i < scrollingObjects.Count; i++) { + GameObject scrollHandler = scrollingObjects[i]; + ScrollInfo scrollInfo = scrollHandlers[scrollHandler]; + + if (scrollInfo.isScrolling) { + // Decelerate the scrollHandler if necessary. + if (!touching || scrollHandler != currentScrollHandler) { + scrollInfo.scrollVelocity *= Mathf.Pow(decelerationRate, Time.deltaTime); + } + + // Send the scroll events. + pointerData.scrollDelta = scrollInfo.scrollVelocity * Time.deltaTime; + ExecuteEvents.ExecuteHierarchy(scrollHandler, pointerData, ExecuteEvents.scrollHandler); + } + } + pointerData.scrollDelta = Vector2.zero; + } + + private ScrollInfo AddScrollHandler(GameObject scrollHandler, Vector2 currentScroll) { + ScrollInfo scrollInfo = new ScrollInfo(); + scrollInfo.initScroll = currentScroll; + scrollInfo.lastScroll = currentScroll; + scrollHandlers[scrollHandler] = scrollInfo; + scrollingObjects.Add(scrollHandler); + return scrollInfo; + } + + private void RemoveScrollHandler(GameObject scrollHandler) { + // Check if it's null via object.Equals instead of doing a direct comparison + // to avoid using Unity's equality check override for UnityEngine.Objects. + // This is so that we can remove Unity objects that have been Destroyed from the dictionary, + // but will still return early when an object is actually null. + if (object.Equals(scrollHandler, null)) { + return; + } + + if (!scrollHandlers.ContainsKey(scrollHandler)) { + return; + } + + scrollHandlers.Remove(scrollHandler); + scrollingObjects.Remove(scrollHandler); + } + + private static bool CanScrollStart(ScrollInfo scrollInfo, Vector2 currentScroll) { + if (scrollInfo == null) { + return false; + } + + return (Mathf.Abs(currentScroll.x - scrollInfo.initScroll.x) >= SLOP_HORIZONTAL) + || (Mathf.Abs(currentScroll.y - scrollInfo.initScroll.y) >= SLOP_VERTICAL); + } +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/GvrPointerScrollInput.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerScrollInput.cs.meta new file mode 100644 index 0000000..fe4fa90 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/GvrPointerScrollInput.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 23744ffc3b678488e858089d1a2973d9 +timeCreated: 1487096177 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule.meta b/Assets/GoogleVR/Scripts/EventSystem/InputModule.meta new file mode 100644 index 0000000..c7b74fa --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a1679b0015de44ffdbabd6546471eab0 +folderAsset: yes +timeCreated: 1492665005 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrAllEventsTrigger.cs b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrAllEventsTrigger.cs new file mode 100644 index 0000000..4474c71 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrAllEventsTrigger.cs @@ -0,0 +1,94 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the MIT License, you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// +// http://www.opensource.org/licenses/mit-license.php +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using System.Collections; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.EventSystems; + +/// Exposes events from _GvrEventExecutor_ that are fired by _GvrPointerInputModule_ to the editor. +/// Makes it possible to handle EventSystem events globally. +public class GvrAllEventsTrigger : MonoBehaviour { + + [Serializable] + public class TriggerEvent : UnityEvent + {} + + public TriggerEvent OnPointerClick; + public TriggerEvent OnPointerDown; + public TriggerEvent OnPointerUp; + public TriggerEvent OnPointerEnter; + public TriggerEvent OnPointerExit; + + void OnEnable() { + // EventExecutor isn't available until after the first update. + // So we must wait to add the listeners. + StartCoroutine(AddListenersDelayed()); + } + + void OnDisable() { + RemoveListeners(); + } + + private IEnumerator AddListenersDelayed() { + yield return null; + AddListeners(); + } + + private void AddListeners() { + GvrEventExecutor eventExecutor = GvrPointerInputModule.FindEventExecutor(); + if (eventExecutor == null) { + return; + } + + eventExecutor.OnPointerClick += OnPointerClickHandler; + eventExecutor.OnPointerDown += OnPointerDownHandler; + eventExecutor.OnPointerUp += OnPointerUpHandler; + eventExecutor.OnPointerEnter += OnPointerEnterHandler; + eventExecutor.OnPointerExit += OnPointerExitHandler; + } + + private void RemoveListeners() { + GvrEventExecutor eventExecutor = GvrPointerInputModule.FindEventExecutor(); + if (eventExecutor == null) { + return; + } + + eventExecutor.OnPointerClick -= OnPointerClickHandler; + eventExecutor.OnPointerDown -= OnPointerDownHandler; + eventExecutor.OnPointerUp -= OnPointerUpHandler; + eventExecutor.OnPointerEnter -= OnPointerEnterHandler; + eventExecutor.OnPointerExit -= OnPointerExitHandler; + } + + private void OnPointerClickHandler(GameObject target, PointerEventData eventData) { + OnPointerClick.Invoke(target, eventData); + } + + private void OnPointerDownHandler(GameObject target, PointerEventData eventData) { + OnPointerDown.Invoke(target, eventData); + } + + private void OnPointerUpHandler(GameObject target, PointerEventData eventData) { + OnPointerUp.Invoke(target, eventData); + } + + private void OnPointerEnterHandler(GameObject target, PointerEventData eventData) { + OnPointerEnter.Invoke(target, eventData); + } + + private void OnPointerExitHandler(GameObject target, PointerEventData eventData) { + OnPointerExit.Invoke(target, eventData); + } +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrAllEventsTrigger.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrAllEventsTrigger.cs.meta new file mode 100644 index 0000000..948d0c1 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrAllEventsTrigger.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ca0157c63fb794df89c6735fc602eca2 +timeCreated: 1493228030 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrEventExecutor.cs b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrEventExecutor.cs new file mode 100644 index 0000000..8bceeab --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrEventExecutor.cs @@ -0,0 +1,148 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the MIT License, you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// +// http://www.opensource.org/licenses/mit-license.php +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +/// Wraps UnityEngine.EventSystems.ExecuteEvents. +/// Also, exposes event delegates to allow global handling of events. +public class GvrEventExecutor : IGvrEventExecutor { + public delegate void EventDelegate(GameObject target, PointerEventData eventData); + + /// Fired when a Click occurs on any object. + public event EventDelegate OnPointerClick { + add { + AddEventDelegate(value); + } + remove { + RemoveEventDelegate(value); + } + } + + // Fired when a Down event occurs on any object. + public event EventDelegate OnPointerDown { + add { + AddEventDelegate(value); + } + remove { + RemoveEventDelegate(value); + } + } + + // Fired when an Up event occurs on any object. + public event EventDelegate OnPointerUp { + add { + AddEventDelegate(value); + } + remove { + RemoveEventDelegate(value); + } + } + + // Fired when an Enter event occurs on any object. + public event EventDelegate OnPointerEnter { + add { + AddEventDelegate(value); + } + remove { + RemoveEventDelegate(value); + } + } + + // Fired when an Exit event occurs on any object. + public event EventDelegate OnPointerExit { + add { + AddEventDelegate(value); + } + remove { + RemoveEventDelegate(value); + } + } + + /// Stores delegates for events. + private Dictionary eventTable; + + public GvrEventExecutor() { + eventTable = new Dictionary(); + } + + public bool Execute(GameObject target, + BaseEventData eventData, + ExecuteEvents.EventFunction functor) + where T : IEventSystemHandler { + bool result = ExecuteEvents.Execute(target, eventData, functor); + CallEventDelegate(target, eventData); + + return result; + } + + public GameObject ExecuteHierarchy(GameObject root, + BaseEventData eventData, + ExecuteEvents.EventFunction callbackFunction) + where T : IEventSystemHandler { + GameObject result = ExecuteEvents.ExecuteHierarchy(root, eventData, callbackFunction); + CallEventDelegate(root, eventData); + + return result; + } + + public GameObject GetEventHandler(GameObject root) + where T : IEventSystemHandler { + return ExecuteEvents.GetEventHandler(root); + } + + private void CallEventDelegate(GameObject target, BaseEventData eventData) + where T : IEventSystemHandler { + Type type = typeof(T); + + EventDelegate eventDelegate; + if (eventTable.TryGetValue(type, out eventDelegate)) { + PointerEventData pointerEventData = eventData as PointerEventData; + if (pointerEventData == null) { + Debug.LogError("Event data must be PointerEventData."); + return; + } + + eventDelegate(target, pointerEventData); + } + } + + private void AddEventDelegate(EventDelegate eventDelegate) { + Type type = typeof(T); + + EventDelegate existingDelegate; + if (eventTable.TryGetValue(type, out existingDelegate)) { + eventTable[type] = existingDelegate + eventDelegate; + } else { + eventTable[type] = eventDelegate; + } + } + + private void RemoveEventDelegate(EventDelegate eventDelegate) { + Type type = typeof(T); + + EventDelegate existingDelegate; + if (!eventTable.TryGetValue(type, out existingDelegate)) { + return; + } + + eventDelegate = existingDelegate - eventDelegate; + if (eventDelegate != null) { + eventTable[type] = eventDelegate; + } else { + eventTable.Remove(type); + } + } +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrEventExecutor.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrEventExecutor.cs.meta new file mode 100644 index 0000000..7ede10e --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrEventExecutor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8a93ebe04d36b49c388adce4ac442226 +timeCreated: 1493142648 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModule.cs b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModule.cs new file mode 100644 index 0000000..a7da70b --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModule.cs @@ -0,0 +1,158 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the MIT License, you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// +// http://www.opensource.org/licenses/mit-license.php +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +/// This script provides an implemention of Unity's `BaseInputModule` class, so +/// that Canvas-based (_uGUI_) UI elements and 3D scene objects can be +/// interacted with in a Gvr Application. +/// +/// This script is intended for use with either a +/// 3D Pointer with the Daydream Controller (Recommended for Daydream), +/// or a Gaze-based-Pointer (Recommended for Cardboard). +/// +/// To use, attach to the scene's **EventSystem** object. Be sure to move it above the +/// other modules, such as _TouchInputModule_ and _StandaloneInputModule_, in order +/// for the Pointer to take priority in the event system. +/// +/// If you are using a **Canvas**, set the _Render Mode_ to **World Space**, +/// and add the _GvrPointerGraphicRaycaster_ script to the object. +/// +/// If you'd like pointers to work with 3D scene objects, add a _GvrPointerPhysicsRaycaster_ to the main camera, +/// and add a component that implements one of the _Event_ interfaces (_EventTrigger_ will work nicely) to +/// an object with a collider. +/// +/// GvrPointerInputModule emits the following events: _Enter_, _Exit_, _Down_, _Up_, _Click_, _Select_, +/// _Deselect_, _UpdateSelected_, and _GvrPointerHover_. Scroll, move, and submit/cancel events are not emitted. +/// +/// To use a 3D Pointer with the Daydream Controller: +/// - Add the prefab GoogleVR/Prefabs/UI/GvrControllerPointer to your scene. +/// - Set the parent of GvrControllerPointer to the same parent as the main camera +/// (With a local position of 0,0,0). +/// +/// To use a Gaze-based-pointer: +/// - Add the prefab GoogleVR/Prefabs/UI/GvrReticlePointer to your scene. +/// - Set the parent of GvrReticlePointer to the main camera. +/// +[AddComponentMenu("GoogleVR/GvrPointerInputModule")] +public class GvrPointerInputModule : BaseInputModule, IGvrInputModuleController { + /// Determines whether Pointer input is active in VR Mode only (`true`), or all of the + /// time (`false`). Set to false if you plan to use direct screen taps or other + /// input when not in VR Mode. + [Tooltip("Whether Pointer input is active in VR Mode only (true), or all the time (false).")] + public bool vrModeOnly = false; + + [Tooltip("Manages scroll events for the input module.")] + public GvrPointerScrollInput scrollInput = new GvrPointerScrollInput(); + + public GvrPointerInputModuleImpl Impl { get; private set; } + + public GvrEventExecutor EventExecutor { get; private set; } + + public new EventSystem eventSystem { + get { + return base.eventSystem; + } + } + + public List RaycastResultCache { + get { + return m_RaycastResultCache; + } + } + + /// Helper function to find the Event Executor that is part of + /// the input module if one exists in the scene. + public static GvrEventExecutor FindEventExecutor() { + GvrPointerInputModule gvrInputModule = FindInputModule(); + if (gvrInputModule == null) { + return null; + } + + return gvrInputModule.EventExecutor; + } + + /// Helper function to find the input module if one exists in the + /// scene and it is the active module. + public static GvrPointerInputModule FindInputModule() { + if (EventSystem.current == null) { + return null; + } + + BaseInputModule inputModule = EventSystem.current.currentInputModule; + if (inputModule == null) { + return null; + } + + GvrPointerInputModule gvrInputModule = inputModule as GvrPointerInputModule; + return gvrInputModule; + } + + public override bool ShouldActivateModule() { + return Impl.ShouldActivateModule(); + } + + public override void DeactivateModule() { + Impl.DeactivateModule(); + } + + public override bool IsPointerOverGameObject(int pointerId) { + return Impl.IsPointerOverGameObject(pointerId); + } + + public override void Process() { + UpdateImplProperties(); + Impl.Process(); + } + + protected override void Awake() { + base.Awake(); + Impl = new GvrPointerInputModuleImpl(); + EventExecutor = new GvrEventExecutor(); + UpdateImplProperties(); + } + + public bool ShouldActivate() { + return base.ShouldActivateModule(); + } + + public void Deactivate() { + base.DeactivateModule(); + } + + public new GameObject FindCommonRoot(GameObject g1, GameObject g2) { + return BaseInputModule.FindCommonRoot(g1, g2); + } + + public new BaseEventData GetBaseEventData() { + return base.GetBaseEventData(); + } + + public new RaycastResult FindFirstRaycast(List candidates) { + return BaseInputModule.FindFirstRaycast(candidates); + } + + private void UpdateImplProperties() { + if (Impl == null) { + return; + } + + Impl.ScrollInput = scrollInput; + Impl.VrModeOnly = vrModeOnly; + Impl.Pointer = GvrPointerManager.Pointer; + Impl.ModuleController = this; + Impl.EventExecutor = EventExecutor; + } +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModule.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModule.cs.meta new file mode 100644 index 0000000..2165738 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModule.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fcd4baceb58cc40c98e500572bede6a6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModuleImpl.cs b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModuleImpl.cs new file mode 100644 index 0000000..9833416 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModuleImpl.cs @@ -0,0 +1,464 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the MIT License, you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// +// http://www.opensource.org/licenses/mit-license.php +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; + +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +using UnityEngine.VR; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + +/// Implementation of _GvrPointerInputModule_ +public class GvrPointerInputModuleImpl { + /// Interface for controlling the actual InputModule. + public IGvrInputModuleController ModuleController { get; set; } + + /// Interface for executing events. + public IGvrEventExecutor EventExecutor { get; set; } + + /// Determines whether pointer input is active in VR Mode only (`true`), or all of the + /// time (`false`). Set to false if you plan to use direct screen taps or other + /// input when not in VR Mode. + public bool VrModeOnly { get; set; } + + /// The GvrPointerScrollInput used to route Scroll Events through _EventSystem_ + public GvrPointerScrollInput ScrollInput { get; set; } + + /// The GvrBasePointer which will be responding to pointer events. + public GvrBasePointer Pointer { get; set; } + + /// PointerEventData from the most recent frame. + public PointerEventData CurrentEventData { get; private set; } + + private Vector2 lastPose; + private bool isPointerHovering = false; + + // Active state + private bool isActive = false; + + public bool ShouldActivateModule() { + bool isVrModeEnabled = !VrModeOnly; +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + isVrModeEnabled |= VRSettings.enabled; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + + bool activeState = ModuleController.ShouldActivate() && isVrModeEnabled; + + if (activeState != isActive) { + isActive = activeState; + + // Activate pointer + if (Pointer != null) { + if (isActive) { + Pointer.OnInputModuleEnabled(); + } + } + } + + return activeState; + } + + public void DeactivateModule() { + DisablePointer(); + ModuleController.Deactivate(); + if (CurrentEventData != null) { + HandlePendingClick(); + HandlePointerExitAndEnter(CurrentEventData, null); + CurrentEventData = null; + } + ModuleController.eventSystem.SetSelectedGameObject(null, ModuleController.GetBaseEventData()); + } + + public bool IsPointerOverGameObject(int pointerId) { + return CurrentEventData != null && CurrentEventData.pointerEnter != null; + } + + public void Process() { + if (Pointer == null) { + return; + } + + // Save the previous Game Object + GameObject previousObject = GetCurrentGameObject(); + + CastRay(); + UpdateCurrentObject(previousObject); + UpdatePointer(previousObject); + + // True during the frame that the trigger has been pressed. + bool triggerDown = false; + // True if the trigger is held down. + bool triggering = false; + + if (IsPointerActiveAndAvailable()) { + triggerDown = Pointer.TriggerDown; + triggering = Pointer.Triggering; + } + + bool handlePendingClickRequired = !triggering; + + // Handle input + if (!triggerDown && triggering) { + HandleDrag(); + } else if (triggerDown && !CurrentEventData.eligibleForClick) { + // New trigger action. + HandleTriggerDown(); + } else if (handlePendingClickRequired) { + // Check if there is a pending click to handle. + HandlePendingClick(); + } + + ScrollInput.HandleScroll(GetCurrentGameObject(), CurrentEventData, IsPointerActiveAndAvailable()); + } + + private void CastRay() { + if (Pointer == null || Pointer.PointerTransform == null) { + return; + } + Vector2 currentPose = GvrMathHelpers.NormalizedCartesianToSpherical(Pointer.PointerTransform.forward); + + if (CurrentEventData == null) { + CurrentEventData = new PointerEventData(ModuleController.eventSystem); + lastPose = currentPose; + } + + // Store the previous raycast result. + RaycastResult previousRaycastResult = CurrentEventData.pointerCurrentRaycast; + + // The initial cast must use the enter radius. + if (Pointer != null) { + Pointer.ShouldUseExitRadiusForRaycast = false; + } + + // Cast a ray into the scene + CurrentEventData.Reset(); + // Set the position to the center of the camera. + // This is only necessary if using the built-in Unity raycasters. + RaycastResult raycastResult; + CurrentEventData.position = GvrMathHelpers.GetViewportCenter(); + bool isPointerActiveAndAvailable = IsPointerActiveAndAvailable(); + if (isPointerActiveAndAvailable) { + ModuleController.eventSystem.RaycastAll(CurrentEventData, ModuleController.RaycastResultCache); + raycastResult = ModuleController.FindFirstRaycast(ModuleController.RaycastResultCache); + } else { + raycastResult = new RaycastResult(); + raycastResult.Clear(); + } + + // If we were already pointing at an object we must check that object against the exit radius + // to make sure we are no longer pointing at it to prevent flicker. + if (previousRaycastResult.gameObject != null + && raycastResult.gameObject != previousRaycastResult.gameObject + && isPointerActiveAndAvailable) { + if (Pointer != null) { + Pointer.ShouldUseExitRadiusForRaycast = true; + } + ModuleController.RaycastResultCache.Clear(); + ModuleController.eventSystem.RaycastAll(CurrentEventData, ModuleController.RaycastResultCache); + RaycastResult firstResult = ModuleController.FindFirstRaycast(ModuleController.RaycastResultCache); + if (firstResult.gameObject == previousRaycastResult.gameObject) { + raycastResult = firstResult; + } + } + + if (raycastResult.gameObject != null && raycastResult.worldPosition == Vector3.zero) { + raycastResult.worldPosition = + GvrMathHelpers.GetIntersectionPosition(CurrentEventData.enterEventCamera, raycastResult); + } + + CurrentEventData.pointerCurrentRaycast = raycastResult; + + // Find the real screen position associated with the raycast + // Based on the results of the hit and the state of the pointerData. + if (raycastResult.gameObject != null) { + CurrentEventData.position = raycastResult.screenPosition; + } else { + Transform pointerTransform = Pointer.PointerTransform; + float maxPointerDistance = Pointer.MaxPointerDistance; + Vector3 pointerPos = pointerTransform.position + (pointerTransform.forward * maxPointerDistance); + if (CurrentEventData.pressEventCamera != null) { + CurrentEventData.position = CurrentEventData.pressEventCamera.WorldToScreenPoint(pointerPos); + } else if (Camera.main != null) { + CurrentEventData.position = Camera.main.WorldToScreenPoint(pointerPos); + } + } + + ModuleController.RaycastResultCache.Clear(); + CurrentEventData.delta = currentPose - lastPose; + lastPose = currentPose; + + // Check to make sure the Raycaster being used is a GvrRaycaster. + if (raycastResult.module != null + && !(raycastResult.module is GvrPointerGraphicRaycaster) + && !(raycastResult.module is GvrPointerPhysicsRaycaster)) { + Debug.LogWarning("Using Raycaster (Raycaster: " + raycastResult.module.GetType() + + ", Object: " + raycastResult.module.name + "). It is recommended to use " + + "GvrPointerPhysicsRaycaster or GvrPointerGrahpicRaycaster with GvrPointerInputModule."); + } + } + + private void UpdateCurrentObject(GameObject previousObject) { + if (Pointer == null || CurrentEventData == null) { + return; + } + // Send enter events and update the highlight. + GameObject currentObject = GetCurrentGameObject(); // Get the pointer target + HandlePointerExitAndEnter(CurrentEventData, currentObject); + + // Update the current selection, or clear if it is no longer the current object. + var selected = EventExecutor.GetEventHandler(currentObject); + if (selected == ModuleController.eventSystem.currentSelectedGameObject) { + EventExecutor.Execute(ModuleController.eventSystem.currentSelectedGameObject, ModuleController.GetBaseEventData(), + ExecuteEvents.updateSelectedHandler); + } else { + ModuleController.eventSystem.SetSelectedGameObject(null, CurrentEventData); + } + + // Execute hover event. + if (currentObject != null && currentObject == previousObject) { + EventExecutor.ExecuteHierarchy(currentObject, CurrentEventData, GvrExecuteEventsExtension.pointerHoverHandler); + } + } + + private void UpdatePointer(GameObject previousObject) { + if (Pointer == null || CurrentEventData == null) { + return; + } + + GameObject currentObject = GetCurrentGameObject(); // Get the pointer target + + bool isInteractive = CurrentEventData.pointerPress != null || + EventExecutor.GetEventHandler(currentObject) != null || + EventExecutor.GetEventHandler(currentObject) != null; + + if (isPointerHovering && currentObject != null && currentObject == previousObject) { + Pointer.OnPointerHover(CurrentEventData.pointerCurrentRaycast, GetLastRay(), isInteractive); + } else { + // If the object's don't match or the hovering object has been destroyed + // then the pointer has exited. + if (previousObject != null || (currentObject == null && isPointerHovering)) { + Pointer.OnPointerExit(previousObject); + isPointerHovering = false; + } + + if (currentObject != null) { + Pointer.OnPointerEnter(CurrentEventData.pointerCurrentRaycast, GetLastRay(), isInteractive); + isPointerHovering = true; + } + } + } + + private static bool ShouldStartDrag(Vector2 pressPos, Vector2 currentPos, float threshold, bool useDragThreshold) { + if (!useDragThreshold) + return true; + + return (pressPos - currentPos).sqrMagnitude >= threshold * threshold; + } + + private void HandleDrag() { + bool moving = CurrentEventData.IsPointerMoving(); + bool shouldStartDrag = ShouldStartDrag(CurrentEventData.pressPosition, + CurrentEventData.position, + ModuleController.eventSystem.pixelDragThreshold, + CurrentEventData.useDragThreshold); + + if (moving && shouldStartDrag && CurrentEventData.pointerDrag != null && !CurrentEventData.dragging) { + EventExecutor.Execute(CurrentEventData.pointerDrag, CurrentEventData, + ExecuteEvents.beginDragHandler); + CurrentEventData.dragging = true; + } + + // Drag notification + if (CurrentEventData.dragging && moving && CurrentEventData.pointerDrag != null) { + // Before doing drag we should cancel any pointer down state + // And clear selection! + if (CurrentEventData.pointerPress != CurrentEventData.pointerDrag) { + EventExecutor.Execute(CurrentEventData.pointerPress, CurrentEventData, ExecuteEvents.pointerUpHandler); + + CurrentEventData.eligibleForClick = false; + CurrentEventData.pointerPress = null; + CurrentEventData.rawPointerPress = null; + } + + EventExecutor.Execute(CurrentEventData.pointerDrag, CurrentEventData, ExecuteEvents.dragHandler); + } + } + + private void HandlePendingClick() { + if (CurrentEventData == null || (!CurrentEventData.eligibleForClick && !CurrentEventData.dragging)) { + return; + } + + if (Pointer != null) { + Pointer.OnPointerClickUp(); + } + + var go = CurrentEventData.pointerCurrentRaycast.gameObject; + + // Send pointer up and click events. + EventExecutor.Execute(CurrentEventData.pointerPress, CurrentEventData, ExecuteEvents.pointerUpHandler); + + GameObject pointerClickHandler = EventExecutor.GetEventHandler(go); + if (CurrentEventData.pointerPress == pointerClickHandler && CurrentEventData.eligibleForClick) { + EventExecutor.Execute(CurrentEventData.pointerPress, CurrentEventData, ExecuteEvents.pointerClickHandler); + } + + if (CurrentEventData.pointerDrag != null && CurrentEventData.dragging) { + EventExecutor.ExecuteHierarchy(go, CurrentEventData, ExecuteEvents.dropHandler); + EventExecutor.Execute(CurrentEventData.pointerDrag, CurrentEventData, ExecuteEvents.endDragHandler); + } + + // Clear the click state. + CurrentEventData.pointerPress = null; + CurrentEventData.rawPointerPress = null; + CurrentEventData.eligibleForClick = false; + CurrentEventData.clickCount = 0; + CurrentEventData.clickTime = 0; + CurrentEventData.pointerDrag = null; + CurrentEventData.dragging = false; + } + + private void HandleTriggerDown() { + var go = CurrentEventData.pointerCurrentRaycast.gameObject; + + // Send pointer down event. + CurrentEventData.pressPosition = CurrentEventData.position; + CurrentEventData.pointerPressRaycast = CurrentEventData.pointerCurrentRaycast; + CurrentEventData.pointerPress = + EventExecutor.ExecuteHierarchy(go, CurrentEventData, ExecuteEvents.pointerDownHandler) ?? + EventExecutor.GetEventHandler(go); + + // Save the pending click state. + CurrentEventData.rawPointerPress = go; + CurrentEventData.eligibleForClick = true; + CurrentEventData.delta = Vector2.zero; + CurrentEventData.dragging = false; + CurrentEventData.useDragThreshold = true; + CurrentEventData.clickCount = 1; + CurrentEventData.clickTime = Time.unscaledTime; + + // Save the drag handler as well + CurrentEventData.pointerDrag = EventExecutor.GetEventHandler(go); + if (CurrentEventData.pointerDrag != null) { + EventExecutor.Execute(CurrentEventData.pointerDrag, CurrentEventData, ExecuteEvents.initializePotentialDrag); + } + + if (Pointer != null) { + Pointer.OnPointerClickDown(); + } + } + + private GameObject GetCurrentGameObject() { + if (CurrentEventData != null) { + return CurrentEventData.pointerCurrentRaycast.gameObject; + } + + return null; + } + + // Modified version of BaseInputModule.HandlePointerExitAndEnter that calls EventExecutor instead of + // UnityEngine.EventSystems.ExecuteEvents. + private void HandlePointerExitAndEnter(PointerEventData currentPointerData, GameObject newEnterTarget) { + // If we have no target or pointerEnter has been deleted then + // just send exit events to anything we are tracking. + // Afterwards, exit. + if (newEnterTarget == null || currentPointerData.pointerEnter == null) { + for (var i = 0; i < currentPointerData.hovered.Count; ++i) { + EventExecutor.Execute(currentPointerData.hovered[i], currentPointerData, ExecuteEvents.pointerExitHandler); + } + + currentPointerData.hovered.Clear(); + + if (newEnterTarget == null) { + currentPointerData.pointerEnter = newEnterTarget; + return; + } + } + + // If we have not changed hover target. + if (newEnterTarget && currentPointerData.pointerEnter == newEnterTarget) { + return; + } + + GameObject commonRoot = ModuleController.FindCommonRoot(currentPointerData.pointerEnter, newEnterTarget); + + // We already an entered object from last time. + if (currentPointerData.pointerEnter != null) { + // Send exit handler call to all elements in the chain + // until we reach the new target, or null! + Transform t = currentPointerData.pointerEnter.transform; + + while (t != null) { + // If we reach the common root break out! + if (commonRoot != null && commonRoot.transform == t) + break; + + EventExecutor.Execute(t.gameObject, currentPointerData, ExecuteEvents.pointerExitHandler); + currentPointerData.hovered.Remove(t.gameObject); + t = t.parent; + } + } + + // Now issue the enter call up to but not including the common root. + currentPointerData.pointerEnter = newEnterTarget; + if (newEnterTarget != null) { + Transform t = newEnterTarget.transform; + + while (t != null && t.gameObject != commonRoot) { + EventExecutor.Execute(t.gameObject, currentPointerData, ExecuteEvents.pointerEnterHandler); + currentPointerData.hovered.Add(t.gameObject); + t = t.parent; + } + } + } + + private Ray GetLastRay() { + if (CurrentEventData != null) { + GvrBasePointerRaycaster raycaster = CurrentEventData.pointerCurrentRaycast.module as GvrBasePointerRaycaster; + if (raycaster != null) { + return raycaster.GetLastRay(); + } else if (CurrentEventData.enterEventCamera != null) { + Camera cam = CurrentEventData.enterEventCamera; + return new Ray(cam.transform.position, cam.transform.forward); + } + } + + return new Ray(); + } + + private void DisablePointer() { + if (Pointer == null) { + return; + } + + GameObject currentGameObject = GetCurrentGameObject(); + if (currentGameObject) { + Pointer.OnPointerExit(currentGameObject); + } + + Pointer.OnInputModuleDisabled(); + } + + private bool IsPointerActiveAndAvailable() { + if (Pointer == null) { + return false; + } + + Transform pointerTransform = Pointer.PointerTransform; + if (pointerTransform == null) { + return false; + } + + return pointerTransform.gameObject.activeInHierarchy; + } +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModuleImpl.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModuleImpl.cs.meta new file mode 100644 index 0000000..653b6e7 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/GvrPointerInputModuleImpl.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d2e5fe232b3b94de2a12eb364ebc371e +timeCreated: 1492661146 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrEventExecutor.cs b/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrEventExecutor.cs new file mode 100644 index 0000000..4e26b19 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrEventExecutor.cs @@ -0,0 +1,31 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the MIT License, you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// +// http://www.opensource.org/licenses/mit-license.php +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; + +/// Provides an interface for executing events for _IEventSystemHandler_. +public interface IGvrEventExecutor { + bool Execute(GameObject target, + BaseEventData eventData, + ExecuteEvents.EventFunction functor) + where T : IEventSystemHandler; + + GameObject ExecuteHierarchy(GameObject root, + BaseEventData eventData, + ExecuteEvents.EventFunction callbackFunction) + where T : IEventSystemHandler; + + GameObject GetEventHandler(GameObject root) + where T : IEventSystemHandler; +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrEventExecutor.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrEventExecutor.cs.meta new file mode 100644 index 0000000..1728a5c --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrEventExecutor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 171f0a30d9ead4516a8fa319cfebe270 +timeCreated: 1493142648 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrInputModuleController.cs b/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrInputModuleController.cs new file mode 100644 index 0000000..9cb89e2 --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrInputModuleController.cs @@ -0,0 +1,30 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +/// Interface for manipulating an InputModule used by _GvrPointerInputModuleImpl_ +public interface IGvrInputModuleController { + EventSystem eventSystem { get; } + List RaycastResultCache { get; } + + bool ShouldActivate(); + void Deactivate(); + GameObject FindCommonRoot(GameObject g1, GameObject g2); + BaseEventData GetBaseEventData(); + RaycastResult FindFirstRaycast(List candidates); +} diff --git a/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrInputModuleController.cs.meta b/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrInputModuleController.cs.meta new file mode 100644 index 0000000..ee519dc --- /dev/null +++ b/Assets/GoogleVR/Scripts/EventSystem/InputModule/IGvrInputModuleController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 118ed627eb676472d803284d1a988bbd +timeCreated: 1492665020 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/GvrCardboardHelpers.cs b/Assets/GoogleVR/Scripts/GvrCardboardHelpers.cs new file mode 100644 index 0000000..2c55e33 --- /dev/null +++ b/Assets/GoogleVR/Scripts/GvrCardboardHelpers.cs @@ -0,0 +1,53 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.VR; + +using System; +using System.Runtime.InteropServices; + +// General GVR helpers. +public class GvrCardboardHelpers { + /// Manual recenter for Cardboard. + /// Do not use for controller-based Daydream recenter - Google VR Services will take care + /// of that, no C# implementation behaviour is needed. + /// Apply the recenteringOffset to the Camera or its parent at runtime. + public static void Recenter() { +#if (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR + gvr_reset_tracking(VRDevice.GetNativePtr()); +#endif // (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR + Debug.Log("Use GvrEditorEmulator for in-editor recentering"); + } + + /// Set the Cardboard viewer params. + /// Example URI for 2015 Cardboard Viewer V2: + /// http://google.com/cardboard/cfg?p=CgZHb29nbGUSEkNhcmRib2FyZCBJL08gMjAxNR0rGBU9JQHegj0qEAAASEIAAEhCAABIQgAASEJYADUpXA89OggeZnc-Ej6aPlAAYAM + public static void SetViewerProfile(String viewerProfileUri) { +#if (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR + gvr_set_default_viewer_profile(VRDevice.GetNativePtr(), viewerProfileUri); +#endif // (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR + Debug.Log("Unavailable for non-Android and non-iOS builds"); + } + +#if (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR + [DllImport(GvrActivityHelper.GVR_DLL_NAME)] + private static extern void gvr_reset_tracking(IntPtr gvr_context); + + [DllImport(GvrActivityHelper.GVR_DLL_NAME)] + private static extern void gvr_set_default_viewer_profile(IntPtr gvr_context, + [MarshalAs(UnmanagedType.LPStr)] string viewer_profile_uri); +#endif // (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR + +} diff --git a/Assets/GoogleVR/Scripts/GvrCardboardHelpers.cs.meta b/Assets/GoogleVR/Scripts/GvrCardboardHelpers.cs.meta new file mode 100644 index 0000000..f3fcbfe --- /dev/null +++ b/Assets/GoogleVR/Scripts/GvrCardboardHelpers.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cb5f458261eac491b9379eb30aec0947 +timeCreated: 1494387741 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/GvrEditorEmulator.cs b/Assets/GoogleVR/Scripts/GvrEditorEmulator.cs new file mode 100644 index 0000000..a38b7fe --- /dev/null +++ b/Assets/GoogleVR/Scripts/GvrEditorEmulator.cs @@ -0,0 +1,107 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System; +using System.Collections.Generic; + +using Gvr.Internal; + +/// Provides mouse-controlled head tracking emulation in the Unity editor. +public class GvrEditorEmulator : MonoBehaviour { + private const string AXIS_MOUSE_X = "Mouse X"; + private const string AXIS_MOUSE_Y = "Mouse Y"; + +#if UNITY_EDITOR && UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_IOS) + // Simulated neck model. Vector from the neck pivot point to the point between the eyes. + private static readonly Vector3 m_neckOffset = new Vector3(0, 0.075f, 0.08f); + + // Use mouse to emulate head in the editor. + // These variables must be static so that head pose is maintained between scene changes, + // as it is on device. + private static float m_mouseX = 0; + private static float m_mouseY = 0; + private static float m_mouseZ = 0; + + private bool m_isRecenterOnlyController = false; +#endif + + [Tooltip("Camera to track")] + public Camera m_camera; + +#if UNITY_EDITOR && UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_IOS) + void Start() + { + GvrRecenterOnlyController controllerOnlyRecenter = + FindObjectOfType(); + if (controllerOnlyRecenter != null) + { + m_isRecenterOnlyController = true; + } + if (m_camera == null) + { + m_camera = Camera.main; + } + } + + void Update() + { + if (GvrController.Recentered) + { + Recenter(); + } + + Quaternion rot; + bool rolled = false; + if (Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt)) { + m_mouseX += Input.GetAxis(AXIS_MOUSE_X) * 5; + if (m_mouseX <= -180) { + m_mouseX += 360; + } else if (m_mouseX > 180) { + m_mouseX -= 360; + } + m_mouseY -= Input.GetAxis(AXIS_MOUSE_Y) * 2.4f; + m_mouseY = Mathf.Clamp(m_mouseY, -85, 85); + } else if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) { + rolled = true; + m_mouseZ += Input.GetAxis(AXIS_MOUSE_X) * 5; + m_mouseZ = Mathf.Clamp(m_mouseZ, -85, 85); + } + if (!rolled) { + // People don't usually leave their heads tilted to one side for long. + m_mouseZ = Mathf.Lerp(m_mouseZ, 0, Time.deltaTime / (Time.deltaTime + 0.1f)); + } + rot = Quaternion.Euler(m_mouseY, m_mouseX, m_mouseZ); + var neck = (rot * m_neckOffset - m_neckOffset.y * Vector3.up) * m_camera.transform.lossyScale.y; + + Vector3 camPosition = m_camera.transform.position; + camPosition.y = neck.y; + m_camera.transform.localPosition = neck; + m_camera.transform.localRotation = rot; + } +#endif // UNITY_EDITOR && UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_IOS) + + public void Recenter() + { +#if UNITY_EDITOR && UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_IOS) + if (m_isRecenterOnlyController) + { + return; + } + m_mouseX = m_mouseZ = 0; // Do not reset pitch, which is how it works on the phone. + m_camera.transform.localPosition = Vector3.zero; + m_camera.transform.localRotation = new Quaternion(m_mouseX, m_mouseY, m_mouseZ, 1); +#endif // UNITY_EDITOR && UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_IOS) + } +} diff --git a/Assets/GoogleVR/Scripts/GvrEditorEmulator.cs.meta b/Assets/GoogleVR/Scripts/GvrEditorEmulator.cs.meta new file mode 100644 index 0000000..0c3c27f --- /dev/null +++ b/Assets/GoogleVR/Scripts/GvrEditorEmulator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 41679d3338266415f88d226e6bf3d0be +timeCreated: 1435273491 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/GvrSettings.cs b/Assets/GoogleVR/Scripts/GvrSettings.cs new file mode 100644 index 0000000..d6896c7 --- /dev/null +++ b/Assets/GoogleVR/Scripts/GvrSettings.cs @@ -0,0 +1,149 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/// +/// Accesses and configures Daydream settings. +/// + +// This class is defined only for versions of Unity with the GVR native integration. +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +using UnityEngine; +using UnityEngine.VR; +using System; +using System.Runtime.InteropServices; +#if UNITY_EDITOR +using UnityEditor; +#endif // UNITY_EDITOR + +public static class GvrSettings { + private const string METHOD_GET_WINDOW = "getWindow"; + private const string METHOD_RUN_ON_UI_THREAD = "runOnUiThread"; + private const string METHOD_SET_SUSTAINED_PERFORMANCE_MODE = "setSustainedPerformanceMode"; + + // Viewer type. + public enum ViewerPlatformType { + Error = -1, // Plugin-only value; does not exist in the NDK. + Cardboard, + Daydream + } + public static ViewerPlatformType ViewerPlatform { + // Expose a setter only for the editor emulator, for development testing purposes. +#if UNITY_EDITOR + get { + return editorEmulatorOnlyViewerPlatformType; + } + set { + editorEmulatorOnlyViewerPlatformType = value; + } +#else + get { + IntPtr gvrContextPtr = VRDevice.GetNativePtr(); + if (gvrContextPtr == IntPtr.Zero) { + Debug.Log("Null GVR context pointer, could not get viewer platform type"); + return ViewerPlatformType.Error; + } + return (ViewerPlatformType) gvr_get_viewer_type(gvrContextPtr); + } +#endif // UNITY_EDITOR + } +#if UNITY_EDITOR + private static ViewerPlatformType editorEmulatorOnlyViewerPlatformType = + ViewerPlatformType.Daydream; +#endif // UNITY_EDITOR + + // The developer is expected to remember whether sustained performance mode is set + // at runtime, via the checkbox in Player Settings. + // This state may be recorded here in a future release. + public static bool SustainedPerformanceMode { + set { + SetSustainedPerformanceMode(value); + } + } + + // Handedness preference. + public enum UserPrefsHandedness { + Error = -1, // Plugin-only value, does not exist in the NDK. + Right, + Left + } + public static UserPrefsHandedness Handedness { + // Expose a setter only for the editor emulator, for development testing purposes. +#if UNITY_EDITOR + get { + return (UserPrefsHandedness)EditorPrefs.GetInt(EMULATOR_HANDEDNESS_PREF_NAME, (int)UserPrefsHandedness.Right); + } + set { + EditorPrefs.SetInt(EMULATOR_HANDEDNESS_PREF_NAME, (int)value); + } +#else + // Running on Android. + get { + IntPtr gvrContextPtr = VRDevice.GetNativePtr(); + if (gvrContextPtr == IntPtr.Zero) { + Debug.Log("Null GVR context pointer, could not get GVR user prefs' handedness"); + return UserPrefsHandedness.Error; + } + + IntPtr gvrUserPrefsPtr = gvr_get_user_prefs(gvrContextPtr); + if (gvrUserPrefsPtr == IntPtr.Zero) { + Debug.Log("Null GVR user prefs pointer, could not get handedness"); + return UserPrefsHandedness.Error; + } + + return (UserPrefsHandedness) gvr_user_prefs_get_controller_handedness(gvrUserPrefsPtr); + } +#endif // UNITY_EDITOR + } +#if UNITY_EDITOR + // This allows developers to test handedness in the editor emulator. + private const string EMULATOR_HANDEDNESS_PREF_NAME = "GoogleVREditorEmulatorHandedness"; +#endif // UNITY_EDITOR + + private static void SetSustainedPerformanceMode(bool enabled) { +#if !UNITY_EDITOR + AndroidJavaObject androidActivity = null; + try { + androidActivity = GvrActivityHelper.GetActivity(); + } catch (AndroidJavaException e) { + Debug.LogError("Exception while connecting to the Activity: " + e); + return; + } + + AndroidJavaObject androidWindow = androidActivity.Call(METHOD_GET_WINDOW); + if (androidWindow == null) { + Debug.LogError("No window found on the current android activity"); + return; + } + + // The sim thread in Unity is single-threaded, so we don't need to lock when accessing + // or assigning androidWindow. + androidActivity.Call(METHOD_RUN_ON_UI_THREAD, new AndroidJavaRunnable(() => { + androidWindow.Call(METHOD_SET_SUSTAINED_PERFORMANCE_MODE, enabled); + Debug.Log("Set sustained performance mode: " + (enabled ? "ON" : "OFF")); + }) + ); +#endif // !UNITY_EDITOR + } + + [DllImport(GvrActivityHelper.GVR_DLL_NAME)] + private static extern IntPtr gvr_get_user_prefs(IntPtr gvrContextPtr); + + [DllImport(GvrActivityHelper.GVR_DLL_NAME)] + private static extern int gvr_get_viewer_type(IntPtr gvrContextPtr); + + [DllImport(GvrActivityHelper.GVR_DLL_NAME)] + private static extern int gvr_user_prefs_get_controller_handedness(IntPtr gvrUserPrefsPtr); +} +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) diff --git a/Assets/GoogleVR/Scripts/GvrSettings.cs.meta b/Assets/GoogleVR/Scripts/GvrSettings.cs.meta new file mode 100644 index 0000000..0a9d312 --- /dev/null +++ b/Assets/GoogleVR/Scripts/GvrSettings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c485d86d5e69340f09123a723b06bc87 +timeCreated: 1474311726 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/GvrUnitySdkVersion.cs b/Assets/GoogleVR/Scripts/GvrUnitySdkVersion.cs new file mode 100644 index 0000000..8c86599 --- /dev/null +++ b/Assets/GoogleVR/Scripts/GvrUnitySdkVersion.cs @@ -0,0 +1,32 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +/// +/// Provides and logs versioning information for the GVR Unity SDK. +/// +public class GvrUnitySdkVersion { + public const string GVR_SDK_VERSION = "1.60.0"; + +// Only log GVR SDK version when the current build platform is Android or iOS. +#if UNITY_ANDROID || UNITY_IOS + private const string VERSION_HEADER = "GVR Unity SDK Version: "; + + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + static void LogGvrUnitySdkVersion() { + Debug.Log(VERSION_HEADER + GVR_SDK_VERSION); + } +#endif // UNITY_ANDROID || UNITY_IOS +} diff --git a/Assets/GoogleVR/Scripts/GvrUnitySdkVersion.cs.meta b/Assets/GoogleVR/Scripts/GvrUnitySdkVersion.cs.meta new file mode 100644 index 0000000..baaef6b --- /dev/null +++ b/Assets/GoogleVR/Scripts/GvrUnitySdkVersion.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 12bd1ba026e3d49a285ef666388aa4e9 +timeCreated: 1476406456 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard.meta b/Assets/GoogleVR/Scripts/Keyboard.meta new file mode 100644 index 0000000..3a2f5df --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cfb58d4ed8f634ab6bddca7304737c01 +folderAsset: yes +timeCreated: 1478817584 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboard.cs b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboard.cs new file mode 100644 index 0000000..f084f0f --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboard.cs @@ -0,0 +1,366 @@ +// Copyright 2017 Google Inc. All rights reserved. +// // +// // Licensed under the Apache License, Version 2.0 (the "License"); +// // you may not use this file except in compliance with the License. +// // You may obtain a copy of the License at +// // +// // http://www.apache.org/licenses/LICENSE-2.0 +// // +// // Unless required by applicable law or agreed to in writing, software +// // distributed under the License is distributed on an "AS IS" BASIS, +// // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// // See the License for the specific language governing permissions and +// // limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; +using Gvr.Internal; +using System; +using System.Collections; +using System.Collections.Generic; + +// Events to update the keyboard. +// These values depend on C API keyboard values +public enum GvrKeyboardEvent { + /// Unknown error. + GVR_KEYBOARD_ERROR_UNKNOWN = 0, + /// The keyboard service could not be connected. This is usually due to the + /// keyboard service not being installed. + GVR_KEYBOARD_ERROR_SERVICE_NOT_CONNECTED = 1, + /// No locale was found in the keyboard service. + GVR_KEYBOARD_ERROR_NO_LOCALES_FOUND = 2, + /// The keyboard SDK tried to load dynamically but failed. This is usually due + /// to the keyboard service not being installed or being out of date. + GVR_KEYBOARD_ERROR_SDK_LOAD_FAILED = 3, + /// Keyboard becomes visible. + GVR_KEYBOARD_SHOWN = 4, + /// Keyboard becomes hidden. + GVR_KEYBOARD_HIDDEN = 5, + /// Text has been updated. + GVR_KEYBOARD_TEXT_UPDATED = 6, + /// Text has been committed. + GVR_KEYBOARD_TEXT_COMMITTED = 7, +}; + +// These values depend on C API keyboard values. +public enum GvrKeyboardError { + UNKNOWN = 0, + SERVICE_NOT_CONNECTED = 1, + NO_LOCALES_FOUND = 2, + SDK_LOAD_FAILED = 3 +}; + +// These values depend on C API keyboard values. +public enum GvrKeyboardInputMode { + DEFAULT = 0, + NUMERIC = 1 +}; + +// Handles keyboard state management such as hiding and displaying +// the keyboard, directly modifying text and stereoscopic rendering. +public class GvrKeyboard : MonoBehaviour { + + private static GvrKeyboard instance; + private static IKeyboardProvider keyboardProvider; + private KeyboardState keyboardState = new KeyboardState(); + private IEnumerator keyboardUpdate; + + // Keyboard delegate types. + public delegate void StandardCallback(); + public delegate void EditTextCallback(string edit_text); + public delegate void ErrorCallback(GvrKeyboardError err); + public delegate void KeyboardCallback(IntPtr closure, GvrKeyboardEvent evt); + + // Private data and callbacks. + private ErrorCallback errorCallback = null; + private StandardCallback showCallback = null; + private StandardCallback hideCallback = null; + private EditTextCallback updateCallback = null; + private EditTextCallback enterCallback = null; + +#if UNITY_HAS_GOOGLEVR + // Which eye is currently being rendered. + private bool isRight = false; +#endif // UNITY_HAS_GOOGLEVR + + private bool isKeyboardHidden = false; + private const float kExecuterWait = 0.01f; + private static List threadSafeCallbacks = + new List(); + private static System.Object callbacksLock = new System.Object(); + + // Public parameters. + public GvrKeyboardDelegateBase keyboardDelegate = null; + public GvrKeyboardInputMode inputMode = GvrKeyboardInputMode.DEFAULT; + public bool useRecommended = true; + public float distance = 0; + + public string EditorText { + get { return instance != null ? instance.keyboardState.editorText : string.Empty; } + } + + public GvrKeyboardInputMode Mode { + get { return instance != null ? instance.keyboardState.mode : GvrKeyboardInputMode.DEFAULT; } + } + + public bool IsValid { + get { return instance != null ? instance.keyboardState.isValid : false; } + } + + public bool IsReady { + get { return instance != null ? instance.keyboardState.isReady : false; } + } + + public Matrix4x4 WorldMatrix { + get { return instance != null ? instance.keyboardState.worldMatrix : Matrix4x4.zero; } + } + + void Awake() { + if (instance != null) { + Debug.LogError("More than one GvrKeyboard instance was found in your scene. " + + "Ensure that there is only one GvrKeyboard."); + enabled = false; + return; + } + instance = this; + if (keyboardProvider == null) { + keyboardProvider = KeyboardProviderFactory.CreateKeyboardProvider(this); + } + } + + void OnDestroy() { + instance = null; + } + + // Use this for initialization. + void Start() { + if (keyboardDelegate != null) { + errorCallback = keyboardDelegate.OnKeyboardError; + showCallback = keyboardDelegate.OnKeyboardShow; + hideCallback = keyboardDelegate.OnKeyboardHide; + updateCallback = keyboardDelegate.OnKeyboardUpdate; + enterCallback = keyboardDelegate.OnKeyboardEnterPressed; + keyboardDelegate.KeyboardHidden += KeyboardDelegate_KeyboardHidden; + keyboardDelegate.KeyboardShown += KeyboardDelegate_KeyboardShown; + } + keyboardProvider.ReadState(keyboardState); + + if (IsValid) { + if (keyboardProvider.Create(OnKeyboardCallback)) { + keyboardProvider.SetInputMode(inputMode); + } + } else { + Debug.LogError("Could not validate keyboard"); + } + } + + // Update per-frame data. + void Update() { + if (keyboardProvider == null) { + return; + } + keyboardProvider.ReadState(keyboardState); + if (IsReady) { + // Reset position of keyboard. + if (transform.hasChanged) { + Show(); + transform.hasChanged = false; + } + + keyboardProvider.UpdateData(); + } + } + + // Use this function for procedural rendering + // Gets called twice per frame, once for each eye. + // On each frame, left eye renders before right eye so + // we keep track of a boolean that toggles back and forth + // between each eye. + void OnRenderObject() { + if (keyboardProvider == null || !IsReady) { + return; + } +#if UNITY_HAS_GOOGLEVR + Camera camera = Camera.current; + if (camera && camera == Camera.main) { + // Get current eye. + Camera.StereoscopicEye camEye = isRight ? Camera.StereoscopicEye.Right : Camera.StereoscopicEye.Left; + + // Camera matrices. + Matrix4x4 proj = camera.GetStereoProjectionMatrix(camEye); + Matrix4x4 modelView = camera.GetStereoViewMatrix(camEye); + + // Camera viewport. + Rect viewport = camera.pixelRect; + + // Render keyboard. + keyboardProvider.Render((int) camEye, modelView, proj, viewport); + + // Swap. + isRight = !isRight; + } +#else + Debug.LogWarning("Keyboard is not supported in versions of Unity without the native integration"); +#endif // !UNITY_HAS_GOOGLEVR + } + + // Resets keyboard text. + public void ClearText() { + if (keyboardProvider != null) { + keyboardProvider.EditorText = string.Empty; + } + } + + public void Show() { + if (keyboardProvider == null) { + return; + } + + // Get user matrix. + Quaternion fixRot = new Quaternion(transform.rotation.x * -1, transform.rotation.y * -1, + transform.rotation.z, transform.rotation.w); + Matrix4x4 modelMatrix = Matrix4x4.TRS(transform.position, fixRot, Vector3.one); + Matrix4x4 mat = Matrix4x4.identity; + Vector3 position = gameObject.transform.position; + if (position.x == 0 && position.y == 0 && position.z == 0 && !useRecommended) { + // Force use recommended to be true, otherwise keyboard won't show up. + keyboardProvider.Show(mat, true, distance, modelMatrix); + return; + } + + // Matrix needs to be set only if we're not using the recommended one. + // Uses the values of the keyboard gameobject transform as reported by Unity. If this is + // the zero vector, parent it under another gameobject instead. + if (!useRecommended) { + mat = GetKeyboardObjectMatrix(position); + } + + keyboardProvider.Show(mat, useRecommended, distance, modelMatrix); + } + + public void Hide() { + if (keyboardProvider != null) { + keyboardProvider.Hide(); + } + } + + public void OnPointerClick(BaseEventData data) { + if (isKeyboardHidden) { + Show(); + } + } + + void OnEnable() { + keyboardUpdate = Executer(); + StartCoroutine(keyboardUpdate); + } + + void OnDisable() { + StopCoroutine(keyboardUpdate); + } + + void OnApplicationPause(bool paused) { + if (null == keyboardProvider) return; + if (paused) { + keyboardProvider.OnPause(); + } else { + keyboardProvider.OnResume(); + } + } + + IEnumerator Executer() { + while (true) { + yield return new WaitForSeconds(kExecuterWait); + + while (threadSafeCallbacks.Count > 0) { + GvrKeyboardEvent keyboardEvent = threadSafeCallbacks[0]; + PoolKeyboardCallbacks(keyboardEvent); + lock (callbacksLock) { + threadSafeCallbacks.RemoveAt(0); + } + } + } + } + + private void PoolKeyboardCallbacks(GvrKeyboardEvent keyboardEvent) { + switch (keyboardEvent) { + case GvrKeyboardEvent.GVR_KEYBOARD_ERROR_UNKNOWN: + errorCallback(GvrKeyboardError.UNKNOWN); + break; + case GvrKeyboardEvent.GVR_KEYBOARD_ERROR_SERVICE_NOT_CONNECTED: + errorCallback(GvrKeyboardError.SERVICE_NOT_CONNECTED); + break; + case GvrKeyboardEvent.GVR_KEYBOARD_ERROR_NO_LOCALES_FOUND: + errorCallback(GvrKeyboardError.NO_LOCALES_FOUND); + break; + case GvrKeyboardEvent.GVR_KEYBOARD_ERROR_SDK_LOAD_FAILED: + errorCallback(GvrKeyboardError.SDK_LOAD_FAILED); + break; + case GvrKeyboardEvent.GVR_KEYBOARD_SHOWN: + showCallback(); + break; + case GvrKeyboardEvent.GVR_KEYBOARD_HIDDEN: + hideCallback(); + break; + case GvrKeyboardEvent.GVR_KEYBOARD_TEXT_UPDATED: + updateCallback(keyboardProvider.EditorText); + break; + case GvrKeyboardEvent.GVR_KEYBOARD_TEXT_COMMITTED: + enterCallback(keyboardProvider.EditorText); + break; + } + } + + private static void OnKeyboardCallback(IntPtr closure, GvrKeyboardEvent keyboardEvent) { + lock (callbacksLock) { + threadSafeCallbacks.Add(keyboardEvent); + } + } + + private void KeyboardDelegate_KeyboardShown(object sender, System.EventArgs e) { + isKeyboardHidden = false; + } + + private void KeyboardDelegate_KeyboardHidden(object sender, System.EventArgs e) { + isKeyboardHidden = true; + } + + // Returns a matrix populated by the keyboard's gameobject position. If the position is not + // zero, but comes back as zero, parent this under another gameobject instead. + private Matrix4x4 GetKeyboardObjectMatrix(Vector3 position) { + // Set keyboard position based on this gameObject's position. + float angleX = Mathf.Atan2(position.y, position.x); + float kTanAngleX = Mathf.Tan(angleX); + float newPosX = kTanAngleX * position.x; + + float angleY = Mathf.Atan2(position.x, position.y); + float kTanAngleY = Mathf.Tan(angleY); + float newPosY = kTanAngleY * position.y; + + float angleZ = Mathf.Atan2(position.y, position.z); + float kTanAngleZ = Mathf.Tan(angleZ); + float newPosZ = kTanAngleZ * position.z; + + Vector3 keyboardPosition = new Vector3(newPosX, newPosY, newPosZ); + Vector3 lookPosition = Camera.main.transform.position; + + Quaternion rotation = Quaternion.LookRotation(lookPosition); + Matrix4x4 mat = new Matrix4x4(); + mat.SetTRS(keyboardPosition, rotation, position); + + // Set diagonal to identity if any of them are zero. + if (mat[0, 0] == 0) { + Vector4 row0 = mat.GetRow(0); + mat.SetRow(0, new Vector4(1, row0.y, row0.z, row0.w)); + } + if (mat[1, 1] == 0) { + Vector4 row1 = mat.GetRow(1); + mat.SetRow(1, new Vector4(row1.x, 1, row1.z, row1.w)); + } + if (mat[2, 2] == 0) { + Vector4 row2 = mat.GetRow(2); + mat.SetRow(2, new Vector4(row2.x, row2.y, 1, row2.w)); + } + return mat; + } +} diff --git a/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboard.cs.meta b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboard.cs.meta new file mode 100644 index 0000000..1f184fe --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboard.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 573e2b04dc4734d68a2b6747421ce0bc +timeCreated: 1478820921 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardDelegateBase.cs b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardDelegateBase.cs new file mode 100644 index 0000000..26b47a0 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardDelegateBase.cs @@ -0,0 +1,35 @@ +// Copyright 2017 Google Inc. All rights reserved. +// // +// // Licensed under the Apache License, Version 2.0 (the "License"); +// // you may not use this file except in compliance with the License. +// // You may obtain a copy of the License at +// // +// // http://www.apache.org/licenses/LICENSE-2.0 +// // +// // Unless required by applicable law or agreed to in writing, software +// // distributed under the License is distributed on an "AS IS" BASIS, +// // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// // See the License for the specific language governing permissions and +// // limitations under the License. + +using UnityEngine; +using System; + +// This is an abstract class instead of an interface so that it can be exposed in Unity's +// editor. It inherits from MonoBehaviour so that it can be directly used as a game object. +public abstract class GvrKeyboardDelegateBase : MonoBehaviour { + + public abstract void OnKeyboardShow(); + + public abstract void OnKeyboardHide(); + + public abstract void OnKeyboardUpdate(string edit_text); + + public abstract void OnKeyboardEnterPressed(string edit_text); + + public abstract void OnKeyboardError(GvrKeyboardError errorCode); + + public abstract event EventHandler KeyboardHidden; + public abstract event EventHandler KeyboardShown; +} + diff --git a/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardDelegateBase.cs.meta b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardDelegateBase.cs.meta new file mode 100644 index 0000000..d8e8221 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardDelegateBase.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3590c93395a39449ca11509317375cea +timeCreated: 1478820262 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardIntent.cs b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardIntent.cs new file mode 100644 index 0000000..5ff7279 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardIntent.cs @@ -0,0 +1,94 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0(the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#if UNITY_ANDROID || UNITY_EDITOR +using UnityEngine; +using System; + +public class GvrKeyboardIntent { + + // The Play Store intent is requested via an Android Activity Fragment java object. + private AndroidJavaObject keyboardFragment = null; + + // Constants used via JNI to access the keyboard fragment. + private const string FRAGMENT_CLASSNAME = + "com.google.gvr.keyboardsupport.KeyboardFragment"; + private const string CALLBACK_CLASSNAME = FRAGMENT_CLASSNAME + + "$KeyboardCallback"; + + // Singleton instance. + private static GvrKeyboardIntent theInstance; + + /// The singleton instance of the PermissionsRequester class, + /// lazily instantiated. + public static GvrKeyboardIntent Instance { + get { + if (theInstance == null) { + theInstance = new GvrKeyboardIntent(); + if (!theInstance.InitializeFragment()) { + Debug.LogError("Cannot initialize fragment!"); + theInstance = null; + } + } + return theInstance; + } + } + + /// + /// Initializes the fragment via JNI. + /// + /// True if fragment was initialized. + protected bool InitializeFragment() { +#if UNITY_EDITOR + Debug.LogWarning("GvrKeyboardIntent requires the Android runtime environment"); + return false; +#elif UNITY_ANDROID + AndroidJavaClass ajc = new AndroidJavaClass(FRAGMENT_CLASSNAME); + + if (ajc != null) { + // Get the KeyboardFragment object + keyboardFragment = ajc.CallStatic("getInstance", + GvrActivityHelper.GetActivity()); + } + + return keyboardFragment != null && + keyboardFragment.GetRawObject() != IntPtr.Zero; +#endif + } + + public void LaunchPlayStore() { + KeyboardCallback cb = new KeyboardCallback(); + keyboardFragment.Call("launchPlayStore", cb); + } + + /// + /// Keyboard callback implementation. + /// + /// Instances of this class are passed to the java fragment and then + /// invoked once the request process is completed by the user. + /// + class KeyboardCallback : AndroidJavaProxy { + + internal KeyboardCallback() : base(CALLBACK_CLASSNAME) { + } + + /// + /// Called when then flow is completed. + /// + void onPlayStoreResult() { + Application.Quit(); + } + } + +} +#endif // UNITY_ANDROID || UNITY_EDITOR diff --git a/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardIntent.cs.meta b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardIntent.cs.meta new file mode 100644 index 0000000..8c725b7 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/GvrKeyboardIntent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 75e29b2b7f39fc5489e792b0f3338c79 +timeCreated: 1494440249 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal.meta b/Assets/GoogleVR/Scripts/Keyboard/Internal.meta new file mode 100644 index 0000000..9921fc5 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 492fc075af2fa4639a072bc0017695da +folderAsset: yes +timeCreated: 1478821396 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/IKeyboardProvider.cs b/Assets/GoogleVR/Scripts/Keyboard/Internal/IKeyboardProvider.cs new file mode 100644 index 0000000..a06d840 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/IKeyboardProvider.cs @@ -0,0 +1,48 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +namespace Gvr.Internal { + /// Internal interface that abstracts an implementation of a keyboard. + /// + /// Each platform has a different concrete implementation of a Keyboard Provider. + /// For example, if running on the Unity Editor, we use an implementation that + /// emulates the keyboard behaviour. If running on a real Android device, + /// we use an implementation that uses the underlying Daydream keyboard API. + interface IKeyboardProvider { + /// Notifies the controller provider that the application has paused. + void OnPause(); + + /// Notifies the controller provider that the application has resumed. + void OnResume(); + + /// Reads the controller's current state and stores it in outState. + void ReadState(KeyboardState outState); + + bool Create(GvrKeyboard.KeyboardCallback keyboardEvent); + + void UpdateData(); + + void Render(int eye, Matrix4x4 modelview, Matrix4x4 projection, Rect viewport); + + void Hide(); + + void Show(Matrix4x4 controllerMatrix, bool useRecommended, float distance, Matrix4x4 model); + + void SetInputMode(GvrKeyboardInputMode mode); + + string EditorText { get; set; } + } +} diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/IKeyboardProvider.cs.meta b/Assets/GoogleVR/Scripts/Keyboard/Internal/IKeyboardProvider.cs.meta new file mode 100644 index 0000000..567cebd --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/IKeyboardProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1f16e78d5a8cbe946b9dbaad22815581 +timeCreated: 1491935011 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviderFactory.cs b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviderFactory.cs new file mode 100644 index 0000000..e03b37e --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviderFactory.cs @@ -0,0 +1,34 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +namespace Gvr.Internal { + /// Factory that provides a concrete implementation of IKeyboardProvider for the + /// current platform. + static class KeyboardProviderFactory { + static internal IKeyboardProvider CreateKeyboardProvider(GvrKeyboard owner) + { +#if UNITY_EDITOR + return new EmulatorKeyboardProvider(); +#elif UNITY_ANDROID && UNITY_HAS_GOOGLEVR + return new AndroidNativeKeyboardProvider(); +#else + // Other platforms not supported, including iOS and Unity versions w/o the native integraiton. + Debug.LogWarning("Platform not supported"); + return new DummyKeyboardProvider(); +#endif // UNITY_EDITOR + } + } +} diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviderFactory.cs.meta b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviderFactory.cs.meta new file mode 100644 index 0000000..9572f8c --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviderFactory.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 696c86fab86049947bd12e68a9b724cf +timeCreated: 1491935011 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders.meta b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders.meta new file mode 100644 index 0000000..5cea74a --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 49ac567412c5f8f4ea760a6ae6c0e6f5 +folderAsset: yes +timeCreated: 1491935236 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/AndroidNativeKeyboardProvider.cs b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/AndroidNativeKeyboardProvider.cs new file mode 100644 index 0000000..6a1e512 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/AndroidNativeKeyboardProvider.cs @@ -0,0 +1,337 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This is a Keyboard Subclass that runs on device only. It displays the +// full VR Keyboard. + +using UnityEngine; +using UnityEngine.VR; +using System; +using System.Runtime.InteropServices; + +/// @cond +namespace Gvr.Internal { + public class AndroidNativeKeyboardProvider : IKeyboardProvider { + private IntPtr renderEventFunction; + + // Android method names. + private const string METHOD_NAME_GET_PACKAGE_MANAGER = "getPackageManager"; + private const string METHOD_NAME_GET_PACKAGE_INFO = "getPackageInfo"; + private const string PACKAGE_NAME_VRINPUTMETHOD = "com.google.android.vr.inputmethod"; + private const string FIELD_NAME_VERSION_CODE = "versionCode"; + + // Min version for VrInputMethod. + private const int MIN_VERSION_VRINPUTMETHOD = 170509062; + + // Library name. + private const string dllName = "gvr_keyboard_shim_unity"; + + // Enum gvr_trigger_state. + private const int TRIGGER_NONE = 0; + private const int TRIGGER_PRESSED = 1; + + [StructLayout (LayoutKind.Sequential)] + private struct gvr_clock_time_point { + public long monotonic_system_time_nanos; + } + + [StructLayout (LayoutKind.Sequential)] + private struct gvr_recti { + public int left; + public int right; + public int bottom; + public int top; + } + + [DllImport (GvrActivityHelper.GVR_DLL_NAME)] + private static extern gvr_clock_time_point gvr_get_time_point_now(); + + [DllImport (dllName)] + private static extern GvrKeyboardInputMode gvr_keyboard_get_input_mode(IntPtr keyboard_context); + + [DllImport (dllName)] + private static extern void gvr_keyboard_set_input_mode(IntPtr keyboard_context, GvrKeyboardInputMode mode); + +#if UNITY_ANDROID + [DllImport(dllName)] + private static extern IntPtr gvr_keyboard_initialize(AndroidJavaObject app_context, AndroidJavaObject class_loader); +#endif + [DllImport (dllName)] + private static extern IntPtr gvr_keyboard_create(IntPtr closure, GvrKeyboard.KeyboardCallback callback); + + // Gets a recommended world space matrix. + [DllImport (dllName)] + private static extern void gvr_keyboard_get_recommended_world_from_keyboard_matrix(float distance_from_eye, + IntPtr matrix); + + // Sets the recommended world space matrix. The matrix may + // contain a combination of translation/rotation/scaling information. + [DllImport(dllName)] + private static extern void gvr_keyboard_set_world_from_keyboard_matrix(IntPtr keyboard_context, IntPtr matrix); + + // Shows the keyboard + [DllImport (dllName)] + private static extern void gvr_keyboard_show(IntPtr keyboard_context); + + // Updates the keyboard with the controller's button state. + [DllImport(dllName)] + private static extern void gvr_keyboard_update_button_state(IntPtr keyboard_context, int buttonIndex, bool pressed); + + // Updates the controller ray on the keyboard. + [DllImport(dllName)] + private static extern bool gvr_keyboard_update_controller_ray(IntPtr keyboard_context, IntPtr vector3Start, + IntPtr vector3End, IntPtr vector3Hit); + + // Returns the EditText with for the keyboard. + [DllImport (dllName)] + private static extern IntPtr gvr_keyboard_get_text(IntPtr keyboard_context); + + // Sets the edit_text for the keyboard. + // @return 1 if the edit text could be set. 0 if it cannot be set. + [DllImport (dllName)] + private static extern int gvr_keyboard_set_text(IntPtr keyboard_context, IntPtr edit_text); + + // Hides the keyboard. + [DllImport (dllName)] + private static extern void gvr_keyboard_hide(IntPtr keyboard_context); + + // Destroys the keyboard. Resources related to the keyboard is released. + [DllImport (dllName)] + private static extern void gvr_keyboard_destroy(IntPtr keyboard_context); + + // Called once per frame to set the time index. + [DllImport(dllName)] + private static extern void GvrKeyboardSetFrameData(IntPtr keyboard_context, gvr_clock_time_point t); + + // Sets VR eye data in preparation for rendering a single eye's view. + [DllImport(dllName)] + private static extern void GvrKeyboardSetEyeData(int eye_type, Matrix4x4 modelview, Matrix4x4 projection, gvr_recti viewport); + + [DllImport(dllName)] + private static extern IntPtr GetKeyboardRenderEventFunc(); + + // Private class data. + private IntPtr keyboard_context = IntPtr.Zero; + + // Used in the GVR Unity C++ shim layer. + private const int advanceID = 0x5DAC793B; + private const int renderLeftID = 0x3CF97A3D; + private const int renderRightID = 0x3CF97A3E; + private const string KEYBOARD_JAVA_CLASS = "com.google.vr.keyboard.GvrKeyboardUnity"; + private const long kPredictionTimeWithoutVsyncNanos = 50000000; + private const int kGvrControllerButtonClick = 1; + + private GvrKeyboardInputMode mode = GvrKeyboardInputMode.DEFAULT; + private string editorText = string.Empty; + private Matrix4x4 worldMatrix; + private bool isValid = false; + private bool isReady = false; + + public string EditorText { + get { + IntPtr text = gvr_keyboard_get_text(keyboard_context); + editorText = Marshal.PtrToStringAnsi(text); + return editorText; + } + set { + editorText = value; + IntPtr text = Marshal.StringToHGlobalAnsi(editorText); + gvr_keyboard_set_text(keyboard_context, text); + } + } + + public void SetInputMode(GvrKeyboardInputMode mode) { + Debug.Log("Calling set input mode: " + mode); + gvr_keyboard_set_input_mode(keyboard_context, mode); + this.mode = mode; + } + + public void OnPause() { } + + public void OnResume() { } + + public void ReadState(KeyboardState outState) { + outState.editorText = editorText; + outState.mode = mode; + outState.worldMatrix = worldMatrix; + outState.isValid = isValid; + outState.isReady = isReady; + } + + // Initialization function. + public AndroidNativeKeyboardProvider() { +#if UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + AndroidJavaObject activity = GvrActivityHelper.GetActivity(); + if (activity == null) { + Debug.Log("Failed to get activity for keyboard."); + return; + } + + AndroidJavaObject context = GvrActivityHelper.GetApplicationContext(activity); + if (context == null) { + Debug.Log("Failed to get context for keyboard."); + return; + } + + AndroidJavaObject plugin = new AndroidJavaObject(KEYBOARD_JAVA_CLASS); + if (plugin != null) { + plugin.Call("initializeKeyboard", context); + isValid = true; + } +#endif // UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + // Prevent compilation errors on 5.3.3 and lower. +#if UNITY_HAS_GOOGLEVR + InputTracking.disablePositionalTracking = true; +#endif // UNITY_HAS_GOOGLEVR + renderEventFunction = GetKeyboardRenderEventFunc(); + } + + ~AndroidNativeKeyboardProvider() { + gvr_keyboard_destroy(keyboard_context); + } + + public bool Create(GvrKeyboard.KeyboardCallback keyboardEvent) { + if (!IsVrInputMethodAppMinVersion(keyboardEvent)) { + return false; + } + keyboard_context = gvr_keyboard_create(IntPtr.Zero, keyboardEvent); + isReady = keyboard_context != IntPtr.Zero; + return isReady; + } + + public void Show(Matrix4x4 userMatrix, bool useRecommended, float distance, Matrix4x4 model) { + if (useRecommended) { + worldMatrix = getRecommendedMatrix(distance); + } else { + // Convert to GVR coordinates. + Matrix4x4 flipZ = Matrix4x4.Scale(new Vector3(1, 1, -1)); + worldMatrix = flipZ * userMatrix * flipZ; + worldMatrix = worldMatrix.transpose; + } + Matrix4x4 matToSet = worldMatrix * model.transpose; + IntPtr mat_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(matToSet)); + Marshal.StructureToPtr(matToSet, mat_ptr, true); + gvr_keyboard_set_world_from_keyboard_matrix(keyboard_context, mat_ptr); + gvr_keyboard_show(keyboard_context); + } + + public void UpdateData() { +#if UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + // Update controller state. + GvrBasePointer pointer = GvrPointerManager.Pointer; + if (pointer != null && GvrController.State == GvrConnectionState.Connected) { + bool pressed = GvrController.ClickButton; + gvr_keyboard_update_button_state(keyboard_context, kGvrControllerButtonClick, pressed); + + Vector3 startPoint = pointer.PointerTransform.position; + // Need to flip Z for native library + startPoint.z *= -1; + IntPtr start_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(startPoint)); + Marshal.StructureToPtr(startPoint, start_ptr, true); + + Vector3 endPoint = pointer.LineEndPoint; + // Need to flip Z for native library + endPoint.z *= -1; + IntPtr end_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(endPoint)); + Marshal.StructureToPtr(endPoint, end_ptr, true); + + Vector3 hit = Vector3.one; + IntPtr hit_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(Vector3.zero)); + Marshal.StructureToPtr(Vector3.zero, hit_ptr, true); + + gvr_keyboard_update_controller_ray(keyboard_context, start_ptr, end_ptr, hit_ptr); + hit = (Vector3)Marshal.PtrToStructure(hit_ptr, typeof(Vector3)); + hit.z *= -1; + } +#endif // UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + + // Get time stamp. + gvr_clock_time_point time = gvr_get_time_point_now(); + time.monotonic_system_time_nanos += kPredictionTimeWithoutVsyncNanos; + + // Update frame data. + GvrKeyboardSetFrameData(keyboard_context, time); + GL.IssuePluginEvent(renderEventFunction, advanceID); + } + + public void Render(int eye, Matrix4x4 modelview, Matrix4x4 projection, Rect viewport) { + gvr_recti rect = new gvr_recti(); + rect.left = (int)viewport.x; + rect.top = (int)viewport.y + (int)viewport.height; + rect.right = (int)viewport.x + (int)viewport.width; + rect.bottom = (int)viewport.y; + + // For the modelview matrix, we need to convert it to a world-to-camera + // matrix for GVR keyboard, hence the inverse. We need to convert left + // handed to right handed, hence the multiply by flipZ. + // Unity projection matrices are already in a form GVR needs. + // Unity stores matrices row-major, so both get a final transpose to get + // them column-major for GVR. + Matrix4x4 flipZ = Matrix4x4.Scale(new Vector3(1, 1, -1)); + GvrKeyboardSetEyeData(eye, (flipZ * modelview.inverse).transpose.inverse, projection.transpose, rect); + GL.IssuePluginEvent(renderEventFunction, eye == 0 ? renderLeftID : renderRightID); + } + + public void Hide() { + gvr_keyboard_hide(keyboard_context); + } + + // Return the recommended keyboard local to world space + // matrix given a distance value by the user. This value should + // be between 1 and 5 and will get clamped to that range. + private Matrix4x4 getRecommendedMatrix(float inputDistance) { + float distance = Mathf.Clamp(inputDistance, 1.0f, 5.0f); + Matrix4x4 result = new Matrix4x4(); + + IntPtr mat_ptr = Marshal.AllocHGlobal(Marshal.SizeOf (result)); + Marshal.StructureToPtr(result, mat_ptr, true); + gvr_keyboard_get_recommended_world_from_keyboard_matrix(distance, mat_ptr); + + result = (Matrix4x4) Marshal.PtrToStructure(mat_ptr, typeof(Matrix4x4)); + + return result; + } + + // Returns true if the VrInputMethod APK is at least as high as MIN_VERSION_VRINPUTMETHOD. + private bool IsVrInputMethodAppMinVersion(GvrKeyboard.KeyboardCallback keyboardEvent) { +#if UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + AndroidJavaObject activity = GvrActivityHelper.GetActivity(); + if (activity == null) { + Debug.Log("Failed to get activity for keyboard."); + return false; + } + AndroidJavaObject packageManager = activity.Call(METHOD_NAME_GET_PACKAGE_MANAGER); + if (packageManager == null) { + Debug.Log("Failed to get activity package manager"); + return false; + } + + AndroidJavaObject info = packageManager.Call(METHOD_NAME_GET_PACKAGE_INFO, PACKAGE_NAME_VRINPUTMETHOD, 0); + if (info == null) { + Debug.Log("Failed to get package info for com.google.android.apps.vr.inputmethod"); + return false; + } + + int versionCode = info.Get(FIELD_NAME_VERSION_CODE); + if (versionCode < MIN_VERSION_VRINPUTMETHOD) { + keyboardEvent(IntPtr.Zero, GvrKeyboardEvent.GVR_KEYBOARD_ERROR_SDK_LOAD_FAILED); + return false; + } + return true; +#else + return true; +#endif // UNITY_HAS_GOOGLEVR && UNITY_ANDROID && !UNITY_EDITOR + } + } +} diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/AndroidNativeKeyboardProvider.cs.meta b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/AndroidNativeKeyboardProvider.cs.meta new file mode 100644 index 0000000..2553ee1 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/AndroidNativeKeyboardProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 494e0fcfce3cb4d1c973863b3ad4e5d0 +timeCreated: 1478821396 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/DummyKeyboardProvider.cs b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/DummyKeyboardProvider.cs new file mode 100644 index 0000000..f065096 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/DummyKeyboardProvider.cs @@ -0,0 +1,47 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +namespace Gvr.Internal { + class DummyKeyboardProvider : IKeyboardProvider { + + private KeyboardState dummyState = new KeyboardState(); + + internal DummyKeyboardProvider() { } + + public void ReadState(KeyboardState outState) { + outState.CopyFrom(dummyState); + } + + public void OnPause() { } + + public void OnResume() { } + + public void UpdateData() { } + + public void Render(int eye, Matrix4x4 modelview, Matrix4x4 projection, Rect viewport) { } + + public void Hide() { } + + public void Show(Matrix4x4 controllerMatrix, bool useRecommended, float distance, + Matrix4x4 model) { } + + public bool Create(GvrKeyboard.KeyboardCallback keyboardEvent) { return true; } + + public void SetInputMode(GvrKeyboardInputMode mode) { } + + public string EditorText { get; set; } + } +} diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/DummyKeyboardProvider.cs.meta b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/DummyKeyboardProvider.cs.meta new file mode 100644 index 0000000..344471e --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/DummyKeyboardProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b9fcd2a047ec9c440a2bfeace305c425 +timeCreated: 1491941207 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/EmulatorKeyboardProvider.cs b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/EmulatorKeyboardProvider.cs new file mode 100644 index 0000000..d67e467 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/EmulatorKeyboardProvider.cs @@ -0,0 +1,145 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +// This is a version of the keyboard that runs directly in the Unity Editor. +// It is meant to simply be a placeholder so developers can test their games +// without having to use actual devices. +using UnityEngine; +using System; + +/// @cond +namespace Gvr.Internal { + /// Keyboard subclass to run in the Unity editor + public class EmulatorKeyboardProvider : IKeyboardProvider { + + private GameObject stub; + private bool showing; + + GvrKeyboard.KeyboardCallback keyboardCallback; + + private string editorText = string.Empty; + private GvrKeyboardInputMode mode = GvrKeyboardInputMode.DEFAULT; + private Matrix4x4 worldMatrix; + private bool isValid = false; + + public string EditorText { + get { return editorText; } + set { editorText = value; } + } + + public void SetInputMode(GvrKeyboardInputMode mode) { + this.mode = mode; + } + + public EmulatorKeyboardProvider() { + Debug.Log("Creating stub keyboard"); + + // Set default data; + showing = false; + isValid = true; + } + + public void OnPause() { } + + public void OnResume() { } + + public void ReadState(KeyboardState outState) { + outState.mode = mode; + outState.editorText = editorText; + outState.worldMatrix = worldMatrix; + outState.isValid = isValid; + outState.isReady = true; + } + + public bool Create(GvrKeyboard.KeyboardCallback keyboardEvent) { + keyboardCallback = keyboardEvent; + + if (!isValid) { + keyboardCallback(IntPtr.Zero, GvrKeyboardEvent.GVR_KEYBOARD_ERROR_SERVICE_NOT_CONNECTED); + } + return true; + } + + public void Show(Matrix4x4 controllerMatrix, bool useRecommended, float distance, Matrix4x4 model) { + if (!showing && isValid) { + showing = true; + worldMatrix = controllerMatrix; + keyboardCallback(IntPtr.Zero, GvrKeyboardEvent.GVR_KEYBOARD_SHOWN); + } + } + + public void UpdateData() { + // Can skip if keyboard not available + if (!showing) + { + return; + } + + if (Input.GetKeyDown(KeyCode.KeypadEnter)) + { + keyboardCallback(IntPtr.Zero, GvrKeyboardEvent.GVR_KEYBOARD_TEXT_COMMITTED); + return; + } + + if (Input.GetKeyDown(KeyCode.Backspace)) + { + if (editorText.Length > 0) + { + editorText = editorText.Substring(0, editorText.Length - 1); + SendUpdateNotification(); + } + return; + } + + if (Input.inputString.Length <= 0) + { + return; + } + + switch (mode) + { + case GvrKeyboardInputMode.DEFAULT: + editorText += Input.inputString; + break; + case GvrKeyboardInputMode.NUMERIC: + foreach (char n in Input.inputString) + { + if (n >= '0' && n <= '9') + { + editorText += n; + } + } + break; + default: + break; + } + + SendUpdateNotification(); + } + + public void Render(int eye, Matrix4x4 modelview, Matrix4x4 projection, Rect viewport) {} + + public void Hide() { + if (showing) { + showing = false; + keyboardCallback(IntPtr.Zero, GvrKeyboardEvent.GVR_KEYBOARD_HIDDEN); + } + } + + private void SendUpdateNotification() { + keyboardCallback(IntPtr.Zero, GvrKeyboardEvent.GVR_KEYBOARD_TEXT_UPDATED); + } + } +} diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/EmulatorKeyboardProvider.cs.meta b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/EmulatorKeyboardProvider.cs.meta new file mode 100644 index 0000000..70c8e10 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardProviders/EmulatorKeyboardProvider.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f73feeef531a54f2a8cf5b05a8c06e58 +timeCreated: 1478821396 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardState.cs b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardState.cs new file mode 100644 index 0000000..7e1bb10 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardState.cs @@ -0,0 +1,32 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +public class KeyboardState { + + internal string editorText = string.Empty; + internal GvrKeyboardInputMode mode = GvrKeyboardInputMode.DEFAULT; + internal bool isValid = false; + internal bool isReady = false; + internal Matrix4x4 worldMatrix; + + public void CopyFrom(KeyboardState other) { + editorText = other.editorText; + mode = other.mode; + isValid = other.isValid; + isReady = other.isReady; + worldMatrix = other.worldMatrix; + } +} diff --git a/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardState.cs.meta b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardState.cs.meta new file mode 100644 index 0000000..97b7ff4 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Keyboard/Internal/KeyboardState.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5baa0455970b442238015283920cc587 +timeCreated: 1479086112 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Permissions.meta b/Assets/GoogleVR/Scripts/Permissions.meta new file mode 100644 index 0000000..b513292 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Permissions.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1d8c43a259d16481c824f6f184a3bea5 +folderAsset: yes +timeCreated: 1478805319 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Permissions/GvrPermissionsRequester.cs b/Assets/GoogleVR/Scripts/Permissions/GvrPermissionsRequester.cs new file mode 100644 index 0000000..aec6e42 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Permissions/GvrPermissionsRequester.cs @@ -0,0 +1,173 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0(the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissioßns and +// limitations under the License. +#if UNITY_ANDROID || UNITY_EDITOR +using UnityEngine; +using System; +using System.Collections.Generic; + +// Requests dangerous permissions at runtime +public class GvrPermissionsRequester { + + // Permissions are requested via an Android Activity Fragment java object. + private AndroidJavaObject permissionsFragment = null; + + // Constants used via JNI to access the permissions fragment. + private const string FRAGMENT_CLASSNAME = + "com.google.gvr.permissionsupport.PermissionsFragment"; + private const string CALLBACK_CLASSNAME = FRAGMENT_CLASSNAME + + "$PermissionsCallback"; + + // Singleton instance. + private static GvrPermissionsRequester theInstance; + + /// The singleton instance of the PermissionsRequester class, + /// lazily instanciated. + public static GvrPermissionsRequester Instance { + get { + if (theInstance == null) { + theInstance = new GvrPermissionsRequester(); + if (!theInstance.InitializeFragment()) { + Debug.LogError("Cannot initialize fragment!"); + theInstance = null; + } + } + return theInstance; + } + } + + /// + /// Initializes the fragment via JNI. + /// + /// True if fragment was initialized. + protected bool InitializeFragment() { +#if UNITY_EDITOR + Debug.LogWarning("GvrPermissionsRequester requires the Android runtime environment"); + return false; +#elif UNITY_ANDROID + AndroidJavaClass ajc = new AndroidJavaClass(FRAGMENT_CLASSNAME); + + if (ajc != null) { + // Get the PermissionsRequesterFragment object + permissionsFragment = ajc.CallStatic("getInstance", + GvrActivityHelper.GetActivity()); + } + + return permissionsFragment != null && + permissionsFragment.GetRawObject() != IntPtr.Zero; +#endif + } + + public bool IsPermissionGranted(string permission) { + return permissionsFragment.Call("hasPermission", permission); + } + + public bool[] HasPermissionsGranted(string[] permissions) { + Debug.Log("Calling HasPermissionsGranted: " + permissions); + + object[] args = { permissions }; + AndroidJavaObject resultArr = + permissionsFragment.Call("hasPermissions", args); + + if (resultArr.GetRawObject() != IntPtr.Zero) { + return AndroidJNIHelper.ConvertFromJNIArray( + resultArr.GetRawObject()); + } else { + return new bool[0]; + } + + } + + public bool ShouldShowRational(string permission) { + Debug.Log("GvrPermissionsRequester.ShouldShowRational()"); + return permissionsFragment.Call("shouldShowRational", permission); + } + + public void RequestPermissions(string[] permissionArray, + Action callback) { + + PermissionsCallback cb = new PermissionsCallback(permissionArray, callback); + permissionsFragment.Call("requestPermission", permissionArray, cb); + Debug.Log("Calling requestPermission"); + } + + public class PermissionStatus + { + public PermissionStatus(string name, bool granted) { + Name = name; + Granted = granted; + } + public string Name + { + get; + set; + } + + public bool Granted + { + get; + set; + } + } + + /// + /// Permissions callback implementation. + /// + /// Instances of this class are passed to the java fragment and then + /// invoked once the request process is completed by the user. + /// + class PermissionsCallback : AndroidJavaProxy + { + + // permissions being requested. + private string[] permissionNames; + private Action callback; + internal PermissionsCallback(string[] requestedPermissions, + Action callback) : + base(CALLBACK_CLASSNAME) { + permissionNames = requestedPermissions; + this.callback = callback; + } + + /// + /// Called when then permission request flow is completed. + /// + /// + /// True if all permissions granted. + void onRequestPermissionResult(bool allPermissionsGranted) { + List permissionStatusList = + new List(); + if (allPermissionsGranted) { + Debug.Log("onRequestPermissionResult(): all permissions granted"); + foreach (string p in permissionNames) { + permissionStatusList.Add(new PermissionStatus(p, true)); + } + } + else { + Debug.Log("onRequestPermissionResult(): some permissions denied"); + + bool[] grantResults = Instance.HasPermissionsGranted(permissionNames); + Debug.Log("onRequestPermissionResult(): checking " + grantResults); + int size = grantResults.Length; + for (int i = 0; i < size; i++) { + // get the grant result + string name = permissionNames[i]; + bool grantResult = grantResults[i]; + permissionStatusList.Add(new PermissionStatus(name, grantResult)); + } + } + callback(permissionStatusList.ToArray()); + } + } +} +#endif // UNITY_ANDROID diff --git a/Assets/GoogleVR/Scripts/Permissions/GvrPermissionsRequester.cs.meta b/Assets/GoogleVR/Scripts/Permissions/GvrPermissionsRequester.cs.meta new file mode 100644 index 0000000..6e0865d --- /dev/null +++ b/Assets/GoogleVR/Scripts/Permissions/GvrPermissionsRequester.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b0dc366f6bd074945a86579cd29111b7 +timeCreated: 1477353933 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Pose3D.cs b/Assets/GoogleVR/Scripts/Pose3D.cs new file mode 100644 index 0000000..5c387a6 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Pose3D.cs @@ -0,0 +1,89 @@ +// Copyright 2014 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +using UnityEngine; + +/// @cond +/// Encapsulates a rotation and a translation. This is a convenience class that allows +/// construction and value access either by Matrix4x4 or Quaternion + Vector3 types. +public class Pose3D { + /// Right-handed to left-handed matrix converter (and vice versa). + protected static readonly Matrix4x4 flipZ = Matrix4x4.Scale(new Vector3(1, 1, -1)); + + /// The translation component of the pose. + public Vector3 Position { get; protected set; } + + /// The rotation component of the pose. + public Quaternion Orientation { get; protected set; } + + /// The pose as a matrix in Unity gameobject convention (left-handed). + public Matrix4x4 Matrix { get; protected set; } + + /// The pose as a matrix in right-handed coordinates. + public Matrix4x4 RightHandedMatrix { + get { + return flipZ * Matrix * flipZ; + } + } + + /// Default constructor. + /// Initializes position to the origin and orientation to the identity rotation. + public Pose3D() { + Position = Vector3.zero; + Orientation = Quaternion.identity; + Matrix = Matrix4x4.identity; + } + + /// Constructor that takes a Vector3 and a Quaternion. + public Pose3D(Vector3 position, Quaternion orientation) { + Set(position, orientation); + } + + /// Constructor that takes a Matrix4x4. + public Pose3D(Matrix4x4 matrix) { + Set(matrix); + } + + protected void Set(Vector3 position, Quaternion orientation) { + Position = position; + Orientation = orientation; + Matrix = Matrix4x4.TRS(position, orientation, Vector3.one); + } + + protected void Set(Matrix4x4 matrix) { + Matrix = matrix; + Position = matrix.GetColumn(3); + Orientation = Quaternion.LookRotation(matrix.GetColumn(2), matrix.GetColumn(1)); + } +} +/// @endcond + +/// @cond +/// Mutable version of Pose3D. +public class MutablePose3D : Pose3D { + /// Sets the position and orientation from a Vector3 + Quaternion. + public new void Set(Vector3 position, Quaternion orientation) { + base.Set(position, orientation); + } + + /// Sets the position and orientation from a Matrix4x4. + public new void Set(Matrix4x4 matrix) { + base.Set(matrix); + } + + /// Sets the position and orientation from a right-handed Matrix4x4. + public void SetRightHanded(Matrix4x4 matrix) { + Set(flipZ * matrix * flipZ); + } +} +/// @endcond diff --git a/Assets/GoogleVR/Scripts/Pose3D.cs.meta b/Assets/GoogleVR/Scripts/Pose3D.cs.meta new file mode 100644 index 0000000..673b8ee --- /dev/null +++ b/Assets/GoogleVR/Scripts/Pose3D.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d6dc4d56dabb6444a8fda878f2e8acc1 +timeCreated: 1428963852 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/UI.meta b/Assets/GoogleVR/Scripts/UI.meta new file mode 100644 index 0000000..5f97ab8 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9cd51b6aee4e94f098d0046b5590e1c3 +folderAsset: yes +timeCreated: 1448497037 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/UI/GvrBaseControllerVisual.cs b/Assets/GoogleVR/Scripts/UI/GvrBaseControllerVisual.cs new file mode 100644 index 0000000..09cfa91 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrBaseControllerVisual.cs @@ -0,0 +1,74 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System.Collections; + +/// Adjusts the material's alpha value according to the value suggested +/// by the arm model. +[RequireComponent(typeof(Renderer))] +public abstract class GvrBaseControllerVisual : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private Renderer materialRenderer; + private MaterialPropertyBlock materialPropertyBlock; + private int colorId; + + /// This is the preferred, maximum alpha value the object should have + /// when it is a comfortable distance from the head. + [Range(0.0f, 1.0f)] + public float maximumAlpha = 1.0f; + + protected virtual void Start() { + // Setup and cache material properties. + materialRenderer = GetComponent(); + materialPropertyBlock = new MaterialPropertyBlock(); + colorId = Shader.PropertyToID("_Color"); + + // Register the arm model updates. + if (GvrArmModel.Instance != null) { + GvrArmModel.Instance.OnArmModelUpdate += OnArmModelUpdate; + } else { + Debug.LogError("Unable to find GvrArmModel."); + } + } + + protected virtual void OnDestroy() { + // Unregister the arm model updates. + if (GvrArmModel.Instance != null) { + GvrArmModel.Instance.OnArmModelUpdate -= OnArmModelUpdate; + } + } + + /// Override this method to update materials and other visual changes + /// that need to happen every frame. + public abstract void OnVisualUpdate(); + + private void OnArmModelUpdate() { + OnVisualUpdate(); + AlphaUpdate(); + } + + private void AlphaUpdate() { + if (GvrArmModel.Instance != null && + materialRenderer.sharedMaterial.HasProperty(colorId)) { + // Set the material's alpha to the multiplied preferred alpha. + Color color = materialRenderer.sharedMaterial.color; + color.a = maximumAlpha * GvrArmModel.Instance.preferredAlpha; + materialRenderer.GetPropertyBlock(materialPropertyBlock); + materialPropertyBlock.SetColor(colorId, color); + materialRenderer.SetPropertyBlock(materialPropertyBlock); + } + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/UI/GvrBaseControllerVisual.cs.meta b/Assets/GoogleVR/Scripts/UI/GvrBaseControllerVisual.cs.meta new file mode 100644 index 0000000..e2e3efb --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrBaseControllerVisual.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b5c8f3731b832eb45b8287e36e9625dc +timeCreated: 1490035802 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/UI/GvrDropdown.cs b/Assets/GoogleVR/Scripts/UI/GvrDropdown.cs new file mode 100644 index 0000000..98ef097 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrDropdown.cs @@ -0,0 +1,102 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using System.Collections; + +/// Dropdown UI component that works with the GvrRaycasters. +/// This is a workaround for the fact that the Dropdown component doesn't work with custom raycasters +/// because it internally adds two GraphicRaycasters. +public class GvrDropdown : Dropdown { + private GameObject currentBlocker; + + public override void OnPointerClick(PointerEventData eventData) { + base.OnPointerClick(eventData); + FixTemplateAndBlockerRaycasters(); + } + + public override void OnSubmit(BaseEventData eventData) { + base.OnSubmit(eventData); + FixTemplateAndBlockerRaycasters(); + } + + private void FixTemplateAndBlockerRaycasters() { + if (template != null) { + FixRaycaster(template.gameObject, false); + } + FixRaycaster(currentBlocker, true); + } + + protected override GameObject CreateBlocker(Canvas rootCanvas) { + currentBlocker = base.CreateBlocker(rootCanvas); + return currentBlocker; + } + + protected override GameObject CreateDropdownList(GameObject template) { + GameObject dropdown = base.CreateDropdownList(template); + FixRaycaster(dropdown, false); + return dropdown; + } + + private void FixRaycaster(GameObject go, bool shouldCopyProperties) { + if (go == null) { + return; + } + + GraphicRaycaster oldRaycaster = go.GetComponent(); + Destroy(oldRaycaster); + + bool addedRaycaster; + GvrPointerGraphicRaycaster raycaster; + raycaster = GetOrAddComponent(go, out addedRaycaster); + + if (shouldCopyProperties) { + GvrPointerGraphicRaycaster templateRaycaster = GetTemplateRaycaster(); + if (addedRaycaster && templateRaycaster != null) { + CopyRaycasterProperties(templateRaycaster, raycaster); + } + } + } + + private GvrPointerGraphicRaycaster GetTemplateRaycaster() { + if (template == null) { + return null; + } + + return template.GetComponent(); + } + + private void CopyRaycasterProperties(GvrPointerGraphicRaycaster source, GvrPointerGraphicRaycaster dest) { + if (source == null || dest == null) { + return; + } + + dest.blockingMask = source.blockingMask; + dest.blockingObjects = source.blockingObjects; + dest.ignoreReversedGraphics = source.ignoreReversedGraphics; + dest.raycastMode = source.raycastMode; + } + + private static T GetOrAddComponent(GameObject go, out bool addedComponent) where T : Component { + T comp = go.GetComponent(); + addedComponent = false; + if (!comp) { + comp = go.AddComponent(); + addedComponent = true; + } + return comp; + } +} diff --git a/Assets/GoogleVR/Scripts/UI/GvrDropdown.cs.meta b/Assets/GoogleVR/Scripts/UI/GvrDropdown.cs.meta new file mode 100644 index 0000000..61ad389 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrDropdown.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fbdf93500b5014ec9872a59cb683089a +timeCreated: 1484681912 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/UI/GvrLaserPointer.cs b/Assets/GoogleVR/Scripts/UI/GvrLaserPointer.cs new file mode 100644 index 0000000..59bc5a0 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrLaserPointer.cs @@ -0,0 +1,95 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// GVR native integration. + +using UnityEngine; + +/// This laser pointer visual should be attached to the controller object. +/// The laser visual is important to help users locate their cursor +/// when its not directly in their field of view. +[RequireComponent(typeof(LineRenderer))] +public class GvrLaserPointer : MonoBehaviour { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + private GvrLaserPointerImpl laserPointerImpl; + + /// Color of the laser pointer including alpha transparency + public Color laserColor = new Color(1.0f, 1.0f, 1.0f, 0.25f); + + /// Maximum distance of the pointer (meters). + [Range(0.0f, 10.0f)] + public float maxLaserDistance = 0.75f; + + /// Maximum distance of the reticle (meters). + [Range(0.4f, 10.0f)] + public float maxReticleDistance = 2.5f; + + public GameObject reticle; + + /// Sorting order to use for the reticle's renderer. + /// Range values come from https://docs.unity3d.com/ScriptReference/Renderer-sortingOrder.html. + [Range(-32767, 32767)] + public int reticleSortingOrder = 32767; + + void Awake() { + laserPointerImpl = new GvrLaserPointerImpl(); + laserPointerImpl.LaserLineRenderer = gameObject.GetComponent(); + + if (reticle != null) { + Renderer reticleRenderer = reticle.GetComponent(); + reticleRenderer.sortingOrder = reticleSortingOrder; + } + } + + void Start() { + laserPointerImpl.OnStart(); + laserPointerImpl.MainCamera = Camera.main; + UpdateLaserPointerProperties(); + } + + void LateUpdate() { + UpdateLaserPointerProperties(); + laserPointerImpl.OnUpdate(); + } + + public void SetAsMainPointer() { + GvrPointerManager.Pointer = laserPointerImpl; + } + + public Vector3 LineStartPoint { + get { + return laserPointerImpl != null ? laserPointerImpl.PointerTransform.position : Vector3.zero; + } + } + + public Vector3 LineEndPoint { + get { return laserPointerImpl != null ? laserPointerImpl.LineEndPoint : Vector3.zero; } } + + public LineRenderer LineRenderer { + get { return laserPointerImpl != null ? laserPointerImpl.LaserLineRenderer : null; } + } + + private void UpdateLaserPointerProperties() { + if (laserPointerImpl == null) { + return; + } + laserPointerImpl.LaserColor = laserColor; + laserPointerImpl.Reticle = reticle; + laserPointerImpl.MaxLaserDistance = maxLaserDistance; + laserPointerImpl.MaxReticleDistance = maxReticleDistance; + laserPointerImpl.PointerTransform = transform; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/UI/GvrLaserPointer.cs.meta b/Assets/GoogleVR/Scripts/UI/GvrLaserPointer.cs.meta new file mode 100644 index 0000000..04ead5b --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrLaserPointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 51b65678ccdd949e9a58874d2880c0ef +timeCreated: 1472486489 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/UI/GvrLaserPointerImpl.cs b/Assets/GoogleVR/Scripts/UI/GvrLaserPointerImpl.cs new file mode 100644 index 0000000..9c7d3eb --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrLaserPointerImpl.cs @@ -0,0 +1,234 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// GVR native integration. + +using UnityEngine; +using UnityEngine.EventSystems; + +/// Implementation of GvrBasePointer for a laser pointer visual. +/// This script should be attached to the controller object. +/// The laser visual is important to help users locate their cursor +/// when its not directly in their field of view. +public class GvrLaserPointerImpl : GvrBasePointer { + /// Small offset to prevent z-fighting of the reticle (meters). + private const float Z_OFFSET_EPSILON = 0.1f; + + /// Final size of the reticle in meters when it is 1 meter from the camera. + /// The reticle will be scaled based on the size of the mesh so that it's size + /// matches this size. + private const float RETICLE_SIZE_METERS = 0.1f; + + /// The percentage of the reticle mesh that shows the reticle. + /// The rest of the reticle mesh is transparent. + private const float RETICLE_VISUAL_RATIO = 0.1f; + + public Camera MainCamera { private get; set; } + + public Color LaserColor { private get; set; } + + public LineRenderer LaserLineRenderer { get; set; } + + public float MaxLaserDistance { private get; set; } + + public float MaxReticleDistance { private get; set; } + + private GameObject reticle; + public GameObject Reticle { + get { + return reticle; + } + set { + reticle = value; + reticleMeshSizeMeters = 1.0f; + reticleMeshSizeRatio = 1.0f; + + if (reticle != null) { + MeshFilter meshFilter = reticle.GetComponent(); + if (meshFilter != null && meshFilter.mesh != null) { + reticleMeshSizeMeters = meshFilter.mesh.bounds.size.x; + if (reticleMeshSizeMeters != 0.0f) { + reticleMeshSizeRatio = 1.0f / reticleMeshSizeMeters; + } + } + } + } + } + + // Properties exposed for testing purposes. + public Vector3 PointerIntersection { get; private set; } + + public bool IsPointerIntersecting { get; private set; } + + public Ray PointerIntersectionRay { get; private set; } + + // The size of the reticle's mesh in meters. + private float reticleMeshSizeMeters; + + // The ratio of the reticleMeshSizeMeters to 1 meter. + // If reticleMeshSizeMeters is 10, then reticleMeshSizeRatio is 0.1. + private float reticleMeshSizeRatio; + + private Vector3 lineEndPoint = Vector3.zero; + public override Vector3 LineEndPoint { get { return lineEndPoint; } } + + public override float MaxPointerDistance { + get { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + return MaxReticleDistance; +#else + return 0; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + } + + public GvrLaserPointerImpl() { + MaxLaserDistance = 0.75f; + MaxReticleDistance = 2.5f; + } + +#if !(UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR)) + public override void OnStart() { + // Don't call base.Start() so that this pointer isn't activated when + // the editor doesn't have UNITY_HAS_GOOGLE_VR. + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + + public override void OnInputModuleEnabled() { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + if (LaserLineRenderer != null) { + LaserLineRenderer.enabled = true; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public override void OnInputModuleDisabled() { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + if (LaserLineRenderer != null) { + LaserLineRenderer.enabled = false; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public override void OnPointerEnter(RaycastResult rayastResult, Ray ray, + bool isInteractive) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + PointerIntersection = rayastResult.worldPosition; + PointerIntersectionRay = ray; + IsPointerIntersecting = true; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public override void OnPointerHover(RaycastResult rayastResult, Ray ray, + bool isInteractive) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + PointerIntersection = rayastResult.worldPosition; + PointerIntersectionRay = ray; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public override void OnPointerExit(GameObject previousObject) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + PointerIntersection = Vector3.zero; + PointerIntersectionRay = new Ray(); + IsPointerIntersecting = false; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + + public override void OnPointerClickDown() { + // User has performed a click on the target. In a derived class, you could + // handle visual feedback such as laser or cursor color changes here. + } + + public override void OnPointerClickUp() { + // User has released a click from the target. In a derived class, you could + // handle visual feedback such as laser or cursor color changes here. + } + + public override void GetPointerRadius(out float enterRadius, out float exitRadius) { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + if (Reticle != null) { + float reticleScale = Reticle.transform.localScale.x; + + // Fixed size for enter radius to avoid flickering. + // This will cause some slight variability based on the distance of the object + // from the camera, and is optimized for the average case. + enterRadius = RETICLE_SIZE_METERS * 0.5f * RETICLE_VISUAL_RATIO; + + // Dynamic size for exit radius. + // Always correct because we know the intersection point of the object and can + // therefore use the correct radius based on the object's distance from the camera. + exitRadius = reticleScale * reticleMeshSizeMeters * RETICLE_VISUAL_RATIO; + } else { + enterRadius = 0.0f; + exitRadius = 0.0f; + } +#else + enterRadius = 0.0f; + exitRadius = 0.0f; +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + } + +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + public void OnUpdate() { + // Set the reticle's position and scale + if (Reticle != null) { + if (IsPointerIntersecting) { + Vector3 controllerDiff = PointerTransform.position - PointerIntersectionRay.origin; + Vector3 proj = Vector3.Project(controllerDiff, PointerIntersectionRay.direction); + Vector3 controllerAlongRay = PointerIntersectionRay.origin + proj; + Vector3 difference = PointerIntersection - controllerAlongRay; + Vector3 clampedDifference = Vector3.ClampMagnitude(difference, MaxReticleDistance); + Vector3 clampedPosition = controllerAlongRay + clampedDifference; + Reticle.transform.position = clampedPosition; + } else { + Reticle.transform.localPosition = new Vector3(0, 0, MaxReticleDistance); + } + + float reticleDistanceFromCamera = + (Reticle.transform.position - MainCamera.transform.position).magnitude; + float scale = RETICLE_SIZE_METERS * reticleMeshSizeRatio * reticleDistanceFromCamera; + Reticle.transform.localScale = new Vector3(scale, scale, scale); + } + + if (LaserLineRenderer == null) { + Debug.LogWarning("Line renderer is null, returning"); + return; + } + + // Set the line renderer positions. + if (IsPointerIntersecting) { + Vector3 laserDiff = PointerIntersection - base.PointerTransform.position; + float intersectionDistance = laserDiff.magnitude; + Vector3 direction = laserDiff.normalized; + float laserDistance = intersectionDistance > MaxLaserDistance ? MaxLaserDistance : intersectionDistance; + lineEndPoint = base.PointerTransform.position + (direction * laserDistance); + } else { + lineEndPoint = base.PointerTransform.position + (base.PointerTransform.forward * MaxLaserDistance); + } + LaserLineRenderer.SetPosition(0,base.PointerTransform.position); + LaserLineRenderer.SetPosition(1,lineEndPoint); + + // Adjust transparency + float alpha = GvrArmModel.Instance.preferredAlpha; +#if UNITY_5_6_OR_NEWER + LaserLineRenderer.startColor = Color.Lerp(Color.clear, LaserColor, alpha); + LaserLineRenderer.endColor = Color.clear; +#else + LaserLineRenderer.SetColors(Color.Lerp(Color.clear, LaserColor, alpha), Color.clear); +#endif // UNITY_5_6_OR_NEWER + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/UI/GvrLaserPointerImpl.cs.meta b/Assets/GoogleVR/Scripts/UI/GvrLaserPointerImpl.cs.meta new file mode 100644 index 0000000..35dfc3f --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrLaserPointerImpl.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fa502f595131f41ff9ecae6f87943c42 +timeCreated: 1482267572 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/UI/GvrReticlePointer.cs b/Assets/GoogleVR/Scripts/UI/GvrReticlePointer.cs new file mode 100644 index 0000000..b049c23 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrReticlePointer.cs @@ -0,0 +1,113 @@ +// Copyright 2015 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +/// Draws a circular reticle in front of any object that the user points at. +/// The circle dilates if the object is clickable. +[AddComponentMenu("GoogleVR/UI/GvrReticlePointer")] +[RequireComponent(typeof(Renderer))] +public class GvrReticlePointer : MonoBehaviour { + private GvrReticlePointerImpl reticlePointerImpl; + + /// Number of segments making the reticle circle. + public int reticleSegments = 20; + + /// Growth speed multiplier for the reticle/ + public float reticleGrowthSpeed = 8.0f; + + void Awake() { + reticlePointerImpl = new GvrReticlePointerImpl(); + } + + void Start() { + reticlePointerImpl.OnStart(); + reticlePointerImpl.MaterialComp = gameObject.GetComponent().material; + UpdateReticleProperties(); + CreateReticleVertices(); + } + + void Update() { + UpdateReticleProperties(); + reticlePointerImpl.UpdateDiameters(); + } + + public void SetAsMainPointer() { + GvrPointerManager.Pointer = reticlePointerImpl; + } + + private void CreateReticleVertices() { + Mesh mesh = new Mesh(); + gameObject.AddComponent(); + GetComponent().mesh = mesh; + + int segments_count = reticleSegments; + int vertex_count = (segments_count+1)*2; + + #region Vertices + + Vector3[] vertices = new Vector3[vertex_count]; + + const float kTwoPi = Mathf.PI * 2.0f; + int vi = 0; + for (int si = 0; si <= segments_count; ++si) { + // Add two vertices for every circle segment: one at the beginning of the + // prism, and one at the end of the prism. + float angle = (float)si / (float)(segments_count) * kTwoPi; + + float x = Mathf.Sin(angle); + float y = Mathf.Cos(angle); + + vertices[vi++] = new Vector3(x, y, 0.0f); // Outer vertex. + vertices[vi++] = new Vector3(x, y, 1.0f); // Inner vertex. + } + #endregion + + #region Triangles + int indices_count = (segments_count+1)*3*2; + int[] indices = new int[indices_count]; + + int vert = 0; + int idx = 0; + for (int si = 0; si < segments_count; ++si) { + indices[idx++] = vert+1; + indices[idx++] = vert; + indices[idx++] = vert+2; + + indices[idx++] = vert+1; + indices[idx++] = vert+2; + indices[idx++] = vert+3; + + vert += 2; + } + #endregion + + mesh.vertices = vertices; + mesh.triangles = indices; + mesh.RecalculateBounds(); +#if !UNITY_5_5_OR_NEWER + // Optimize() is deprecated as of Unity 5.5.0p1. + mesh.Optimize(); +#endif // !UNITY_5_5_OR_NEWER + } + + + private void UpdateReticleProperties() { + if (reticlePointerImpl == null) { + return; + } + reticlePointerImpl.ReticleGrowthSpeed = reticleGrowthSpeed; + reticlePointerImpl.PointerTransform = transform; + } +} diff --git a/Assets/GoogleVR/Scripts/UI/GvrReticlePointer.cs.meta b/Assets/GoogleVR/Scripts/UI/GvrReticlePointer.cs.meta new file mode 100644 index 0000000..076198c --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrReticlePointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e7dcc90c2e60c4011896c7f21fc1f557 +timeCreated: 1446847641 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/UI/GvrReticlePointerImpl.cs b/Assets/GoogleVR/Scripts/UI/GvrReticlePointerImpl.cs new file mode 100644 index 0000000..59a16f6 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrReticlePointerImpl.cs @@ -0,0 +1,177 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; + +/// Draws a circular reticle in front of any object that the user points at. +/// The circle dilates if the object is clickable. +public class GvrReticlePointerImpl : GvrBasePointer { + // The constants below are expsed for testing. + // Minimum inner angle of the reticle (in degrees). + public const float RETICLE_MIN_INNER_ANGLE = 0.0f; + // Minimum outer angle of the reticle (in degrees). + public const float RETICLE_MIN_OUTER_ANGLE = 0.5f; + // Angle at which to expand the reticle when intersecting with an object + // (in degrees). + public const float RETICLE_GROWTH_ANGLE = 1.5f; + + // Minimum distance of the reticle (in meters). + public const float RETICLE_DISTANCE_MIN = 0.45f; + // Maximum distance of the reticle (in meters). + public const float RETICLE_DISTANCE_MAX = 10.0f; + + /// Growth speed multiplier for the reticle. + public float ReticleGrowthSpeed { private get; set; } + + public Material MaterialComp { private get; set; } + + // Current inner angle of the reticle (in degrees). + // Exposed for testing. + public float ReticleInnerAngle { get; private set; } + + // Current outer angle of the reticle (in degrees). + // Exposed for testing. + public float ReticleOuterAngle { get; private set; } + + // Current distance of the reticle (in meters). + // Getter exposed for testing. + public float ReticleDistanceInMeters { get; private set; } + + // Current inner and outer diameters of the reticle, before distance multiplication. + // Getters exposed for testing. + public float ReticleInnerDiameter { get; private set; } + + public float ReticleOuterDiameter { get; private set; } + + private Vector3 targetPoint = Vector3.zero; + public override Vector3 LineEndPoint { get { return targetPoint; } } + + public override float MaxPointerDistance { get { return RETICLE_DISTANCE_MAX; } } + + public GvrReticlePointerImpl() { + ReticleGrowthSpeed = 8.0f; + ReticleInnerAngle = 0.0f; + ReticleOuterAngle = 0.5f; + ReticleDistanceInMeters = 10.0f; + ReticleInnerDiameter = 0.0f; + ReticleOuterDiameter = 0.0f; + } + + public override void OnStart () { + base.OnStart(); + } + + /// This is called when the 'BaseInputModule' system should be enabled. + public override void OnInputModuleEnabled() {} + + /// This is called when the 'BaseInputModule' system should be disabled. + public override void OnInputModuleDisabled() {} + + /// Called when the user is pointing at valid GameObject. This can be a 3D + /// or UI element. + /// + /// The targetObject is the object the user is pointing at. + /// The intersectionPosition is where the ray intersected with the targetObject. + /// The intersectionRay is the ray that was cast to determine the intersection. + public override void OnPointerEnter(RaycastResult rayastResult, Ray ray, + bool isInteractive) { + SetPointerTarget(rayastResult.worldPosition, isInteractive); + } + + /// Called every frame the user is still pointing at a valid GameObject. This + /// can be a 3D or UI element. + /// + /// The targetObject is the object the user is pointing at. + /// The intersectionPosition is where the ray intersected with the targetObject. + /// The intersectionRay is the ray that was cast to determine the intersection. + public override void OnPointerHover(RaycastResult rayastResult, Ray ray, + bool isInteractive) { + SetPointerTarget(rayastResult.worldPosition, isInteractive); + } + + /// Called when the user's look no longer intersects an object previously + /// intersected with a ray projected from the camera. + /// This is also called just before **OnInputModuleDisabled** and may have have any of + /// the values set as **null**. + public override void OnPointerExit(GameObject previousObject) { + ReticleDistanceInMeters = RETICLE_DISTANCE_MAX; + ReticleInnerAngle = RETICLE_MIN_INNER_ANGLE; + ReticleOuterAngle = RETICLE_MIN_OUTER_ANGLE; + } + + /// Called when a trigger event is initiated. This is practically when + /// the user begins pressing the trigger. + public override void OnPointerClickDown() {} + + /// Called when a trigger event is finished. This is practically when + /// the user releases the trigger. + public override void OnPointerClickUp() {} + + public override void GetPointerRadius(out float enterRadius, out float exitRadius) { + float min_inner_angle_radians = Mathf.Deg2Rad * RETICLE_MIN_INNER_ANGLE; + float max_inner_angle_radians = Mathf.Deg2Rad * (RETICLE_MIN_INNER_ANGLE + RETICLE_GROWTH_ANGLE); + + enterRadius = 2.0f * Mathf.Tan(min_inner_angle_radians); + exitRadius = 2.0f * Mathf.Tan(max_inner_angle_radians); + } + + public void UpdateDiameters() { + ReticleDistanceInMeters = + Mathf.Clamp(ReticleDistanceInMeters, RETICLE_DISTANCE_MIN, RETICLE_DISTANCE_MAX); + + if (ReticleInnerAngle < RETICLE_MIN_INNER_ANGLE) { + ReticleInnerAngle = RETICLE_MIN_INNER_ANGLE; + } + + if (ReticleOuterAngle < RETICLE_MIN_OUTER_ANGLE) { + ReticleOuterAngle = RETICLE_MIN_OUTER_ANGLE; + } + + float inner_half_angle_radians = Mathf.Deg2Rad * ReticleInnerAngle * 0.5f; + float outer_half_angle_radians = Mathf.Deg2Rad * ReticleOuterAngle * 0.5f; + + float inner_diameter = 2.0f * Mathf.Tan(inner_half_angle_radians); + float outer_diameter = 2.0f * Mathf.Tan(outer_half_angle_radians); + + ReticleInnerDiameter = + Mathf.Lerp(ReticleInnerDiameter, inner_diameter, Time.deltaTime * ReticleGrowthSpeed); + ReticleOuterDiameter = + Mathf.Lerp(ReticleOuterDiameter, outer_diameter, Time.deltaTime * ReticleGrowthSpeed); + + MaterialComp.SetFloat("_InnerDiameter", ReticleInnerDiameter * ReticleDistanceInMeters); + MaterialComp.SetFloat("_OuterDiameter", ReticleOuterDiameter * ReticleDistanceInMeters); + MaterialComp.SetFloat("_DistanceInMeters", ReticleDistanceInMeters); + } + + private bool SetPointerTarget(Vector3 target, bool interactive) { + if (base.PointerTransform == null) { + Debug.LogWarning("Cannot operate on a null pointer transform"); + return false; + } + targetPoint = target; + Vector3 targetLocalPosition = base.PointerTransform.InverseTransformPoint(target); + + ReticleDistanceInMeters = + Mathf.Clamp(targetLocalPosition.z, RETICLE_DISTANCE_MIN, RETICLE_DISTANCE_MAX); + if (interactive) { + ReticleInnerAngle = RETICLE_MIN_INNER_ANGLE + RETICLE_GROWTH_ANGLE; + ReticleOuterAngle = RETICLE_MIN_OUTER_ANGLE + RETICLE_GROWTH_ANGLE; + } else { + ReticleInnerAngle = RETICLE_MIN_INNER_ANGLE; + ReticleOuterAngle = RETICLE_MIN_OUTER_ANGLE; + } + return true; + } +} diff --git a/Assets/GoogleVR/Scripts/UI/GvrReticlePointerImpl.cs.meta b/Assets/GoogleVR/Scripts/UI/GvrReticlePointerImpl.cs.meta new file mode 100644 index 0000000..6201f55 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrReticlePointerImpl.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6be152ade59ee4b92a91063ffb726f13 +timeCreated: 1482272152 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/UI/GvrTouchPoint.cs b/Assets/GoogleVR/Scripts/UI/GvrTouchPoint.cs new file mode 100644 index 0000000..ad63458 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrTouchPoint.cs @@ -0,0 +1,100 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The controller is not available for versions of Unity without the +// GVR native integration. + +using UnityEngine; +using System.Collections; + +/// This script visualizes the location of the thumb on the touchpad +/// and controls the animation of the point as it moves. +[RequireComponent(typeof(Renderer))] +public class GvrTouchPoint : GvrBaseControllerVisual { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + /// Units are in meters. + private static readonly Vector3 TOUCHPAD_POINT_DIMENSIONS = new Vector3(0.01f, 0.0004f, 0.01f); + private const float TOUCHPAD_RADIUS = 0.012f; + private const float TOUCHPAD_POINT_Y_OFFSET = 0.035f; + private const float TOUCHPAD_POINT_ELEVATION = 0.0025f; + private const float TOUCHPAD_POINT_SCALE_DURATION_SECONDS = 0.15f; + + private Renderer touchRenderer; + private float elapsedScaleTimeSeconds; + private bool wasTouching; + + [Tooltip("Material to use when the alpha is below one.")] + public Material touchTransparent; + [Tooltip("Material to use when the alpha is exactly one.")] + public Material touchOpaque; + + void Awake() { + touchRenderer = GetComponent(); + + // Initialized the touchPoint at the correct scale. + elapsedScaleTimeSeconds = TOUCHPAD_POINT_SCALE_DURATION_SECONDS; + } + + public override void OnVisualUpdate() { + // Determine if the touch point should be active. + if (GvrController.ClickButton) { + touchRenderer.enabled = false; + } else { + touchRenderer.enabled = true; + } + + // Adjust material depending on transparency. + if (GvrArmModel.Instance.preferredAlpha >= 1.0f) { + touchRenderer.material = touchOpaque; + } else { + touchRenderer.material = touchTransparent; + } + + if (GvrController.IsTouching) { + // Reset the elapsedScaleTime when we start touching. + // This flag is necessary because + // GvrController.TouchDown sometimes becomes true a frame after GvrController.Istouching + if (!wasTouching) { + wasTouching = true; + elapsedScaleTimeSeconds = 0.0f; + } + + float x = (GvrController.TouchPos.x - 0.5f) * 2.0f * TOUCHPAD_RADIUS; + float y = (GvrController.TouchPos.y - 0.5f) * 2.0f * TOUCHPAD_RADIUS; + Vector3 scale = Vector3.Lerp(Vector3.zero, + TOUCHPAD_POINT_DIMENSIONS, + elapsedScaleTimeSeconds / TOUCHPAD_POINT_SCALE_DURATION_SECONDS); + + transform.localScale = scale; + transform.localPosition = new Vector3(-x, TOUCHPAD_POINT_Y_OFFSET - y, TOUCHPAD_POINT_ELEVATION); + } else { + // Reset the elapsedScaleTime when we stop touching. + // This flag is necessary because + // GvrController.TouchDown sometimes becomes true a frame after GvrController.Istouching + if (wasTouching) { + wasTouching = false; + elapsedScaleTimeSeconds = 0.0f; + } + + Vector3 scale = Vector3.Lerp(TOUCHPAD_POINT_DIMENSIONS, + Vector3.zero, + elapsedScaleTimeSeconds / TOUCHPAD_POINT_SCALE_DURATION_SECONDS); + + transform.localScale = scale; + } + + elapsedScaleTimeSeconds += Time.deltaTime; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/UI/GvrTouchPoint.cs.meta b/Assets/GoogleVR/Scripts/UI/GvrTouchPoint.cs.meta new file mode 100644 index 0000000..8aad821 --- /dev/null +++ b/Assets/GoogleVR/Scripts/UI/GvrTouchPoint.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 66baa93a294455a4bbc75c4789678a36 +timeCreated: 1490043315 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Utilities.meta b/Assets/GoogleVR/Scripts/Utilities.meta new file mode 100644 index 0000000..abedca5 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a88ac6fe99ae24c61bbdcdee3d49e08b +folderAsset: yes +timeCreated: 1471565344 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrActivityHelper.cs b/Assets/GoogleVR/Scripts/Utilities/GvrActivityHelper.cs new file mode 100644 index 0000000..6d26c81 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrActivityHelper.cs @@ -0,0 +1,50 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +// Simple static class to abstract out several jni calls that need to be shared +// between different classes. +public static class GvrActivityHelper { + public const string GVR_DLL_NAME = "gvr"; + public const string PACKAGE_UNITY_PLAYER = "com.unity3d.player.UnityPlayer"; + +#if UNITY_ANDROID && !UNITY_EDITOR + /// Returns the Android Activity used by the Unity device player. The caller is + /// responsible for memory-managing the returned AndroidJavaObject. + public static AndroidJavaObject GetActivity() { + AndroidJavaClass jc = new AndroidJavaClass(PACKAGE_UNITY_PLAYER); + if (jc == null) { + Debug.LogErrorFormat("Failed to get class {0}", PACKAGE_UNITY_PLAYER); + return null; + } + AndroidJavaObject activity = jc.GetStatic("currentActivity"); + if (activity == null) { + Debug.LogError("Failed to obtain current Android activity."); + return null; + } + return activity; + } + + /// Returns the application context of the current Android Activity. + public static AndroidJavaObject GetApplicationContext(AndroidJavaObject activity) { + AndroidJavaObject context = activity.Call("getApplicationContext"); + if (context == null) { + Debug.LogError("Failed to get application context from Activity."); + return null; + } + return context; + } +#endif // UNITY_ANDROID && !UNITY_EDITOR +} diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrActivityHelper.cs.meta b/Assets/GoogleVR/Scripts/Utilities/GvrActivityHelper.cs.meta new file mode 100644 index 0000000..9c845a4 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrActivityHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a89c2f792b6ed4b3c8e3d82ed9b3c4cc +timeCreated: 1478903803 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrDaydreamApi.cs b/Assets/GoogleVR/Scripts/Utilities/GvrDaydreamApi.cs new file mode 100644 index 0000000..02aaa4f --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrDaydreamApi.cs @@ -0,0 +1,113 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.VR; +using System; +using System.Runtime.InteropServices; + +// Accessor to DaydreamApi.java. +public class GvrDaydreamApi : IDisposable { + private const string METHOD_CREATE = "create"; + private const string METHOD_LAUNCH_VR_HOMESCREEN = "launchVrHomescreen"; + private const string METHOD_RUN_ON_UI_THREAD = "runOnUiThread"; + private const string PACKAGE_DAYDREAM_API = "com.google.vr.ndk.base.DaydreamApi"; + + private static GvrDaydreamApi m_instance; + +#if !UNITY_EDITOR && UNITY_ANDROID + private AndroidJavaObject m_daydreamApiObject; + private AndroidJavaClass m_daydreamApiClass = new AndroidJavaClass(PACKAGE_DAYDREAM_API); +#endif // !UNITY_EDITOR && UNITY_ANDROID + +#if UNITY_ANDROID + public static AndroidJavaObject JavaInstance { + get { +#if UNITY_EDITOR || !UNITY_HAS_GOOGLEVR + return null; +#else + if (m_instance == null || m_instance.m_daydreamApiObject == null) { + Debug.Log("GvrDaydreamApi not instantiated, please call CreateDaydreamApi() first"); + return null; + } + return m_instance.m_daydreamApiObject; +#endif // UNITY_EDITOR || !UNITY_HAS_GOOGLEVR + } + } +#endif // UNITY_ANDROID + + public static bool IsCreated { + get { +#if UNITY_EDITOR || !UNITY_HAS_GOOGLEVR || !UNITY_ANDROID + return (m_instance != null); +#else + return (m_instance != null) && (m_instance.m_daydreamApiObject != null); +#endif // UNITY_EDITOR || !UNITY_HAS_GOOGLEVR || !UNITY_ANDROID + } + } + + /// @cond + /// The caller is responsible for ensuring that Dispose is called when + /// the Activity is suspended. + public void Dispose() { + m_instance = null; + } + /// #endcond + + /// Instantiates a GvrDayreamApi. + public static void Create() { + if (m_instance == null) { + m_instance = new GvrDaydreamApi(); + } +#if !UNITY_EDITOR && UNITY_HAS_GOOGLEVR && UNITY_ANDROID + if (m_instance.m_daydreamApiObject != null) { + return; + } + + if (m_instance.m_daydreamApiClass == null) { + Debug.LogErrorFormat("Failed to get DaydreamApi class, {0}", PACKAGE_DAYDREAM_API); + return; + } + + AndroidJavaObject activity = GvrActivityHelper.GetActivity(); + if (activity == null) { + return; + } + + AndroidJavaObject context = GvrActivityHelper.GetApplicationContext(activity); + if (context == null) { + return; + } + + activity.Call(METHOD_RUN_ON_UI_THREAD, new AndroidJavaRunnable(() => { + m_instance.m_daydreamApiObject = + m_instance.m_daydreamApiClass.CallStatic(METHOD_CREATE, context); + if (m_instance.m_daydreamApiObject == null) { + Debug.LogError("DaydreamApi.Create failed to instantiate object"); + } + }) + ); +#endif // !UNITY_EDITOR && UNITY_HAS_GOOGLEVR && UNITY_ANDROID + } + + /// Launches VrHome from a VR scene. + public static void LaunchVrHome() { +#if !UNITY_EDITOR && UNITY_HAS_GOOGLEVR && UNITY_ANDROID + if (m_instance == null || m_instance.m_daydreamApiObject == null) { + return; + } + m_instance.m_daydreamApiObject.Call(METHOD_LAUNCH_VR_HOMESCREEN); +#endif // !UNITY_EDITOR && UNITY_HAS_GOOGLEVR && UNITY_ANDROID + } +} diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrDaydreamApi.cs.meta b/Assets/GoogleVR/Scripts/Utilities/GvrDaydreamApi.cs.meta new file mode 100644 index 0000000..c5cbded --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrDaydreamApi.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c4d57836d4e064f449f3e2f03330e9ce +timeCreated: 1490648002 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrFPS.cs b/Assets/GoogleVR/Scripts/Utilities/GvrFPS.cs new file mode 100644 index 0000000..a265b16 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrFPS.cs @@ -0,0 +1,53 @@ +// Copyright 2015 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; + +[RequireComponent(typeof(Text))] +public class GvrFPS : MonoBehaviour { + private const string DISPLAY_TEXT_FORMAT = "{0} msf\n({1} FPS)"; + private const string MSF_FORMAT = "#.#"; + private const float MS_PER_SEC = 1000f; + + private Text textField; + private float fps = 60; + + public Camera cam; + + void Awake() { + textField = GetComponent(); + } + + void Start() { + if (cam == null) { + cam = Camera.main; + } + + if (cam != null) { + // Tie this to the camera, and do not keep the local orientation. + transform.SetParent(cam.GetComponent(), true); + } + } + + void LateUpdate() { + float deltaTime = Time.unscaledDeltaTime; + float interp = deltaTime / (0.5f + deltaTime); + float currentFPS = 1.0f / deltaTime; + fps = Mathf.Lerp(fps, currentFPS, interp); + float msf = MS_PER_SEC / fps; + textField.text = string.Format(DISPLAY_TEXT_FORMAT, + msf.ToString(MSF_FORMAT), Mathf.RoundToInt(fps)); + } +} diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrFPS.cs.meta b/Assets/GoogleVR/Scripts/Utilities/GvrFPS.cs.meta new file mode 100644 index 0000000..e9fd273 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrFPS.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 644076fb2b4854a72b6de9578e358b8e +timeCreated: 1471565344 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrIntent.cs b/Assets/GoogleVR/Scripts/Utilities/GvrIntent.cs new file mode 100644 index 0000000..1cf75ae --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrIntent.cs @@ -0,0 +1,85 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +/// +/// Provides information about the Android Intent that started the current Activity. +/// +public static class GvrIntent { + + private const string METHOD_GET_INTENT = "getIntent"; + private const string METHOD_HASH_CODE = "hashCode"; + private const string METHOD_INTENT_GET_DATA_STRING = "getDataString"; + private const string METHOD_INTENT_GET_BOOLEAN_EXTRA = "getBooleanExtra"; + + private const string EXTRA_VR_LAUNCH = "android.intent.extra.VR_LAUNCH"; + + // Returns the string representation of the data URI on which this activity's intent is + // operating. See Intent.getDataString() in the Android documentation. + public static string GetData() { +#if UNITY_EDITOR || !UNITY_ANDROID + return null; +#else + AndroidJavaObject androidIntent = GetIntent(); + if (androidIntent == null) { + Debug.Log("Intent on current activity was null"); + return null; + } + return androidIntent.Call(METHOD_INTENT_GET_DATA_STRING); +#endif // UNITY_EDITOR || !UNITY_ANDROID + } + + // Returns true if the intent category contains com.google.intent.category.DAYDREAM. + public static bool IsLaunchedFromVr() { +#if UNITY_EDITOR || !UNITY_ANDROID + return false; +#else + AndroidJavaObject androidIntent = GetIntent(); + if (androidIntent == null) { + Debug.Log("Intent on current activity was null"); + return false; + } + return androidIntent.Call(METHOD_INTENT_GET_BOOLEAN_EXTRA, EXTRA_VR_LAUNCH, false); +#endif // UNITY_EDITOR || !UNITY_ANDROID + } + + // Returns the hash code of the Java intent object. Useful for discerning whether + // you have a new intent on un-pause. + public static int GetIntentHashCode() { +#if UNITY_EDITOR || !UNITY_ANDROID + return 0; +#else + AndroidJavaObject androidIntent = GetIntent(); + if (androidIntent == null) { + Debug.Log("Intent on current activity was null"); + return 0; + } + return androidIntent.Call(METHOD_HASH_CODE); +#endif // UNITY_EDITOR || !UNITY_ANDROID + } + +#if !UNITY_EDITOR && UNITY_ANDROID + private static AndroidJavaObject GetIntent() { + AndroidJavaObject androidActivity = null; + try { + androidActivity = GvrActivityHelper.GetActivity(); + } catch (AndroidJavaException e) { + Debug.LogError("Exception while connecting to the Activity: " + e); + return null; + } + return androidActivity.Call(METHOD_GET_INTENT); + } +#endif // !UNITY_EDITOR && UNITY_ANDROID +} diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrIntent.cs.meta b/Assets/GoogleVR/Scripts/Utilities/GvrIntent.cs.meta new file mode 100644 index 0000000..e0b6313 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrIntent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9961197a3979a4fa684159098ac5881f +timeCreated: 1473201821 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrMathHelpers.cs b/Assets/GoogleVR/Scripts/Utilities/GvrMathHelpers.cs new file mode 100644 index 0000000..a0fe532 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrMathHelpers.cs @@ -0,0 +1,68 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.VR; +using System.Collections; + +/// Helper functions to perform common math operations for Gvr. +public static class GvrMathHelpers { + private static Vector2 sphericalCoordinatesResult; + + public static Vector3 GetIntersectionPosition(Camera cam, RaycastResult raycastResult) { + // Check for camera + if (cam == null) { + return Vector3.zero; + } + + float intersectionDistance = raycastResult.distance + cam.nearClipPlane; + Vector3 intersectionPosition = cam.transform.position + cam.transform.forward * intersectionDistance; + return intersectionPosition; + } + + public static Vector2 GetViewportCenter() { + int viewportWidth = Screen.width; + int viewportHeight = Screen.height; +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) && UNITY_ANDROID + // GVR native integration is supported. + if (VRSettings.enabled) { + viewportWidth = VRSettings.eyeTextureWidth; + viewportHeight = VRSettings.eyeTextureHeight; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) && UNITY_ANDROID + + return new Vector2(0.5f * viewportWidth, 0.5f * viewportHeight); + } + + public static Vector2 NormalizedCartesianToSpherical(Vector3 cartCoords) { + cartCoords.Normalize(); + + if (cartCoords.x == 0) { + cartCoords.x = Mathf.Epsilon; + } + + float outPolar = Mathf.Atan(cartCoords.z / cartCoords.x); + + if (cartCoords.x < 0) { + outPolar += Mathf.PI; + } + + float outElevation = Mathf.Asin(cartCoords.y); + + sphericalCoordinatesResult.x = outPolar; + sphericalCoordinatesResult.y = outElevation; + return sphericalCoordinatesResult; + } +} diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrMathHelpers.cs.meta b/Assets/GoogleVR/Scripts/Utilities/GvrMathHelpers.cs.meta new file mode 100644 index 0000000..6f2726a --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrMathHelpers.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2057fd0fa21f34bc2ba2dd2a4a2a38b5 +timeCreated: 1493226132 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrUIHelpers.cs b/Assets/GoogleVR/Scripts/Utilities/GvrUIHelpers.cs new file mode 100644 index 0000000..bec5318 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrUIHelpers.cs @@ -0,0 +1,37 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using System.Collections; + +public static class GvrUIHelpers { +#if UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) + /// Finds the meters scale for the local coordinate system + /// of the root canvas that contains the canvasObject passed in. + public static float GetMetersToCanvasScale(Transform canvasObject) { + Canvas canvas = canvasObject.GetComponentInParent(); + if (canvas == null) { + return 0.0f; + } + + if (!canvas.isRootCanvas) { + canvas = canvas.rootCanvas; + } + + float metersToCanvasScale = canvas.transform.localScale.x; + return metersToCanvasScale; + } +#endif // UNITY_HAS_GOOGLEVR && (UNITY_ANDROID || UNITY_EDITOR) +} diff --git a/Assets/GoogleVR/Scripts/Utilities/GvrUIHelpers.cs.meta b/Assets/GoogleVR/Scripts/Utilities/GvrUIHelpers.cs.meta new file mode 100644 index 0000000..b0dd505 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Utilities/GvrUIHelpers.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 00f93e3df109d4a69834d44deb072725 +timeCreated: 1483744183 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Video.meta b/Assets/GoogleVR/Scripts/Video.meta new file mode 100644 index 0000000..5b32d50 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Video.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7813c08c71b5d4a07a2248e43db3fd27 +folderAsset: yes +timeCreated: 1478806417 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/Video/GvrVideoPlayerTexture.cs b/Assets/GoogleVR/Scripts/Video/GvrVideoPlayerTexture.cs new file mode 100644 index 0000000..22500f8 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Video/GvrVideoPlayerTexture.cs @@ -0,0 +1,1064 @@ + +// Copyright (C) 2016 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using UnityEngine.UI; +using System.Collections; +using System.Runtime.InteropServices; +using System; +using System.Collections.Generic; + +/// +/// Plays video using Exoplayer rendering it on the main texture. +/// +public class GvrVideoPlayerTexture : MonoBehaviour { + + private const int MIN_BUFFER_SIZE = 3; + private const int MAX_BUFFER_SIZE = 15; + + /// + /// The video texture array used as a circular buffer to get the video image. + /// + private Texture2D[] videoTextures; + private int currentTexture; + + /// + /// The video player pointer used to uniquely identify the player instance. + /// + private IntPtr videoPlayerPtr; + + /// + /// The video player event base. + /// + /// This is added to the event id when issues events to + /// the plugin. + /// + private int videoPlayerEventBase; + + private Texture initialTexture; + + private bool initialized; + private int texWidth = 1024; + private int texHeight = 1024; + private long lastBufferedPosition; + private float framecount = 0; + + private Graphic graphicComponent; + private Renderer rendererComponent; + + /// + /// The render event function. + /// + private IntPtr renderEventFunction; + + private bool processingRunning; + private bool exitProcessing; + private bool playOnResume; + + /// List of callbacks to invoke when the video is ready. + private List> onEventCallbacks; + + /// List of callbacks to invoke on exception. + /// The first parameter is the type of exception, + /// the second is the message. + /// + private List> onExceptionCallbacks; + + private readonly static Queue ExecuteOnMainThread = new Queue(); + + // Attach a text component to get some debug status info. + public Text statusText; + + /// + /// Video type. + /// + public enum VideoType { + Dash = 0, + HLS = 2, + Other = 3 + }; + + public enum VideoResolution { + Lowest = 1, + _720 = 720, + _1080 = 1080, + _2048 = 2048, + Highest = 4096 + }; + + /// + /// Video player state. + /// + public enum VideoPlayerState { + Idle = 1, + Preparing = 2, + Buffering = 3, + Ready = 4, + Ended = 5 + }; + + public enum VideoEvents { + VideoReady = 1, + VideoStartPlayback = 2, + VideoFormatChanged = 3, + VideoSurfaceSet = 4, + VideoSizeChanged = 5 + }; + + /// + /// Plugin render commands. + /// + /// + /// These are added to the eventbase for the specific player object and + /// issued to the plugin. + /// + private enum RenderCommand { + None = -1, + InitializePlayer = 0, + UpdateVideo = 1, + RenderMono = 2, + RenderLeftEye = 3, + RenderRightEye = 4, + Shutdown = 5 + }; + + // The circular buffer has to be at least 2, + // but in some cases that is too small, so set some reasonable range + // so a slider shows up in the property inspector. + [Range(MIN_BUFFER_SIZE, MAX_BUFFER_SIZE)] + public int bufferSize; + + /// + /// The type of the video. + /// + public VideoType videoType; + public string videoURL; + public string videoContentID; + public string videoProviderId; + + public VideoResolution initialResolution = VideoResolution.Highest; + + /// + /// True for adjusting the aspect ratio of the renderer. + /// + public bool adjustAspectRatio; + + /// + /// The use secure path for DRM protected video. + /// + public bool useSecurePath; + + public bool VideoReady { + get { + return videoPlayerPtr != IntPtr.Zero && IsVideoReady(videoPlayerPtr); + } + } + + public long CurrentPosition { + get { + return videoPlayerPtr != IntPtr.Zero ? GetCurrentPosition(videoPlayerPtr) : 0; + } + set { + // If the position is being set to 0, reset the framecount as well. + // This allows the texture swapping to work correctly at the beginning + // of the stream. + if (value == 0) { + framecount = 0; + } + + SetCurrentPosition(videoPlayerPtr, value); + } + } + + public long VideoDuration { + get { + return videoPlayerPtr != IntPtr.Zero ? GetDuration(videoPlayerPtr) : 0; + } + } + + public long BufferedPosition { + get { + return videoPlayerPtr != IntPtr.Zero ? GetBufferedPosition(videoPlayerPtr) : 0; + } + } + + public int BufferedPercentage { + get { + return videoPlayerPtr != IntPtr.Zero ? GetBufferedPercentage(videoPlayerPtr) : 0; + } + } + + public bool IsPaused { + get { + return !initialized || videoPlayerPtr == IntPtr.Zero || IsVideoPaused(videoPlayerPtr); + } + } + + public VideoPlayerState PlayerState { + get { + return videoPlayerPtr != IntPtr.Zero ? (VideoPlayerState)GetPlayerState(videoPlayerPtr) : VideoPlayerState.Idle; + } + } + + public int MaxVolume { + get { + return videoPlayerPtr != IntPtr.Zero ? GetMaxVolume(videoPlayerPtr) : 0; + } + } + + public int CurrentVolume { + get { + return videoPlayerPtr != IntPtr.Zero ? GetCurrentVolume(videoPlayerPtr) : 0; + } + set { + SetCurrentVolume(value); + } + } + + /// Create the video player instance and the event base id. + void Awake() { + // Find the components on which to set the video texture. + graphicComponent = GetComponent(); + rendererComponent = GetComponent(); + + CreatePlayer(); + } + + void CreatePlayer() { + bufferSize = bufferSize < MIN_BUFFER_SIZE ? MIN_BUFFER_SIZE : bufferSize; + if (videoTextures != null) { + DestroyVideoTextures(); + } + videoTextures = new Texture2D[bufferSize]; + currentTexture = 0; + videoPlayerPtr = CreateVideoPlayer(); + videoPlayerEventBase = GetVideoPlayerEventBase(videoPlayerPtr); + Debug.Log(" -- " + gameObject.name + " created with base " + + videoPlayerEventBase); + + SetOnVideoEventCallback((eventId) => { + Debug.Log("------------- E V E N T " + eventId + " -----------------"); + UpdateStatusText(); + }); + + SetOnExceptionCallback((type, msg) => { + Debug.LogError("Exception: " + type + ": " + msg); + }); + + initialized = false; + + if (rendererComponent != null) { + initialTexture = rendererComponent.material.mainTexture; + } else if (graphicComponent) { + initialTexture = graphicComponent.mainTexture; + } + } + + IEnumerator Start() { + CreateTextureForVideoMaybe(); + renderEventFunction = GetRenderEventFunc(); + if (renderEventFunction != IntPtr.Zero) { + IssuePlayerEvent(RenderCommand.InitializePlayer); + yield return StartCoroutine(CallPluginAtEndOfFrames()); + } + } + + void OnDisable() { + if (videoPlayerPtr != IntPtr.Zero) { + if (GetPlayerState(videoPlayerPtr) == (int)VideoPlayerState.Ready) { + PauseVideo(videoPlayerPtr); + } + } + } + + /// + /// Sets the display texture. + /// + /// Texture to display. + // If null, the initial texture of the renderer is used. + public void SetDisplayTexture(Texture texture) { + if (texture == null) { + texture = initialTexture; + } + + if (texture == null) { + return; + } + + if (rendererComponent != null) { + rendererComponent.sharedMaterial.mainTexture = initialTexture; + } else if (graphicComponent != null) { + graphicComponent.material.mainTexture = initialTexture; + } + } + + public void CleanupVideo() { + Debug.Log("Cleaning Up video!"); + exitProcessing = true; + if (videoPlayerPtr != IntPtr.Zero) { + DestroyVideoPlayer(videoPlayerPtr); + videoPlayerPtr = IntPtr.Zero; + } + DestroyVideoTextures(); + if (rendererComponent != null) { + rendererComponent.sharedMaterial.mainTexture = initialTexture; + } else if (graphicComponent != null) { + graphicComponent.material.mainTexture = initialTexture; + } + } + + public void ReInitializeVideo() { + if (rendererComponent != null) { + rendererComponent.sharedMaterial.mainTexture = initialTexture; + } else if (graphicComponent != null) { + graphicComponent.material.mainTexture = initialTexture; + } + + if (videoPlayerPtr == IntPtr.Zero) { + CreatePlayer(); + IssuePlayerEvent(RenderCommand.InitializePlayer); + } + if (Init()) { + StartCoroutine(CallPluginAtEndOfFrames()); + } + } + + void DestroyVideoTextures() { + if (videoTextures != null) { + foreach (Texture2D t in videoTextures) { + if (t != null) { + // Free GPU memory immediately. + t.Resize(1, 1); + t.Apply(); + // Unity's destroy is lazy. + Destroy(t); + } + } + videoTextures = null; + } + } + + void OnEnable() { + if (videoPlayerPtr != IntPtr.Zero) { + StartCoroutine(CallPluginAtEndOfFrames()); + } + } + + void OnDestroy() { + if (videoPlayerPtr != IntPtr.Zero) { + DestroyVideoPlayer(videoPlayerPtr); + } + DestroyVideoTextures(); + } + + void OnValidate() { + Renderer r = GetComponent(); + Graphic g = GetComponent(); + if (g == null && r == null) { + Debug.LogError("TexturePlayer object must have either " + + "a Renderer component or a Graphic component."); + } + } + + void OnApplicationPause(bool bPause) { + if (videoPlayerPtr != IntPtr.Zero) { + if (bPause) { + playOnResume = !IsPaused; + PauseVideo(videoPlayerPtr); + } else { + if (playOnResume) { + PlayVideo(videoPlayerPtr); + } + } + } + } + + void OnRenderObject() { + + // Don't render if not initialized. + if (videoPlayerPtr == IntPtr.Zero || videoTextures[0] == null) { + return; + } + + Texture newTex = videoTextures[currentTexture]; + + // Handle either the renderer component or the graphic component. + if (rendererComponent != null) { + + // Don't render the first texture from the player, it is unitialized. + if (currentTexture <= 1 && framecount <= 1) { + return; + } + + // Don't swap the textures if the video ended. + if (PlayerState == VideoPlayerState.Ended) { + return; + } + + // Unity may build new a new material instance when assigning + // material.x which can lead to duplicating materials each frame + // whereas using the shared material will modify the original material. + if (rendererComponent.material.mainTexture != null) { + IntPtr currentTexId = + rendererComponent.sharedMaterial.mainTexture.GetNativeTexturePtr(); + + // Update the material's texture if it is different. + if (currentTexId != newTex.GetNativeTexturePtr()) { + rendererComponent.sharedMaterial.mainTexture = newTex; + framecount += 1f; + } + } else { + rendererComponent.sharedMaterial.mainTexture = newTex; + } + + } else if (graphicComponent != null) { + if (graphicComponent.material.mainTexture != null) { + IntPtr currentTexId = + graphicComponent.material.mainTexture.GetNativeTexturePtr(); + + // Update the material's texture if it is different. + if (currentTexId != newTex.GetNativeTexturePtr()) { + graphicComponent.material.mainTexture = newTex; + framecount += 1f; + } + } else { + graphicComponent.material.mainTexture = newTex; + } + } else { + Debug.LogError("GvrVideoPlayerTexture: No render or graphic component."); + } + } + + private void OnRestartVideoEvent(int eventId) { + if (eventId == (int)VideoEvents.VideoReady) { + Debug.Log("Restarting video complete."); + RemoveOnVideoEventCallback(OnRestartVideoEvent); + } + } + + /// + /// Resets the video player. + /// + public void RestartVideo() { + SetOnVideoEventCallback(OnRestartVideoEvent); + + string theUrl = ProcessURL(); + + InitVideoPlayer(videoPlayerPtr, (int) videoType, theUrl, + videoContentID, + videoProviderId, + useSecurePath, + true); + framecount = 0; + } + + public void SetCurrentVolume(int val) { + SetCurrentVolume(videoPlayerPtr, val); + } + + /// + /// Initialize the video player. + /// + /// true if successful + public bool Init() { + if (initialized) { + Debug.Log("Skipping initialization: video player already loaded"); + return true; + } + + if (videoURL == null || videoURL.Length == 0) { + Debug.LogError("Cannot initialize with null videoURL"); + return false; + } + + videoURL = videoURL == null ? "" : videoURL.Trim(); + videoContentID = videoContentID == null ? "" : videoContentID.Trim(); + videoProviderId = videoProviderId == null ? "" : videoProviderId.Trim(); + + SetInitialResolution(videoPlayerPtr, (int) initialResolution); + + string theUrl = ProcessURL(); + Debug.Log("Playing " + videoType + " " + theUrl); + Debug.Log("videoContentID = " + videoContentID); + Debug.Log("videoProviderId = " + videoProviderId); + videoPlayerPtr = InitVideoPlayer(videoPlayerPtr, (int) videoType, theUrl, + videoContentID, videoProviderId, + useSecurePath, false); + initialized = true; + framecount = 0; + return videoPlayerPtr != IntPtr.Zero; + } + + public bool Play() { + if (!initialized) { + Init(); + } else if (!processingRunning) { + StartCoroutine(CallPluginAtEndOfFrames()); + } + if (videoPlayerPtr != IntPtr.Zero && IsVideoReady(videoPlayerPtr)) { + return PlayVideo(videoPlayerPtr) == 0; + } else { + Debug.LogError("Video player not ready to Play!"); + return false; + } + } + + public bool Pause() { + if (!initialized) { + Init(); + } + if (VideoReady) { + return PauseVideo(videoPlayerPtr) == 0; + } else { + Debug.LogError("Video player not ready to Pause!"); + return false; + } + } + + /// + /// Adjusts the aspect ratio. + /// + /// + /// This adjusts the transform scale to match the aspect + /// ratio of the texture. + /// + private void AdjustAspectRatio() { + float aspectRatio = texWidth / texHeight; + + // set the y scale based on the x value + Vector3 newscale = transform.localScale; + newscale.y = Mathf.Min(newscale.y, newscale.x / aspectRatio); + + transform.localScale = newscale; + } + + /// + /// Creates the texture for video if needed. + /// + private void CreateTextureForVideoMaybe() { + if (videoTextures[0] == null || (texWidth != videoTextures[0].width || + texHeight != videoTextures[0].height)) { + + // Check the dimensions to make sure they are valid. + if (texWidth < 0 || texHeight < 0) { + // Maybe use the last dimension. This happens when re-initializing the player. + if (videoTextures != null && videoTextures[0].width > 0) { + texWidth = videoTextures[0].width; + texHeight = videoTextures[0].height; + } + } + + int[] tex_ids = new int[videoTextures.Length]; + for (int idx = 0; idx < videoTextures.Length; idx++) { + // Resize the existing texture if there, otherwise create it. + if (videoTextures[idx] != null) { + if (videoTextures[idx].width != texWidth + || videoTextures[idx].height != texHeight) + { + videoTextures[idx].Resize(texWidth, texHeight); + videoTextures[idx].Apply(); + } + } else { + videoTextures[idx] = new Texture2D(texWidth, texHeight, + TextureFormat.RGBA32, false); + videoTextures[idx].filterMode = FilterMode.Bilinear; + videoTextures[idx].wrapMode = TextureWrapMode.Clamp; + } + + tex_ids[idx] = videoTextures[idx].GetNativeTexturePtr().ToInt32(); + } + + SetExternalTextures(videoPlayerPtr, tex_ids, tex_ids.Length, + texWidth, texHeight); + currentTexture = 0; + UpdateStatusText(); + } + + if (adjustAspectRatio) { + AdjustAspectRatio(); + } + } + + private void UpdateStatusText() { + float fps = CurrentPosition > 0 ? + (framecount / (CurrentPosition / 1000f)) : CurrentPosition; + string status = texWidth + " x " + texHeight + " buffer: " + + (BufferedPosition / 1000) + " " + PlayerState + " fps: " + fps; + if (statusText != null) { + if (statusText.text != status) { + statusText.text = status; + Debug.Log("STATUS: " + status); + } + } + } + + /// + /// Issues the player event. + /// + /// The event to send to the video player + /// instance. + /// + private void IssuePlayerEvent(RenderCommand evt) { + if (renderEventFunction != IntPtr.Zero && evt != RenderCommand.None) { + GL.IssuePluginEvent(renderEventFunction, + videoPlayerEventBase + (int) evt); + } + } + + void Update() { + while (ExecuteOnMainThread.Count > 0) { + ExecuteOnMainThread.Dequeue().Invoke(); + } + } + + private IEnumerator CallPluginAtEndOfFrames() { + if (processingRunning) { + Debug.LogError("CallPluginAtEndOfFrames invoked while already running."); + yield break; + } + + // Only run while the video is playing. + bool running = true; + processingRunning = true; + exitProcessing = false; + WaitForEndOfFrame wfeof = new WaitForEndOfFrame(); + while (running) { + // Wait until all frame rendering is done + yield return wfeof; + + if (exitProcessing) { + running = false; + break; + } + + if (videoPlayerPtr != IntPtr.Zero) { + CreateTextureForVideoMaybe(); + } + + IntPtr tex = GetRenderableTextureId(videoPlayerPtr); + currentTexture = 0; + for (int i = 0; i < videoTextures.Length; i++) { + if (tex == videoTextures[i].GetNativeTexturePtr()) { + currentTexture = i; + } + } + + if (!VideoReady) { + continue; + } else if (framecount > 1 && PlayerState == VideoPlayerState.Ended) { + running = false; + } + + IssuePlayerEvent(RenderCommand.UpdateVideo); + IssuePlayerEvent(RenderCommand.RenderMono); + + int w = GetWidth(videoPlayerPtr); + int h = GetHeight(videoPlayerPtr); + // Limit total pixel count to the same as 2160p. + // 3840 * 2160 == 2880 * 2880 + if (w * h > 2880 * 2880) { + // Clamp the max resolution preserving aspect ratio. + float aspectRoot = (float) Math.Sqrt(w / h); + w = (int) (2880 * aspectRoot); + h = (int) (2880 / aspectRoot); + } + texWidth = w; + texHeight = h; + + if ((int) framecount % 30 == 0) { + UpdateStatusText(); + } + + long bp = BufferedPosition; + if (bp != lastBufferedPosition) { + lastBufferedPosition = bp; + UpdateStatusText(); + } + } + processingRunning = false; + } + + public void RemoveOnVideoEventCallback(Action callback) { + if (onEventCallbacks != null) { + onEventCallbacks.Remove(callback); + } + } + + public void SetOnVideoEventCallback(Action callback) { + if (onEventCallbacks == null) { + onEventCallbacks = new List>(); + } + onEventCallbacks.Add(callback); + SetOnVideoEventCallback(videoPlayerPtr, InternalOnVideoEventCallback, + ToIntPtr(this)); + } + + internal void FireVideoEvent(int eventId) { + if (onEventCallbacks == null) { + return; + } + + // Copy the collection so the callbacks can remove themselves from the list. + Action[] cblist = onEventCallbacks.ToArray(); + foreach (Action cb in cblist) { + try { + cb(eventId); + } catch (Exception e) { + Debug.LogError("exception calling callback: " + e); + } + } + } + + [AOT.MonoPInvokeCallback(typeof(OnVideoEventCallback))] + static void InternalOnVideoEventCallback(IntPtr cbdata, int eventId) { + if (cbdata == IntPtr.Zero) { + return; + } + + GvrVideoPlayerTexture player; + var gcHandle = GCHandle.FromIntPtr(cbdata); + try { + player = (GvrVideoPlayerTexture) gcHandle.Target; + } + catch (InvalidCastException e) { + Debug.LogError("GC Handle pointed to unexpected type: " + + gcHandle.Target + ". Expected " + + typeof(GvrVideoPlayerTexture)); + throw e; + } + + if (player != null) { + ExecuteOnMainThread.Enqueue(() => player.FireVideoEvent(eventId)); + } + } + + public void SetOnExceptionCallback(Action callback) { + if (onExceptionCallbacks == null) { + onExceptionCallbacks = new List>(); + SetOnExceptionCallback(videoPlayerPtr, InternalOnExceptionCallback, + ToIntPtr(this)); + } + onExceptionCallbacks.Add(callback); + } + + + [AOT.MonoPInvokeCallback(typeof(OnExceptionCallback))] + static void InternalOnExceptionCallback(string type, string msg, + IntPtr cbdata) { + if (cbdata == IntPtr.Zero) { + return; + } + + GvrVideoPlayerTexture player; + var gcHandle = GCHandle.FromIntPtr(cbdata); + try { + player = (GvrVideoPlayerTexture) gcHandle.Target; + } + catch (InvalidCastException e) { + Debug.LogError("GC Handle pointed to unexpected type: " + + gcHandle.Target + ". Expected " + + typeof(GvrVideoPlayerTexture)); + throw e; + } + + if (player != null) { + ExecuteOnMainThread.Enqueue(() => player.FireOnException(type, msg)); + } + } + + internal void FireOnException(string type, string msg) { + if (onExceptionCallbacks == null) { + return; + } + + foreach (Action cb in onExceptionCallbacks) { + try { + cb(type, msg); + } catch (Exception e) { + Debug.LogError("exception calling callback: " + e); + } + } + } + + internal static IntPtr ToIntPtr(System.Object obj) { + GCHandle handle = GCHandle.Alloc(obj); + return GCHandle.ToIntPtr(handle); + } + + internal string ProcessURL() { + return videoURL.Replace("${Application.dataPath}", Application.dataPath); + } + + internal delegate void OnVideoEventCallback(IntPtr cbdata, int eventId); + + internal delegate void OnExceptionCallback(string type, string msg, + IntPtr cbdata); + +#if UNITY_ANDROID && !UNITY_EDITOR + private const string dllName = "gvrvideo"; + [DllImport(dllName)] + private static extern IntPtr GetRenderEventFunc(); + + [DllImport(dllName)] + private static extern void SetExternalTextures(IntPtr videoPlayerPtr, + int[] texIds, + int size, + int w, + int h); + + [DllImport(dllName)] + private static extern IntPtr GetRenderableTextureId(IntPtr videoPlayerPtr); + + // Keep public so we can check for the dll being present at runtime. + [DllImport(dllName)] + public static extern IntPtr CreateVideoPlayer(); + + // Keep public so we can check for the dll being present at runtime. + [DllImport(dllName)] + public static extern void DestroyVideoPlayer(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern int GetVideoPlayerEventBase(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern IntPtr InitVideoPlayer(IntPtr videoPlayerPtr, + int videoType, + string videoURL, + string contentID, + string providerId, + bool useSecurePath, + bool useExisting); + + [DllImport(dllName)] + private static extern void SetInitialResolution(IntPtr videoPlayerPtr, + int initialResolution); + + [DllImport(dllName)] + private static extern int GetPlayerState(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern int GetWidth(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern int GetHeight(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern int PlayVideo(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern int PauseVideo(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern bool IsVideoReady(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern bool IsVideoPaused(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern long GetDuration(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern long GetBufferedPosition(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern long GetCurrentPosition(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern void SetCurrentPosition(IntPtr videoPlayerPtr, + long pos); + + [DllImport(dllName)] + private static extern int GetBufferedPercentage(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern int GetMaxVolume(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern int GetCurrentVolume(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern void SetCurrentVolume(IntPtr videoPlayerPtr, + int value); + + [DllImport(dllName)] + private static extern bool SetVideoPlayerSupportClassname( + IntPtr videoPlayerPtr, + string classname); + + [DllImport(dllName)] + private static extern IntPtr GetRawPlayer(IntPtr videoPlayerPtr); + + [DllImport(dllName)] + private static extern void SetOnVideoEventCallback(IntPtr videoPlayerPtr, + OnVideoEventCallback callback, + IntPtr callback_arg); + + [DllImport(dllName)] + private static extern void SetOnExceptionCallback(IntPtr videoPlayerPtr, + OnExceptionCallback callback, + IntPtr callback_arg); +#else + private const string NOT_IMPLEMENTED_MSG = + "Not implemented on this platform"; + + private static IntPtr GetRenderEventFunc() { + Debug.Log(NOT_IMPLEMENTED_MSG); + return IntPtr.Zero; + } + + private static void SetExternalTextures(IntPtr videoPlayerPtr, + int[] texIds, + int size, + int w, + int h) { + Debug.Log(NOT_IMPLEMENTED_MSG); + } + + private static IntPtr GetRenderableTextureId(IntPtr videoPlayerPtr) { + return IntPtr.Zero; + } + + // Make this public so we can test the loading of the DLL. + public static IntPtr CreateVideoPlayer() { + Debug.Log(NOT_IMPLEMENTED_MSG); + return IntPtr.Zero; + } + + + // Make this public so we can test the loading of the DLL. + public static void DestroyVideoPlayer(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + } + + + private static int GetVideoPlayerEventBase(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return 0; + } + + private static IntPtr InitVideoPlayer(IntPtr videoPlayerPtr, int videoType, + string videoURL, + string contentID, + string providerId, + bool useSecurePath, + bool useExisting) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return IntPtr.Zero; + } + + private static void SetInitialResolution(IntPtr videoPlayerPtr, + int initialResolution) { + Debug.Log(NOT_IMPLEMENTED_MSG); + } + + private static int GetPlayerState(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return -1; + } + + private static int GetWidth(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return -1; + } + + private static int GetHeight(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return -1; + } + + private static int PlayVideo(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return 0; + } + + + private static int PauseVideo(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return 0; + } + + private static bool IsVideoReady(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return false; + } + + private static bool IsVideoPaused(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return true; + } + + private static long GetDuration(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return -1; + } + + private static long GetBufferedPosition(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return -1; + } + + private static long GetCurrentPosition(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return -1; + } + + private static void SetCurrentPosition(IntPtr videoPlayerPtr, long pos) { + Debug.Log(NOT_IMPLEMENTED_MSG); + } + + private static int GetBufferedPercentage(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return 0; + } + + private static int GetMaxVolume(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return 0; + } + + private static int GetCurrentVolume(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return 0; + } + + private static void SetCurrentVolume(IntPtr videoPlayerPtr, int value) { + Debug.Log(NOT_IMPLEMENTED_MSG); + } + + private static bool SetVideoPlayerSupportClassname(IntPtr videoPlayerPtr, + string classname) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return false; + } + + private static IntPtr GetRawPlayer(IntPtr videoPlayerPtr) { + Debug.Log(NOT_IMPLEMENTED_MSG); + return IntPtr.Zero; + } + + private static void SetOnVideoEventCallback(IntPtr videoPlayerPtr, + OnVideoEventCallback callback, + IntPtr callback_arg) { + Debug.Log(NOT_IMPLEMENTED_MSG); + } + + private static void SetOnExceptionCallback(IntPtr videoPlayerPtr, + OnExceptionCallback callback, + IntPtr callback_arg) { + Debug.Log(NOT_IMPLEMENTED_MSG); + } +#endif // UNITY_ANDROID && !UNITY_EDITOR +} + diff --git a/Assets/GoogleVR/Scripts/Video/GvrVideoPlayerTexture.cs.meta b/Assets/GoogleVR/Scripts/Video/GvrVideoPlayerTexture.cs.meta new file mode 100644 index 0000000..5c298b4 --- /dev/null +++ b/Assets/GoogleVR/Scripts/Video/GvrVideoPlayerTexture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 410d5a91205334dda9fd1bf3d325809a +timeCreated: 1469747977 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Shaders.meta b/Assets/GoogleVR/Shaders.meta new file mode 100644 index 0000000..d289bfe --- /dev/null +++ b/Assets/GoogleVR/Shaders.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ec97cbaf487a0514caf8ebaf70d65c60 +folderAsset: yes +timeCreated: 1477437270 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Shaders/GvrAdditiveOverlay.shader b/Assets/GoogleVR/Shaders/GvrAdditiveOverlay.shader new file mode 100644 index 0000000..d7c3e82 --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrAdditiveOverlay.shader @@ -0,0 +1,45 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/Particles/Additive Overlay" { + Properties { + _MainTex ("Particle Texture", 2D) = "white" {} + } + + Category { + Tags { + "Queue"="Overlay+100" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + } + + Blend SrcAlpha One + Cull Off Lighting Off ZWrite Off Fog { Color (0,0,0,0) } + + BindChannels { + Bind "Color", color + Bind "Vertex", vertex + Bind "TexCoord", texcoord + } + + SubShader { + Pass { + SetTexture [_MainTex] { + combine texture * primary + } + } + } + } +} diff --git a/Assets/GoogleVR/Shaders/GvrAdditiveOverlay.shader.meta b/Assets/GoogleVR/Shaders/GvrAdditiveOverlay.shader.meta new file mode 100644 index 0000000..3a2da7d --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrAdditiveOverlay.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 66ce34a5829a64856be634609edd8912 +timeCreated: 1479169225 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Shaders/GvrReticleShader.shader b/Assets/GoogleVR/Shaders/GvrReticleShader.shader new file mode 100644 index 0000000..3f38c4c --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrReticleShader.shader @@ -0,0 +1,74 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Copyright 2015 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/Reticle" { + Properties { + _Color ("Color", Color) = ( 1, 1, 1, 1 ) + _InnerDiameter ("InnerDiameter", Range(0, 10.0)) = 1.5 + _OuterDiameter ("OuterDiameter", Range(0.00872665, 10.0)) = 2.0 + _DistanceInMeters ("DistanceInMeters", Range(0.0, 100.0)) = 2.0 + } + + SubShader { + Tags { "Queue"="Overlay" "IgnoreProjector"="True" "RenderType"="Transparent" } + Pass { + Blend SrcAlpha OneMinusSrcAlpha + AlphaTest Off + Cull Back + Lighting Off + ZWrite Off + ZTest Always + + Fog { Mode Off } + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + uniform float4 _Color; + uniform float _InnerDiameter; + uniform float _OuterDiameter; + uniform float _DistanceInMeters; + + struct vertexInput { + float4 vertex : POSITION; + }; + + struct fragmentInput{ + float4 position : SV_POSITION; + }; + + fragmentInput vert(vertexInput i) { + float scale = lerp(_OuterDiameter, _InnerDiameter, i.vertex.z); + + float4 vert_out = float4(i.vertex.x * scale, i.vertex.y * scale, _DistanceInMeters, 1.0); + + fragmentInput o; + o.position = UnityObjectToClipPos (vert_out); + return o; + } + + fixed4 frag(fragmentInput i) : SV_Target { + fixed4 ret = _Color; + return ret; + } + + ENDCG + } + } +} \ No newline at end of file diff --git a/Assets/GoogleVR/Shaders/GvrReticleShader.shader.meta b/Assets/GoogleVR/Shaders/GvrReticleShader.shader.meta new file mode 100644 index 0000000..5fa7125 --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrReticleShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a3b352fc2ba734605a3df75466e600f0 +timeCreated: 1446884502 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Shaders/GvrUIOverlay.shader b/Assets/GoogleVR/Shaders/GvrUIOverlay.shader new file mode 100644 index 0000000..d69e7b7 --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUIOverlay.shader @@ -0,0 +1,118 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/UI/Overlay" { + Properties { + [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _ColorMask ("Color Mask", Float) = 15 + + [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 + } + + SubShader { + Tags { + // Overlay+110 fixes depth sorting between UI and controller. + "Queue"="Overlay+110" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Stencil { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull Off + Lighting Off + ZWrite Off + ZTest [unity_GUIZTestMode] + Blend SrcAlpha OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + Name "Default" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "GvrUnityCompatibility.cginc" + + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + struct appdata_t { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + }; + + struct v2f { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + half2 texcoord : TEXCOORD0; + float4 worldPosition : TEXCOORD1; + }; + + fixed4 _Color; + fixed4 _TextureSampleAdd; + float4 _ClipRect; + + v2f vert(appdata_t IN) { + v2f OUT; + OUT.worldPosition = IN.vertex; + OUT.vertex = GvrUnityObjectToClipPos(OUT.worldPosition); + + OUT.texcoord = IN.texcoord; + + #ifdef UNITY_HALF_TEXEL_OFFSET + OUT.vertex.xy += (_ScreenParams.zw-1.0) * float2(-1,1) * OUT.vertex.w; + #endif // UNITY_HALF_TEXEL_OFFSET + + OUT.color = IN.color * _Color; + return OUT; + } + + sampler2D _MainTex; + + fixed4 frag(v2f IN) : SV_Target { + half4 color = + (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; + + color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); + + #ifdef UNITY_UI_ALPHACLIP + clip (color.a - 0.001); + #endif // UNITY_UI_ALPHACLIP + + return color; + } + ENDCG + } + } +} diff --git a/Assets/GoogleVR/Shaders/GvrUIOverlay.shader.meta b/Assets/GoogleVR/Shaders/GvrUIOverlay.shader.meta new file mode 100644 index 0000000..f0edd32 --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUIOverlay.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 36d276bd7b313441fbe34aadce7598ca +timeCreated: 1479426244 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Shaders/GvrUIOverlayFont.shader b/Assets/GoogleVR/Shaders/GvrUIOverlayFont.shader new file mode 100644 index 0000000..84e6ccb --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUIOverlayFont.shader @@ -0,0 +1,32 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/UI/Overlay Font" { + Properties { + [PerRendererData] _MainTex ("Font Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _ColorMask ("Color Mask", Float) = 15 + + [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 + } + + FallBack "GoogleVR/UI/Overlay" +} diff --git a/Assets/GoogleVR/Shaders/GvrUIOverlayFont.shader.meta b/Assets/GoogleVR/Shaders/GvrUIOverlayFont.shader.meta new file mode 100644 index 0000000..f6bc95b --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUIOverlayFont.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c259eeb26e96b4f1d8eeb8871bcfdac5 +timeCreated: 1479426244 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Shaders/GvrUnityCompatibility.cginc b/Assets/GoogleVR/Shaders/GvrUnityCompatibility.cginc new file mode 100644 index 0000000..53f5adf --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUnityCompatibility.cginc @@ -0,0 +1,33 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Required for compatibility between Unity 5.2, 5.3.3 and 5.4. + +// Tranforms position from object to homogenous space +inline float4 GvrUnityObjectToClipPos(in float3 pos) { +#if defined(UNITY_5_4_OR_NEWER) + return UnityObjectToClipPos(pos); +#else + +#if defined(UNITY_SINGLE_PASS_STEREO) || defined(UNITY_USE_CONCATENATED_MATRICES) + // More efficient than computing M*VP matrix product + return mul(UNITY_MATRIX_VP, mul(unity_ObjectToWorld, float4(pos, 1.0))); +#else + return UnityObjectToClipPos(float4(pos, 1.0)); +#endif // defined(UNITY_SINGLE_PASS_STEREO) || defined(UNITY_USE_CONCATENATED_MATRICES) + +#endif // defined(UNITY_5_4_OR_NEWER) +} diff --git a/Assets/GoogleVR/Shaders/GvrUnityCompatibility.cginc.meta b/Assets/GoogleVR/Shaders/GvrUnityCompatibility.cginc.meta new file mode 100644 index 0000000..e70aa6d --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUnityCompatibility.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f1973d3fbfd8841729bc6dc8faa553d0 +timeCreated: 1479271453 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Shaders/GvrUnlitTextureOverlay.shader b/Assets/GoogleVR/Shaders/GvrUnlitTextureOverlay.shader new file mode 100644 index 0000000..9316389 --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUnlitTextureOverlay.shader @@ -0,0 +1,65 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/Unlit/Texture Overlay" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + SubShader { + Tags { "Queue"="Overlay+100" "RenderType"="Opaque" } + LOD 100 + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + #pragma multi_compile_fog + + #include "UnityCG.cginc" + #include "GvrUnityCompatibility.cginc" + + struct appdata_t { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct v2f { + float4 vertex : SV_POSITION; + half2 texcoord : TEXCOORD0; + UNITY_FOG_COORDS(1) + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata_t v) { + v2f o; + o.vertex = GvrUnityObjectToClipPos(v.vertex); + o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + UNITY_TRANSFER_FOG(o,o.vertex); + return o; + } + + fixed4 frag (v2f i) : SV_Target { + fixed4 col = tex2D(_MainTex, i.texcoord); + UNITY_APPLY_FOG(i.fogCoord, col); + UNITY_OPAQUE_ALPHA(col.a); + return col; + } + ENDCG + } + } +} diff --git a/Assets/GoogleVR/Shaders/GvrUnlitTextureOverlay.shader.meta b/Assets/GoogleVR/Shaders/GvrUnlitTextureOverlay.shader.meta new file mode 100644 index 0000000..65cfd0d --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUnlitTextureOverlay.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: adb9b18ac2466473a850d8acd17654a1 +timeCreated: 1479438500 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlay.shader b/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlay.shader new file mode 100644 index 0000000..779fb2a --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlay.shader @@ -0,0 +1,77 @@ +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/Unlit/Transparent Overlay" { + Properties { + _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {} + } + + SubShader { + Tags { + "Queue"="Overlay+100" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + + LOD 100 + + Blend SrcAlpha OneMinusSrcAlpha + AlphaTest Off + Cull Back + Lighting Off + ZWrite Off + ZTest Always + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + #pragma multi_compile_fog + + #include "UnityCG.cginc" + + #include "GvrUnityCompatibility.cginc" + + struct appdata_t { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct v2f { + float4 vertex : SV_POSITION; + half2 texcoord : TEXCOORD0; + UNITY_FOG_COORDS(1) + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata_t v) { + v2f o; + o.vertex = GvrUnityObjectToClipPos(v.vertex); + o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + UNITY_TRANSFER_FOG(o,o.vertex); + return o; + } + + fixed4 frag (v2f i) : SV_Target { + fixed4 col = tex2D(_MainTex, i.texcoord); + UNITY_APPLY_FOG(i.fogCoord, col); + return col; + } + ENDCG + } + } +} diff --git a/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlay.shader.meta b/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlay.shader.meta new file mode 100644 index 0000000..483af0d --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlay.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1d94b17868379452aad02b04eb7b0e6e +timeCreated: 1478211415 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlayColor.shader b/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlayColor.shader new file mode 100644 index 0000000..364ec01 --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlayColor.shader @@ -0,0 +1,73 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Copyright 2016 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +Shader "GoogleVR/Unlit/Transparent Overlay Color" { + Properties { + _Color ("Color", COLOR) = (1, 1, 1, 1) + _MainTex ("Texture", 2D) = "white" {} + } + SubShader { + Tags { + "Queue" = "Overlay+100" + "IgnoreProjector" = "True" + "RenderType"="Transparent" + } + LOD 100 + + ZWrite Off + Blend SrcAlpha OneMinusSrcAlpha + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _Color; + float4 _MainTex_ST; + + v2f vert (appdata v) { + v2f o; + float4 vertex4; + vertex4.xyz = v.vertex; + vertex4.w = 1.0; + o.vertex = UnityObjectToClipPos(vertex4); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target { + // sample the texture + fixed4 col = tex2D(_MainTex, i.uv) * _Color; + return col; + } + ENDCG + } + } + FallBack "Unlit/Transparent" +} diff --git a/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlayColor.shader.meta b/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlayColor.shader.meta new file mode 100644 index 0000000..e9e2478 --- /dev/null +++ b/Assets/GoogleVR/Shaders/GvrUnlitTransparentOverlayColor.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 06aa46b8e43675d43b204c3638e59767 +timeCreated: 1475685719 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures.meta b/Assets/GoogleVR/Textures.meta new file mode 100644 index 0000000..0f31660 --- /dev/null +++ b/Assets/GoogleVR/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 09b96904f815a204ea830cf701fbd0f0 +folderAsset: yes +timeCreated: 1477437173 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/battery_indicator_almost_full.png b/Assets/GoogleVR/Textures/battery_indicator_almost_full.png new file mode 100644 index 0000000..2c9feaf Binary files /dev/null and b/Assets/GoogleVR/Textures/battery_indicator_almost_full.png differ diff --git a/Assets/GoogleVR/Textures/battery_indicator_almost_full.png.meta b/Assets/GoogleVR/Textures/battery_indicator_almost_full.png.meta new file mode 100644 index 0000000..bf8aca7 --- /dev/null +++ b/Assets/GoogleVR/Textures/battery_indicator_almost_full.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 96bcea5618451844a8bbbc201209bcc1 +timeCreated: 1489695597 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/battery_indicator_charging.png b/Assets/GoogleVR/Textures/battery_indicator_charging.png new file mode 100644 index 0000000..e320f84 Binary files /dev/null and b/Assets/GoogleVR/Textures/battery_indicator_charging.png differ diff --git a/Assets/GoogleVR/Textures/battery_indicator_charging.png.meta b/Assets/GoogleVR/Textures/battery_indicator_charging.png.meta new file mode 100644 index 0000000..21f09d0 --- /dev/null +++ b/Assets/GoogleVR/Textures/battery_indicator_charging.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 3dd143f5f1101694088950fbe68035d4 +timeCreated: 1489695596 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/battery_indicator_critical_low.png b/Assets/GoogleVR/Textures/battery_indicator_critical_low.png new file mode 100644 index 0000000..344f375 Binary files /dev/null and b/Assets/GoogleVR/Textures/battery_indicator_critical_low.png differ diff --git a/Assets/GoogleVR/Textures/battery_indicator_critical_low.png.meta b/Assets/GoogleVR/Textures/battery_indicator_critical_low.png.meta new file mode 100644 index 0000000..00bc841 --- /dev/null +++ b/Assets/GoogleVR/Textures/battery_indicator_critical_low.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 18a1b6bb5b74e0e44addbb841fbb9878 +timeCreated: 1489695596 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/battery_indicator_full.png b/Assets/GoogleVR/Textures/battery_indicator_full.png new file mode 100644 index 0000000..cbe1615 Binary files /dev/null and b/Assets/GoogleVR/Textures/battery_indicator_full.png differ diff --git a/Assets/GoogleVR/Textures/battery_indicator_full.png.meta b/Assets/GoogleVR/Textures/battery_indicator_full.png.meta new file mode 100644 index 0000000..7ff9a98 --- /dev/null +++ b/Assets/GoogleVR/Textures/battery_indicator_full.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: eace3da2d4164454d9af332b19663224 +timeCreated: 1489695597 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/battery_indicator_low.png b/Assets/GoogleVR/Textures/battery_indicator_low.png new file mode 100644 index 0000000..5c1457b Binary files /dev/null and b/Assets/GoogleVR/Textures/battery_indicator_low.png differ diff --git a/Assets/GoogleVR/Textures/battery_indicator_low.png.meta b/Assets/GoogleVR/Textures/battery_indicator_low.png.meta new file mode 100644 index 0000000..868be43 --- /dev/null +++ b/Assets/GoogleVR/Textures/battery_indicator_low.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 11c5d48200b53514697baf763a624053 +timeCreated: 1489695596 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/battery_indicator_medium.png b/Assets/GoogleVR/Textures/battery_indicator_medium.png new file mode 100644 index 0000000..404cdc4 Binary files /dev/null and b/Assets/GoogleVR/Textures/battery_indicator_medium.png differ diff --git a/Assets/GoogleVR/Textures/battery_indicator_medium.png.meta b/Assets/GoogleVR/Textures/battery_indicator_medium.png.meta new file mode 100644 index 0000000..6bd4e95 --- /dev/null +++ b/Assets/GoogleVR/Textures/battery_indicator_medium.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 90449ad19f3fe874ab4e6b5c22eddf3e +timeCreated: 1489695596 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/battery_indicator_unknown.png b/Assets/GoogleVR/Textures/battery_indicator_unknown.png new file mode 100644 index 0000000..5bc5a21 Binary files /dev/null and b/Assets/GoogleVR/Textures/battery_indicator_unknown.png differ diff --git a/Assets/GoogleVR/Textures/battery_indicator_unknown.png.meta b/Assets/GoogleVR/Textures/battery_indicator_unknown.png.meta new file mode 100644 index 0000000..d498215 --- /dev/null +++ b/Assets/GoogleVR/Textures/battery_indicator_unknown.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 0f7f7125e7582444bb19f1b47693559a +timeCreated: 1489695596 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/cursor_grab.png b/Assets/GoogleVR/Textures/cursor_grab.png new file mode 100644 index 0000000..1e79c70 Binary files /dev/null and b/Assets/GoogleVR/Textures/cursor_grab.png differ diff --git a/Assets/GoogleVR/Textures/cursor_grab.png.meta b/Assets/GoogleVR/Textures/cursor_grab.png.meta new file mode 100644 index 0000000..0a56dc3 --- /dev/null +++ b/Assets/GoogleVR/Textures/cursor_grab.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 72867935ab9d7264ba8abb14b1f860b2 +timeCreated: 1475513528 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/cursor_move.png b/Assets/GoogleVR/Textures/cursor_move.png new file mode 100644 index 0000000..63f6646 Binary files /dev/null and b/Assets/GoogleVR/Textures/cursor_move.png differ diff --git a/Assets/GoogleVR/Textures/cursor_move.png.meta b/Assets/GoogleVR/Textures/cursor_move.png.meta new file mode 100644 index 0000000..55f4506 --- /dev/null +++ b/Assets/GoogleVR/Textures/cursor_move.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 8e2b5a46da88df34988d7b068cf93af6 +timeCreated: 1475513528 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/cursor_pointer.png b/Assets/GoogleVR/Textures/cursor_pointer.png new file mode 100644 index 0000000..79aa9c5 Binary files /dev/null and b/Assets/GoogleVR/Textures/cursor_pointer.png differ diff --git a/Assets/GoogleVR/Textures/cursor_pointer.png.meta b/Assets/GoogleVR/Textures/cursor_pointer.png.meta new file mode 100644 index 0000000..1ca4c1b --- /dev/null +++ b/Assets/GoogleVR/Textures/cursor_pointer.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 9be55a1c895d42a48a59cd0f2fedcb49 +timeCreated: 1475513529 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/cursor_text.png b/Assets/GoogleVR/Textures/cursor_text.png new file mode 100644 index 0000000..470bbf1 Binary files /dev/null and b/Assets/GoogleVR/Textures/cursor_text.png differ diff --git a/Assets/GoogleVR/Textures/cursor_text.png.meta b/Assets/GoogleVR/Textures/cursor_text.png.meta new file mode 100644 index 0000000..c487be6 --- /dev/null +++ b/Assets/GoogleVR/Textures/cursor_text.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 6da5cd89204da99468e34a61cc7ad99d +timeCreated: 1475513527 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/cursor_url.png b/Assets/GoogleVR/Textures/cursor_url.png new file mode 100644 index 0000000..4016717 Binary files /dev/null and b/Assets/GoogleVR/Textures/cursor_url.png differ diff --git a/Assets/GoogleVR/Textures/cursor_url.png.meta b/Assets/GoogleVR/Textures/cursor_url.png.meta new file mode 100644 index 0000000..56d3d43 --- /dev/null +++ b/Assets/GoogleVR/Textures/cursor_url.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 226cfc1dcfd9df449a7c4e33729e0922 +timeCreated: 1475513526 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/ddcontroller_app.png b/Assets/GoogleVR/Textures/ddcontroller_app.png new file mode 100644 index 0000000..634728c Binary files /dev/null and b/Assets/GoogleVR/Textures/ddcontroller_app.png differ diff --git a/Assets/GoogleVR/Textures/ddcontroller_app.png.meta b/Assets/GoogleVR/Textures/ddcontroller_app.png.meta new file mode 100644 index 0000000..d359b10 --- /dev/null +++ b/Assets/GoogleVR/Textures/ddcontroller_app.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: ec0a51638acf0e34ea4a1c05ed1eae73 +timeCreated: 1472073995 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/ddcontroller_idle.png b/Assets/GoogleVR/Textures/ddcontroller_idle.png new file mode 100644 index 0000000..87c31c8 Binary files /dev/null and b/Assets/GoogleVR/Textures/ddcontroller_idle.png differ diff --git a/Assets/GoogleVR/Textures/ddcontroller_idle.png.meta b/Assets/GoogleVR/Textures/ddcontroller_idle.png.meta new file mode 100644 index 0000000..08b3e28 --- /dev/null +++ b/Assets/GoogleVR/Textures/ddcontroller_idle.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: b3b00f546d64da141b0c4384daf0a6e8 +timeCreated: 1472073995 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/ddcontroller_system.png b/Assets/GoogleVR/Textures/ddcontroller_system.png new file mode 100644 index 0000000..6c01c41 Binary files /dev/null and b/Assets/GoogleVR/Textures/ddcontroller_system.png differ diff --git a/Assets/GoogleVR/Textures/ddcontroller_system.png.meta b/Assets/GoogleVR/Textures/ddcontroller_system.png.meta new file mode 100644 index 0000000..2d9b9b7 --- /dev/null +++ b/Assets/GoogleVR/Textures/ddcontroller_system.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 9aa23758b08b6dc4f99a9f85f1f5aeab +timeCreated: 1472073995 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/ddcontroller_touchpad.png b/Assets/GoogleVR/Textures/ddcontroller_touchpad.png new file mode 100644 index 0000000..8cc83ff Binary files /dev/null and b/Assets/GoogleVR/Textures/ddcontroller_touchpad.png differ diff --git a/Assets/GoogleVR/Textures/ddcontroller_touchpad.png.meta b/Assets/GoogleVR/Textures/ddcontroller_touchpad.png.meta new file mode 100644 index 0000000..c681683 --- /dev/null +++ b/Assets/GoogleVR/Textures/ddcontroller_touchpad.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: ddcadd5125392914d85174f016a48a9b +timeCreated: 1472073995 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/dropShadow.png b/Assets/GoogleVR/Textures/dropShadow.png new file mode 100644 index 0000000..3399190 Binary files /dev/null and b/Assets/GoogleVR/Textures/dropShadow.png differ diff --git a/Assets/GoogleVR/Textures/dropShadow.png.meta b/Assets/GoogleVR/Textures/dropShadow.png.meta new file mode 100644 index 0000000..35db3b1 --- /dev/null +++ b/Assets/GoogleVR/Textures/dropShadow.png.meta @@ -0,0 +1,63 @@ +fileFormatVersion: 2 +guid: 3776286ea5437463d95d7054b559df67 +timeCreated: 1475885178 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 178, y: 0, z: 178, w: 0} + spritePixelsToUnits: 500 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: + - - {x: -181, y: -181.5} + - {x: -181, y: 181.5} + - {x: 181, y: 181.5} + - {x: 181, y: -181.5} + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/laserTexture.png b/Assets/GoogleVR/Textures/laserTexture.png new file mode 100644 index 0000000..ad4b8be Binary files /dev/null and b/Assets/GoogleVR/Textures/laserTexture.png differ diff --git a/Assets/GoogleVR/Textures/laserTexture.png.meta b/Assets/GoogleVR/Textures/laserTexture.png.meta new file mode 100644 index 0000000..d111267 --- /dev/null +++ b/Assets/GoogleVR/Textures/laserTexture.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: e314ee0eb28e9ad4ba2950c17b95c25d +timeCreated: 1472081043 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/Textures/touchTexture.png b/Assets/GoogleVR/Textures/touchTexture.png new file mode 100644 index 0000000..c58afda Binary files /dev/null and b/Assets/GoogleVR/Textures/touchTexture.png differ diff --git a/Assets/GoogleVR/Textures/touchTexture.png.meta b/Assets/GoogleVR/Textures/touchTexture.png.meta new file mode 100644 index 0000000..11b1bb3 --- /dev/null +++ b/Assets/GoogleVR/Textures/touchTexture.png.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 8793f9833753aed41b73f603710cf856 +timeCreated: 1472151176 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins.meta b/Assets/Plugins.meta new file mode 100644 index 0000000..fe34133 --- /dev/null +++ b/Assets/Plugins.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a05debb1b57fe144990484ed6107dfaa +folderAsset: yes +timeCreated: 1497608849 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android.meta b/Assets/Plugins/Android.meta new file mode 100644 index 0000000..a685b0b --- /dev/null +++ b/Assets/Plugins/Android.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c2b7d305892cb604dacb09c0d5a09ed3 +folderAsset: yes +timeCreated: 1497608849 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/AndroidManifest-Cardboard.xml b/Assets/Plugins/Android/AndroidManifest-Cardboard.xml new file mode 100644 index 0000000..907fde7 --- /dev/null +++ b/Assets/Plugins/Android/AndroidManifest-Cardboard.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Plugins/Android/AndroidManifest-Cardboard.xml.meta b/Assets/Plugins/Android/AndroidManifest-Cardboard.xml.meta new file mode 100644 index 0000000..c7c69eb --- /dev/null +++ b/Assets/Plugins/Android/AndroidManifest-Cardboard.xml.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d58d208ecab3b4c68864333c61ffac7b +timeCreated: 1473365081 +licenseType: Pro +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/AndroidManifest-Daydream.xml b/Assets/Plugins/Android/AndroidManifest-Daydream.xml new file mode 100644 index 0000000..6655a31 --- /dev/null +++ b/Assets/Plugins/Android/AndroidManifest-Daydream.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Plugins/Android/AndroidManifest-Daydream.xml.meta b/Assets/Plugins/Android/AndroidManifest-Daydream.xml.meta new file mode 100644 index 0000000..c938707 --- /dev/null +++ b/Assets/Plugins/Android/AndroidManifest-Daydream.xml.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 48f7ce7c2a1174ffdac9ebd5815bfa13 +timeCreated: 1473365498 +licenseType: Pro +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/exoplayer-r1.5.11.aar b/Assets/Plugins/Android/exoplayer-r1.5.11.aar new file mode 100644 index 0000000..f1306c3 Binary files /dev/null and b/Assets/Plugins/Android/exoplayer-r1.5.11.aar differ diff --git a/Assets/Plugins/Android/exoplayer-r1.5.11.aar.meta b/Assets/Plugins/Android/exoplayer-r1.5.11.aar.meta new file mode 100644 index 0000000..7977173 --- /dev/null +++ b/Assets/Plugins/Android/exoplayer-r1.5.11.aar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 88e0a47da0e5741fc82aaac9a165e157 +timeCreated: 1496245294 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/gvr-exoplayersupport-release.aar b/Assets/Plugins/Android/gvr-exoplayersupport-release.aar new file mode 100644 index 0000000..e233e68 Binary files /dev/null and b/Assets/Plugins/Android/gvr-exoplayersupport-release.aar differ diff --git a/Assets/Plugins/Android/gvr-exoplayersupport-release.aar.meta b/Assets/Plugins/Android/gvr-exoplayersupport-release.aar.meta new file mode 100644 index 0000000..977c814 --- /dev/null +++ b/Assets/Plugins/Android/gvr-exoplayersupport-release.aar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: ecf029dca319d49efa075e04e19f3231 +timeCreated: 1496245294 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/gvr-keyboard.aar b/Assets/Plugins/Android/gvr-keyboard.aar new file mode 100644 index 0000000..1a31137 Binary files /dev/null and b/Assets/Plugins/Android/gvr-keyboard.aar differ diff --git a/Assets/Plugins/Android/gvr-keyboard.aar.meta b/Assets/Plugins/Android/gvr-keyboard.aar.meta new file mode 100644 index 0000000..3612774 --- /dev/null +++ b/Assets/Plugins/Android/gvr-keyboard.aar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 47500cc02ebbc214ebfee93af75c8861 +timeCreated: 1493153350 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/gvr-keyboardsupport-release.aar b/Assets/Plugins/Android/gvr-keyboardsupport-release.aar new file mode 100644 index 0000000..2bee89d Binary files /dev/null and b/Assets/Plugins/Android/gvr-keyboardsupport-release.aar differ diff --git a/Assets/Plugins/Android/gvr-keyboardsupport-release.aar.meta b/Assets/Plugins/Android/gvr-keyboardsupport-release.aar.meta new file mode 100644 index 0000000..74f24bb --- /dev/null +++ b/Assets/Plugins/Android/gvr-keyboardsupport-release.aar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 2d32e015b7fa1428486655f73b2c2dfd +timeCreated: 1496245294 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/gvr-permissionsupport-release.aar b/Assets/Plugins/Android/gvr-permissionsupport-release.aar new file mode 100644 index 0000000..f512533 Binary files /dev/null and b/Assets/Plugins/Android/gvr-permissionsupport-release.aar differ diff --git a/Assets/Plugins/Android/gvr-permissionsupport-release.aar.meta b/Assets/Plugins/Android/gvr-permissionsupport-release.aar.meta new file mode 100644 index 0000000..1150927 --- /dev/null +++ b/Assets/Plugins/Android/gvr-permissionsupport-release.aar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 3887ea48dd36c470ba0a025098a3fcd8 +timeCreated: 1496245294 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/libs.meta b/Assets/Plugins/Android/libs.meta new file mode 100644 index 0000000..3eac56b --- /dev/null +++ b/Assets/Plugins/Android/libs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1dcdfb286e9ba4c438f36ceb46fb830f +folderAsset: yes +timeCreated: 1497608850 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/libs/armeabi-v7a.meta b/Assets/Plugins/Android/libs/armeabi-v7a.meta new file mode 100644 index 0000000..9c39f38 --- /dev/null +++ b/Assets/Plugins/Android/libs/armeabi-v7a.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5e388a0518b81bb438e5ff21482ed721 +folderAsset: yes +timeCreated: 1497608850 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/libs/armeabi-v7a/libaudioplugingvrunity.so b/Assets/Plugins/Android/libs/armeabi-v7a/libaudioplugingvrunity.so new file mode 100644 index 0000000..ad13968 Binary files /dev/null and b/Assets/Plugins/Android/libs/armeabi-v7a/libaudioplugingvrunity.so differ diff --git a/Assets/Plugins/Android/libs/armeabi-v7a/libaudioplugingvrunity.so.meta b/Assets/Plugins/Android/libs/armeabi-v7a/libaudioplugingvrunity.so.meta new file mode 100644 index 0000000..7ffe89b --- /dev/null +++ b/Assets/Plugins/Android/libs/armeabi-v7a/libaudioplugingvrunity.so.meta @@ -0,0 +1,50 @@ +fileFormatVersion: 2 +guid: 784c4e479ec224417a77c264df4d818b +timeCreated: 1488236556 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 1 + platformData: + Android: + enabled: 1 + settings: + CPU: ARMv7 + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/libs/armeabi-v7a/libgvrvideo.so b/Assets/Plugins/Android/libs/armeabi-v7a/libgvrvideo.so new file mode 100644 index 0000000..f51583c Binary files /dev/null and b/Assets/Plugins/Android/libs/armeabi-v7a/libgvrvideo.so differ diff --git a/Assets/Plugins/Android/libs/armeabi-v7a/libgvrvideo.so.meta b/Assets/Plugins/Android/libs/armeabi-v7a/libgvrvideo.so.meta new file mode 100644 index 0000000..7dd3dc7 --- /dev/null +++ b/Assets/Plugins/Android/libs/armeabi-v7a/libgvrvideo.so.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: b1458fbb8dacc4ba4b380e7607fffe12 +timeCreated: 1496245294 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: ARMv7 + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/libs/x86.meta b/Assets/Plugins/Android/libs/x86.meta new file mode 100644 index 0000000..0cb1bc5 --- /dev/null +++ b/Assets/Plugins/Android/libs/x86.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3288eef6556049540920c4e34a6ae9cb +folderAsset: yes +timeCreated: 1497608850 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/libs/x86/libaudioplugingvrunity.so b/Assets/Plugins/Android/libs/x86/libaudioplugingvrunity.so new file mode 100644 index 0000000..d57f2e2 Binary files /dev/null and b/Assets/Plugins/Android/libs/x86/libaudioplugingvrunity.so differ diff --git a/Assets/Plugins/Android/libs/x86/libaudioplugingvrunity.so.meta b/Assets/Plugins/Android/libs/x86/libaudioplugingvrunity.so.meta new file mode 100644 index 0000000..534829d --- /dev/null +++ b/Assets/Plugins/Android/libs/x86/libaudioplugingvrunity.so.meta @@ -0,0 +1,50 @@ +fileFormatVersion: 2 +guid: 2372f8fed9f5548fd86a3e5ce0917655 +timeCreated: 1488236555 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 1 + platformData: + Android: + enabled: 1 + settings: + CPU: x86 + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/libs/x86/libgvrvideo.so b/Assets/Plugins/Android/libs/x86/libgvrvideo.so new file mode 100644 index 0000000..6e49ee3 Binary files /dev/null and b/Assets/Plugins/Android/libs/x86/libgvrvideo.so differ diff --git a/Assets/Plugins/Android/libs/x86/libgvrvideo.so.meta b/Assets/Plugins/Android/libs/x86/libgvrvideo.so.meta new file mode 100644 index 0000000..8717d5e --- /dev/null +++ b/Assets/Plugins/Android/libs/x86/libgvrvideo.so.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 5e76992d74abb4c3a95a12a10ddcebb9 +timeCreated: 1496245294 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: x86 + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/proguard-gvr.txt b/Assets/Plugins/Android/proguard-gvr.txt new file mode 100644 index 0000000..acb4ce7 --- /dev/null +++ b/Assets/Plugins/Android/proguard-gvr.txt @@ -0,0 +1,27 @@ +# Don't obfuscate any NDK/SDK code. This makes the debugging of stack traces in +# in release builds easier. +-keepnames class com.google.vr.ndk.** { *; } +-keepnames class com.google.vr.sdk.** { *; } + +# These are part of the Java <-> native interfaces for GVR. +-keepclasseswithmembernames,includedescriptorclasses class com.google.vr.** { + native ; +} + +-keep class com.google.vr.cardboard.UsedByNative +-keep @com.google.vr.cardboard.UsedByNative class * +-keepclassmembers class * { + @com.google.vr.cardboard.UsedByNative *; +} + +-keep class com.google.vr.cardboard.annotations.UsedByNative +-keep @com.google.vr.cardboard.annotations.UsedByNative class * +-keepclassmembers class * { + @com.google.vr.cardboard.annotations.UsedByNative *; +} + +-keep class com.google.vr.cardboard.annotations.UsedByReflection +-keep @com.google.vr.cardboard.annotations.UsedByReflection class * +-keepclassmembers class * { + @com.google.vr.cardboard.annotations.UsedByReflection *; +} diff --git a/Assets/Plugins/Android/proguard-gvr.txt.meta b/Assets/Plugins/Android/proguard-gvr.txt.meta new file mode 100644 index 0000000..4efbd98 --- /dev/null +++ b/Assets/Plugins/Android/proguard-gvr.txt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 13c908fa5b648481b8425f1edc8944e9 +timeCreated: 1496245294 +licenseType: Pro +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Google.ProtocolBuffers.dll.meta b/Assets/Plugins/Google.ProtocolBuffers.dll.meta new file mode 100644 index 0000000..512d453 --- /dev/null +++ b/Assets/Plugins/Google.ProtocolBuffers.dll.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: eb0b9a42141e349a6a47f93165aeca3f +timeCreated: 1462046662 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 1 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS.meta b/Assets/Plugins/iOS.meta new file mode 100644 index 0000000..52cdeba --- /dev/null +++ b/Assets/Plugins/iOS.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: feada4fce213d4542a1933096a47787c +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/iOS/GvrAudioAppController.h b/Assets/Plugins/iOS/GvrAudioAppController.h new file mode 100644 index 0000000..2c9c7e3 --- /dev/null +++ b/Assets/Plugins/iOS/GvrAudioAppController.h @@ -0,0 +1,27 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "UnityAppController.h" +#import "UnityAppController+ViewHandling.h" + +#import "UnityAppController+UnityInterface.h" +#include "PluginBase/UnityViewControllerListener.h" + +@interface GvrAudioAppController : UnityAppController + +- (UnityView *)createUnityView; + +- (UIViewController *)unityViewController; + +@end diff --git a/Assets/Plugins/iOS/GvrAudioAppController.h.meta b/Assets/Plugins/iOS/GvrAudioAppController.h.meta new file mode 100644 index 0000000..4b549f7 --- /dev/null +++ b/Assets/Plugins/iOS/GvrAudioAppController.h.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: b764ba158c511407fbc195fb36b34bc6 +timeCreated: 1494024789 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + iOS: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/GvrAudioAppController.mm b/Assets/Plugins/iOS/GvrAudioAppController.mm new file mode 100644 index 0000000..e2ef09a --- /dev/null +++ b/Assets/Plugins/iOS/GvrAudioAppController.mm @@ -0,0 +1,43 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "GvrAudioAppController.h" + +extern "C" { + +// We have to manually register the Unity Audio Effect plugin. +struct UnityAudioEffectDefinition; +typedef int (*UnityPluginGetAudioEffectDefinitionsFunc)( + struct UnityAudioEffectDefinition*** descptr); +extern void UnityRegisterAudioPlugin( + UnityPluginGetAudioEffectDefinitionsFunc getAudioEffectDefinitions); +extern int UnityGetAudioEffectDefinitions(UnityAudioEffectDefinition*** definitionptr); + +} // extern "C" + +@implementation GvrAudioAppController + +- (UnityView *)createUnityView { + UnityRegisterViewControllerListener(self); + UnityRegisterAudioPlugin(UnityGetAudioEffectDefinitions); + return [super createUnityView]; +} + +- (UIViewController *)unityViewController { + return UnityGetGLViewController(); +} + +@end + +IMPL_APP_CONTROLLER_SUBCLASS(GvrAudioAppController) diff --git a/Assets/Plugins/iOS/GvrAudioAppController.mm.meta b/Assets/Plugins/iOS/GvrAudioAppController.mm.meta new file mode 100644 index 0000000..35dabc3 --- /dev/null +++ b/Assets/Plugins/iOS/GvrAudioAppController.mm.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: f2a868822ddbb4ca6952f78be4bb4698 +timeCreated: 1494024789 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + iOS: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/libaudioplugingvrunity.a b/Assets/Plugins/iOS/libaudioplugingvrunity.a new file mode 100644 index 0000000..17816fa Binary files /dev/null and b/Assets/Plugins/iOS/libaudioplugingvrunity.a differ diff --git a/Assets/Plugins/iOS/libaudioplugingvrunity.a.meta b/Assets/Plugins/iOS/libaudioplugingvrunity.a.meta new file mode 100644 index 0000000..3c00fe8 --- /dev/null +++ b/Assets/Plugins/iOS/libaudioplugingvrunity.a.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: d1d75d94639dd45dbbee94e5cda80289 +timeCreated: 1496245294 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 1 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + iOS: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/x86.meta b/Assets/Plugins/x86.meta new file mode 100644 index 0000000..3a0c522 --- /dev/null +++ b/Assets/Plugins/x86.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 584f6b53f763e409390610a85304e249 +folderAsset: yes +timeCreated: 1449672488 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/x86/audioplugingvrunity.dll.meta b/Assets/Plugins/x86/audioplugingvrunity.dll.meta new file mode 100644 index 0000000..636452e --- /dev/null +++ b/Assets/Plugins/x86/audioplugingvrunity.dll.meta @@ -0,0 +1,67 @@ +fileFormatVersion: 2 +guid: 6042170e05c0148b998dc7fc4a2a151e +timeCreated: 1465328651 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 1 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: x86 + DefaultValueInitialized: true + OS: Windows + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: x86 + OSXIntel: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: x86 + SamsungTV: + enabled: 0 + settings: + STV_MODEL: STANDARD_13 + Win: + enabled: 1 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: None + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/x86_64.meta b/Assets/Plugins/x86_64.meta new file mode 100644 index 0000000..1ab77d6 --- /dev/null +++ b/Assets/Plugins/x86_64.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 006f50925eb084fb7a542a990aee6ee1 +folderAsset: yes +timeCreated: 1449672488 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/x86_64/audioplugingvrunity.bundle b/Assets/Plugins/x86_64/audioplugingvrunity.bundle new file mode 100644 index 0000000..4cca7cf Binary files /dev/null and b/Assets/Plugins/x86_64/audioplugingvrunity.bundle differ diff --git a/Assets/Plugins/x86_64/audioplugingvrunity.bundle.meta b/Assets/Plugins/x86_64/audioplugingvrunity.bundle.meta new file mode 100644 index 0000000..7b8730d --- /dev/null +++ b/Assets/Plugins/x86_64/audioplugingvrunity.bundle.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 35720a8a08c674133815d46f8d3ad66a +folderAsset: yes +timeCreated: 1462387242 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 1 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: OSX + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 1 + settings: + CPU: AnyCPU + OSXUniversal: + enabled: 0 + settings: + CPU: x86_64 + SamsungTV: + enabled: 0 + settings: + STV_MODEL: STANDARD_13 + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 1 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/x86_64/audioplugingvrunity.dll.meta b/Assets/Plugins/x86_64/audioplugingvrunity.dll.meta new file mode 100644 index 0000000..f137aca --- /dev/null +++ b/Assets/Plugins/x86_64/audioplugingvrunity.dll.meta @@ -0,0 +1,67 @@ +fileFormatVersion: 2 +guid: 59177834662aa4ead89a6c07a4715165 +timeCreated: 1465328657 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 1 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Windows + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 1 + settings: + CPU: AnyCPU + OSXUniversal: + enabled: 0 + settings: + CPU: x86_64 + SamsungTV: + enabled: 0 + settings: + STV_MODEL: STANDARD_13 + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 1 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/x86_64/libaudioplugingvrunity.so b/Assets/Plugins/x86_64/libaudioplugingvrunity.so new file mode 100644 index 0000000..fdb6fc2 Binary files /dev/null and b/Assets/Plugins/x86_64/libaudioplugingvrunity.so differ diff --git a/Assets/Plugins/x86_64/libaudioplugingvrunity.so.meta b/Assets/Plugins/x86_64/libaudioplugingvrunity.so.meta new file mode 100644 index 0000000..b9e1055 --- /dev/null +++ b/Assets/Plugins/x86_64/libaudioplugingvrunity.so.meta @@ -0,0 +1,63 @@ +fileFormatVersion: 2 +guid: 7f9e0b92d39064f0283d9051029090e3 +timeCreated: 1467830057 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 1 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Linux + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 1 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 0000000..1795601 --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ed5b874eafafae94694ed8e0a058593e +folderAsset: yes +timeCreated: 1498132432 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/ApplicationInstance.prefab b/Assets/Resources/ApplicationInstance.prefab new file mode 100644 index 0000000..0c3eabf Binary files /dev/null and b/Assets/Resources/ApplicationInstance.prefab differ diff --git a/Assets/Resources/ApplicationInstance.prefab.meta b/Assets/Resources/ApplicationInstance.prefab.meta new file mode 100644 index 0000000..0777ea9 --- /dev/null +++ b/Assets/Resources/ApplicationInstance.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3eb9935333d3db14286ff94890f3cb43 +timeCreated: 1498131822 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/UpdateNotification.prefab b/Assets/Resources/UpdateNotification.prefab new file mode 100644 index 0000000..3998f81 Binary files /dev/null and b/Assets/Resources/UpdateNotification.prefab differ diff --git a/Assets/Resources/UpdateNotification.prefab.meta b/Assets/Resources/UpdateNotification.prefab.meta new file mode 100644 index 0000000..d95fc85 --- /dev/null +++ b/Assets/Resources/UpdateNotification.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f12252b185d79a84ebdb197b78d782eb +timeCreated: 1498150005 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/default_settings.json b/Assets/Resources/default_settings.json new file mode 100644 index 0000000..7d206eb --- /dev/null +++ b/Assets/Resources/default_settings.json @@ -0,0 +1,21 @@ +{ + "ApplicationName": "VRPortfolioWork", + "Version": "1.0.0", + "Modules": { + "CarConfigurator": { + "Name": "Car Configurator", + "Type": "Content", + "Version": "1.0.0" + }, + "RoomDesigner": { + "Name": "Room Designer", + "Type": "Content", + "Version": "1.0.0" + } + "Demo": { + "Name": "Function Demo", + "Type": "Content", + "Version": "1.0.0" + } + } +} \ No newline at end of file diff --git a/Assets/Resources/default_settings.json.meta b/Assets/Resources/default_settings.json.meta new file mode 100644 index 0000000..a81ed38 --- /dev/null +++ b/Assets/Resources/default_settings.json.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d271a400b31b2749bc729723745642c +timeCreated: 1498159907 +licenseType: Free +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets.meta b/Assets/StreamingAssets.meta new file mode 100644 index 0000000..b272566 --- /dev/null +++ b/Assets/StreamingAssets.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 25d4e082d954d49f199adb7a1a9d50ce +folderAsset: yes +timeCreated: 1477620677 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/vid_bigbuckbunny.mp4 b/Assets/StreamingAssets/vid_bigbuckbunny.mp4 new file mode 100644 index 0000000..81d11df Binary files /dev/null and b/Assets/StreamingAssets/vid_bigbuckbunny.mp4 differ diff --git a/Assets/StreamingAssets/vid_bigbuckbunny.mp4.meta b/Assets/StreamingAssets/vid_bigbuckbunny.mp4.meta new file mode 100644 index 0000000..338b9fa --- /dev/null +++ b/Assets/StreamingAssets/vid_bigbuckbunny.mp4.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 316f0cd4ce9644a82a78f8ce4505461f +timeCreated: 1471831179 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI.meta b/Assets/tinysAPI.meta new file mode 100644 index 0000000..1ba1d82 --- /dev/null +++ b/Assets/tinysAPI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d2096b3fe171930488db1bdaec1cda8c +folderAsset: yes +timeCreated: 1498308522 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Application.cs b/Assets/tinysAPI/Application.cs new file mode 100644 index 0000000..23d174f --- /dev/null +++ b/Assets/tinysAPI/Application.cs @@ -0,0 +1,93 @@ +using System.Collections; +using System.Collections.Generic; + +using UnityEngine; + +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace tinysAPI + { + public class Application : MonoBehaviour + { + + #region Public Attributes + + // global instance of the application manager + public static Application instance = null; + + // public access to extension prefab references + public GameObject[] Extensions; + + // public sub class for application notifications (for better readability) + public static class Notifications + { + public static string CHECKFORUPDATES = "application.checkforupdates"; + public static string ASKTOINSTALLUPDATES = "application.asktoinstallupdate"; + public static string INSTALLUPDATES = "application.installupdates"; + } + + #endregion + + #region Private Attributes + + // private attributes + + #endregion + + #region Public Functions + + // public functions + + public void notify(string notification, BaseClassView refView) + { + //TODO: wie wird was bekannt gemacht? + } + + #endregion + + #region Private Functions + + [RuntimeInitializeOnLoadMethod] + static void OnRuntimeMethodLoad() + { + // notify user, tinysAPI is running and starts the application class + Debug.Log("tinysAPI: Starting Application"); + + //Instantiate the application prefab in the resources folder + Instantiate(Resources.Load("ApplicationInstance", typeof(GameObject))); + } + + void Awake() + { + //Check if instance already exists + if (instance == null) + { + //if not, set instance to this + instance = this; + } + else if (instance != this) + { + //Then destroy this. This enforces our singleton pattern, meaning there can only ever be one instance of a GameManager. + Destroy(gameObject); + } + + //Sets this to not be destroyed when reloading scene + DontDestroyOnLoad(gameObject); + + // instanciate all extension prefabs + if(Extensions.Length != 0) + { + foreach(GameObject extension in Extensions) + { + Instantiate(extension, gameObject.transform.Find("Extensions").transform); + } + } + } + + #endregion + + } + } +} diff --git a/Assets/tinysAPI/Application.cs.meta b/Assets/tinysAPI/Application.cs.meta new file mode 100644 index 0000000..9aedfa4 --- /dev/null +++ b/Assets/tinysAPI/Application.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 60a5085f18ed135408a3a0d776fabedc +timeCreated: 1498419495 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/BaseClasses.meta b/Assets/tinysAPI/BaseClasses.meta new file mode 100644 index 0000000..a9562f3 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1fb0252dfb65aab44a3f3a16f7f856fe +folderAsset: yes +timeCreated: 1498423302 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/BaseClasses/BaseClass.cs b/Assets/tinysAPI/BaseClasses/BaseClass.cs new file mode 100644 index 0000000..8aff9b4 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClass.cs @@ -0,0 +1,25 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace BaseClasses + { + abstract public class BaseClass : MonoBehaviour + { + // Gives access to the modul and all instances. + public Modul modulInstance { get { return gameObject.GetComponentInParent(); } } + + #region Interface Functions + + // TODO: global interface functions + + #endregion + + } + } + } +} \ No newline at end of file diff --git a/Assets/tinysAPI/BaseClasses/BaseClass.cs.meta b/Assets/tinysAPI/BaseClasses/BaseClass.cs.meta new file mode 100644 index 0000000..630a4b5 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClass.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c377e70f569c6eb44aec722a35f651b7 +timeCreated: 1498509309 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/BaseClasses/BaseClassComponent.cs b/Assets/tinysAPI/BaseClasses/BaseClassComponent.cs new file mode 100644 index 0000000..ec0e1ef --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassComponent.cs @@ -0,0 +1,41 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace BaseClasses + { + abstract public class BaseClassComponent : BaseClass + { + // reference to the currect index in ther components array list in the parent view + protected int _ComponentsArrayIndex = 0; + + #region Interface Functions + + // interface function for controller to notify the view for succeeded model validation + abstract public void ValidationSucceeded(string notification); + + // interface function for controller to notify the view for failed model validation + abstract public void ValidationFailed(string notification); + + // interface function for initialization + abstract public void Init(); + + #endregion + + #region Unity Events + + // Use this for initialization + void Start() + { + Init(); + } + + #endregion + } + } + } +} diff --git a/Assets/tinysAPI/BaseClasses/BaseClassComponent.cs.meta b/Assets/tinysAPI/BaseClasses/BaseClassComponent.cs.meta new file mode 100644 index 0000000..7046bd9 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9f0060d46474ac74b90df98e628ebd49 +timeCreated: 1498393980 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/BaseClasses/BaseClassExtension.cs b/Assets/tinysAPI/BaseClasses/BaseClassExtension.cs new file mode 100644 index 0000000..f1452ef --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassExtension.cs @@ -0,0 +1,100 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace BaseClasses + { + abstract public class BaseClassExtension : BaseClass + { + #region Public Attributes + + // Gives access to the app and all instances. + public Application appInstance { get { return Application.instance; } } + + // public access references of the MVP. + public BaseClassModel Model { get { return _model; } } + public BaseClassPresenter Presenter { get { return _presenter; } } + public BaseClassView View { get { return _view; } } + + // Readable Access to Extension Description + public string ExtensionName { get { return _extName; } } + public string ExtensionVersionNumber { get { return _extVersionNumber; } } + public string ExtensionCategory { get { return _extCategory; } } + + #endregion + + #region Private Attributes + + // private reference of the MVP. + private BaseClassModel _model = null; + private BaseClassPresenter _presenter = null; + private BaseClassView _view = null; + + // private extension description fields + protected string _extName = "BaseClassExtension"; + protected string _extVersionNumber = "1.0.0"; + protected string _extCategory = "Extension.Basic"; + + #endregion + + #region Public Functions + + // public function for setting the model reference + public void RegisterModel(BaseClassModel model) + { + // check if _model is null, else log an error for trying to overwrite the current model + if (_model == null) + { + _model = model; + } + else + { + Debug.LogError(string.Format("Trying to overwrite the current model: {0} with {1}", _model, model)); + } + } + + // public function for setting the presenter reference + public void RegisterPresenter(BaseClassPresenter presenter) + { + // check if _presenter is null, else log an error for trying to overwrite the current presenter + if (_presenter == null) + { + _presenter = presenter; + } + else + { + Debug.LogError(string.Format("Trying to overwrite the current presenter: {0} with {1}", _presenter, presenter)); + } + } + + // public function for setting the view reference + public void RegisterView(BaseClassView view) + { + // check if _view is null, else log an error for trying to overwrite the current view + if (_view == null) + { + _view = view; + } + else + { + Debug.LogError(string.Format("Trying to overwrite the current view: {0} with {1}", _view, view)); + } + } + + #endregion + + #region Private Functions + + #endregion + + #region Interface Functions + + #endregion + } + } + } +} diff --git a/Assets/tinysAPI/BaseClasses/BaseClassExtension.cs.meta b/Assets/tinysAPI/BaseClasses/BaseClassExtension.cs.meta new file mode 100644 index 0000000..02c8a13 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassExtension.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7a2137862d3cccc44b599e807d92b825 +timeCreated: 1498423334 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/BaseClasses/BaseClassModel.cs b/Assets/tinysAPI/BaseClasses/BaseClassModel.cs new file mode 100644 index 0000000..fb9a362 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassModel.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace BaseClasses + { + abstract public class BaseClassModel : BaseClass + { + #region Interface Functions + + // interface function for controller activate the model validation + abstract public bool Validate(string Notification, UnityEngine.Object DataReference = null); + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/tinysAPI/BaseClasses/BaseClassModel.cs.meta b/Assets/tinysAPI/BaseClasses/BaseClassModel.cs.meta new file mode 100644 index 0000000..b84eadd --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ae407339f028e3e499d9601195ad1469 +timeCreated: 1498306181 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/BaseClasses/BaseClassNotification.cs b/Assets/tinysAPI/BaseClasses/BaseClassNotification.cs new file mode 100644 index 0000000..4993264 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassNotification.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace BaseClasses + { + abstract public class BaseClassNotification + { + #region Default Notifications + + public static string POINTERCLICKEVENT = "notification.pointerclickevent"; + public static string POINTERENTEREVENT = "notification.pointerenterevent"; + public static string POINTEREXITEVENT = "notification.pointerexitevent"; + public static string POINTERDOWN = "notification.pointerdown"; + public static string POINTERUP = "notification.pointerup"; + public static string MOVE = "notification.move"; + + public static string DEFAULT = "notification.default"; + public static string NONE = "notification.none"; + + #endregion + } + } + } +} diff --git a/Assets/tinysAPI/BaseClasses/BaseClassNotification.cs.meta b/Assets/tinysAPI/BaseClasses/BaseClassNotification.cs.meta new file mode 100644 index 0000000..5e102ea --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassNotification.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1f311520d417bd547a57f4e3b08de7f4 +timeCreated: 1498396971 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/BaseClasses/BaseClassPresenter.cs b/Assets/tinysAPI/BaseClasses/BaseClassPresenter.cs new file mode 100644 index 0000000..8241836 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassPresenter.cs @@ -0,0 +1,28 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace BaseClasses + { + abstract public class BaseClassPresenter : BaseClass + { + #region Interface Functions + + // interface function for notify + abstract public void Notify(string Notification, UnityEngine.Object DataReference = null); + + // interface function for view to notify presenter to update the subview values from model + abstract public void InitComponent(BaseClassComponent Component); + + // interface function for view to update all validated values + abstract public void UpdateComponent(BaseClassComponent Component); + + #endregion + } + } + } +} diff --git a/Assets/tinysAPI/BaseClasses/BaseClassPresenter.cs.meta b/Assets/tinysAPI/BaseClasses/BaseClassPresenter.cs.meta new file mode 100644 index 0000000..1882fa9 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassPresenter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5a94e490b94bd1a4e84a9fcce73b3115 +timeCreated: 1498306195 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/BaseClasses/BaseClassView.cs b/Assets/tinysAPI/BaseClasses/BaseClassView.cs new file mode 100644 index 0000000..cbdb607 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassView.cs @@ -0,0 +1,58 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace BaseClasses + { + abstract public class BaseClassView : BaseClass + { + // private array list of components + protected ArrayList _components = new ArrayList(); + + #region Interface Functions + + // public function to add a new sub view, returns array id + public int RegisterComponent(BaseClassComponent component) + { + // init sub view via presenter + modulInstance.Presenter.InitComponent(component); + + // add sub view to array and return index + return _components.Add(component); + } + + // public function to call ValidationSucceeded from all registered subviews + public void FireValidationSucceededEvent(string notification) + { + foreach (BaseClassComponent component in _components) + { + // update all values + modulInstance.Presenter.UpdateComponent(component); + + // call delegate + component.ValidationSucceeded(notification); + } + } + + // public function to call ValidationFailed from all registered subviews + public void FireValidationFailedEvent(string notification) + { + foreach (BaseClassComponent component in _components) + { + // update all values + modulInstance.Presenter.UpdateComponent(component); + + // call delegate + component.ValidationSucceeded(notification); + } + } + + #endregion + } + } + } +} diff --git a/Assets/tinysAPI/BaseClasses/BaseClassView.cs.meta b/Assets/tinysAPI/BaseClasses/BaseClassView.cs.meta new file mode 100644 index 0000000..a743ae3 --- /dev/null +++ b/Assets/tinysAPI/BaseClasses/BaseClassView.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ec581ce13c82d9242b86dcdf6e233e52 +timeCreated: 1498306097 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions.meta b/Assets/tinysAPI/Extensions.meta new file mode 100644 index 0000000..6ce2c44 --- /dev/null +++ b/Assets/tinysAPI/Extensions.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e64644267bf900947ae50dfdb55642d7 +folderAsset: yes +timeCreated: 1498423286 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater.meta b/Assets/tinysAPI/Extensions/Updater.meta new file mode 100644 index 0000000..e705d3f --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ae22092260062434883520fa34f6cfa0 +folderAsset: yes +timeCreated: 1498423365 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater/Model.meta b/Assets/tinysAPI/Extensions/Updater/Model.meta new file mode 100644 index 0000000..c50b5ef --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/Model.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6fe8962c0f4314640b2bafb8344da0b7 +folderAsset: yes +timeCreated: 1498426051 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater/Model/UpdaterExtensionModel.cs b/Assets/tinysAPI/Extensions/Updater/Model/UpdaterExtensionModel.cs new file mode 100644 index 0000000..e518101 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/Model/UpdaterExtensionModel.cs @@ -0,0 +1,91 @@ +using System; +using UnityEngine; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace Extensions + { + public class UpdaterExtensionModel : BaseClassModel + { + #region Public Attributes + + // reference of the current tooltip state + public bool currentTooltipState { get { return _currentTooltipState; } } + + public static class TooltipState + { + public static bool show = true; + public static bool hide = false; + } + + #endregion + + #region Private Attributes + + // hidden reference for the current Tooltip state + private bool _currentTooltipState = TooltipState.hide; + + #endregion + + #region Public Functions + + // implementation of validate + public override bool Validate(string notification, UnityEngine.Object DataReference = null) + { + // check notification for validation + if (notification.Equals(BaseClassNotification.POINTERCLICKEVENT)) + { + //TODO + } + else if (notification.Equals(BaseClassNotification.POINTERENTEREVENT)) + { + // set the current tooltip state to show + _currentTooltipState = TooltipState.show; + } + else if (notification.Equals(BaseClassNotification.POINTEREXITEVENT)) + { + // set the current tooltip state to hide + _currentTooltipState = TooltipState.hide; + } + else if (notification.Equals(BaseClassNotification.MOVE)) + { + //TODO + } + else if (notification.Equals(BaseClassNotification.POINTERDOWN)) + { + //TODO + Debug.Log("Start Moving Cube"); + } + else if (notification.Equals(BaseClassNotification.POINTERUP)) + { + //TODO + Debug.Log("Stop Moving Cube"); + } + // because there is no condition in this simple demo, return true + return true; + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + gameObject.GetComponentInParent().RegisterModel(this); + } + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/tinysAPI/Extensions/Updater/Model/UpdaterExtensionModel.cs.meta b/Assets/tinysAPI/Extensions/Updater/Model/UpdaterExtensionModel.cs.meta new file mode 100644 index 0000000..55e0571 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/Model/UpdaterExtensionModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 82da2e4c5e221b740a03451ab1dea6a1 +timeCreated: 1498423477 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater/Presenter.meta b/Assets/tinysAPI/Extensions/Updater/Presenter.meta new file mode 100644 index 0000000..32b8ca0 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/Presenter.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1df17c60d727d5c459096b9e1e7bad3a +folderAsset: yes +timeCreated: 1498426058 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater/Presenter/UpdaterExtensionPresenter.cs b/Assets/tinysAPI/Extensions/Updater/Presenter/UpdaterExtensionPresenter.cs new file mode 100644 index 0000000..b8f28c9 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/Presenter/UpdaterExtensionPresenter.cs @@ -0,0 +1,75 @@ +using EvolutStudio.tinysAPI.BaseClasses; +using EvolutStudio.VRPortfolioWork.Components; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace Extensions + { + public class UpdaterExtensionPresenter : BaseClassPresenter + { + #region Public Attributes + + // Add your public attributes + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + // implementation of notify + override public void Notify(string notification, UnityEngine.Object DataReference = null) + { + if (modulInstance.Model.Validate(notification)) + { + modulInstance.View.FireValidationSucceededEvent(notification); + } + else + { + modulInstance.View.FireValidationFailedEvent(notification); + } + } + + // implementation of init given component + public override void InitComponent(BaseClassComponent component) + { + CopyValues(component); + } + + // implementation of update given component + public override void UpdateComponent(BaseClassComponent component) + { + CopyValues(component); + } + + #endregion + + #region Private Functions + + // private function to copy all values from model to subview + private void CopyValues(BaseClassComponent component) + { + //TODO + } + + #endregion + + #region Unity Events + + // Use this for initialization + void Start() + { + gameObject.GetComponentInParent().RegisterPresenter(this); + } + + #endregion + } + } + } +} \ No newline at end of file diff --git a/Assets/tinysAPI/Extensions/Updater/Presenter/UpdaterExtensionPresenter.cs.meta b/Assets/tinysAPI/Extensions/Updater/Presenter/UpdaterExtensionPresenter.cs.meta new file mode 100644 index 0000000..ada9b28 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/Presenter/UpdaterExtensionPresenter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cad25c168ea838f408801a7dae383321 +timeCreated: 1498423488 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.cs b/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.cs new file mode 100644 index 0000000..212d3c4 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.cs @@ -0,0 +1,51 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace Extensions + { + public class UpdaterExtension : BaseClassExtension + { + #region Public Attributes + + #endregion + + #region Private Attributes + + #endregion + + #region Public Functions + + #endregion + + #region Private Functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Awake() + { + // define the Extension + _extName = "UpdaterExtension"; + _extVersionNumber = "1.0.0"; + _extCategory = "Extension.Update"; + } + + // Use this to regíster the extension in the application instance + void Start() + { + //Application.instance.RegisterExtension(this); + } + + #endregion + } + } + } +} diff --git a/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.cs.meta b/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.cs.meta new file mode 100644 index 0000000..c1e4187 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 50c5ac5432a9e9f43995fe4698824487 +timeCreated: 1498424256 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.prefab b/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.prefab new file mode 100644 index 0000000..691d242 Binary files /dev/null and b/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.prefab differ diff --git a/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.prefab.meta b/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.prefab.meta new file mode 100644 index 0000000..6893271 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/UpdaterExtension.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f29cd88cfe42b734cbcd414fb578fda8 +timeCreated: 1498426032 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater/View.meta b/Assets/tinysAPI/Extensions/Updater/View.meta new file mode 100644 index 0000000..86e7d90 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/View.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b9086aff1195e71448bf638b08ab42e6 +folderAsset: yes +timeCreated: 1498426066 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater/View/Component.meta b/Assets/tinysAPI/Extensions/Updater/View/Component.meta new file mode 100644 index 0000000..8ee3095 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/View/Component.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 202163cea4a4b744d89fe7be89b577df +folderAsset: yes +timeCreated: 1498426074 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Extensions/Updater/View/UpdaterExtensionView.cs b/Assets/tinysAPI/Extensions/Updater/View/UpdaterExtensionView.cs new file mode 100644 index 0000000..4092851 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/View/UpdaterExtensionView.cs @@ -0,0 +1,81 @@ +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace tinysAPI + { + namespace Extensions + { + public class UpdaterExtensionView : BaseClassView + { + #region Public Attributes + + // Add your public attributes + + #endregion + + #region Private Attributes + + // Add your private attributes + + #endregion + + #region Public Functions + + // public event handler function for OnPointerClick + public void OnPointerClick() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERCLICKEVENT); + } + + // public event handler function for OnPointerEnter + public void OnPointerEnter() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERENTEREVENT); + } + + // public event handler function for OnPointerExit + public void OnPointerExit() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTEREXITEVENT); + } + + // public event handler function for OnPointerDown + public void OnPointerDown() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERDOWN); + } + + // public event handler function for OnPointerUp + public void OnPointerUp() + { + modulInstance.Presenter.Notify(BaseClassNotification.POINTERUP); + } + + // public event handler function for OnMove + public void OnMove() + { + modulInstance.Presenter.Notify(BaseClassNotification.MOVE); + } + + #endregion + + #region Private Functions + + // Add your private functions + + #endregion + + #region Unity Events + + // Use this for initialization + void Start() + { + gameObject.GetComponentInParent().RegisterView(this); + } + + #endregion + } + } + } +} diff --git a/Assets/tinysAPI/Extensions/Updater/View/UpdaterExtensionView.cs.meta b/Assets/tinysAPI/Extensions/Updater/View/UpdaterExtensionView.cs.meta new file mode 100644 index 0000000..a0aee12 --- /dev/null +++ b/Assets/tinysAPI/Extensions/Updater/View/UpdaterExtensionView.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b63c8ccabad6bc240a324c719fa5cd76 +timeCreated: 1498423497 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/tinysAPI/Modul.cs b/Assets/tinysAPI/Modul.cs new file mode 100644 index 0000000..526535d --- /dev/null +++ b/Assets/tinysAPI/Modul.cs @@ -0,0 +1,85 @@ +using System.Collections; +using System.Collections.Generic; + +using UnityEngine; + +using EvolutStudio.tinysAPI.BaseClasses; + +namespace EvolutStudio +{ + namespace tinysAPI + { + public class Modul : MonoBehaviour + { + + #region Public Attributes + + // public access references of the MVP. + public BaseClassModel Model { get { return _model; } } + public BaseClassPresenter Presenter { get { return _presenter; } } + public BaseClassView View { get { return _view; } } + + #endregion + + #region Private Attributes + + // private reference of the MVP. + private BaseClassModel _model = null; + private BaseClassPresenter _presenter = null; + private BaseClassView _view = null; + + #endregion + + #region Public Functions + + // public function for setting the model reference + public void RegisterModel(BaseClassModel model) + { + // check if _model is null, else log an error for trying to overwrite the current model + if (_model == null) + { + _model = model; + } + else + { + Debug.LogError(string.Format("Trying to overwrite the current model: {0} with {1}", _model, model)); + } + } + + // public function for setting the presenter reference + public void RegisterPresenter(BaseClassPresenter presenter) + { + // check if _presenter is null, else log an error for trying to overwrite the current presenter + if (_presenter == null) + { + _presenter = presenter; + } + else + { + Debug.LogError(string.Format("Trying to overwrite the current presenter: {0} with {1}", _presenter, presenter)); + } + } + + // public function for setting the view reference + public void RegisterView(BaseClassView view) + { + // check if _view is null, else log an error for trying to overwrite the current view + if (_view == null) + { + _view = view; + } + else + { + Debug.LogError(string.Format("Trying to overwrite the current view: {0} with {1}", _view, view)); + } + } + + #endregion + + #region Private Functions + + #endregion + + } + } +} diff --git a/Assets/tinysAPI/Modul.cs.meta b/Assets/tinysAPI/Modul.cs.meta new file mode 100644 index 0000000..9bdc852 --- /dev/null +++ b/Assets/tinysAPI/Modul.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 694957a5af1f5ec4d8ce95144b9a34ff +timeCreated: 1498305808 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/AudioManager.asset b/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..9f5702f Binary files /dev/null and b/ProjectSettings/AudioManager.asset differ diff --git a/ProjectSettings/ClusterInputManager.asset b/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..2b2644d Binary files /dev/null and b/ProjectSettings/ClusterInputManager.asset differ diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..0f724e1 Binary files /dev/null and b/ProjectSettings/DynamicsManager.asset differ diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..e710286 Binary files /dev/null and b/ProjectSettings/EditorBuildSettings.asset differ diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..7456bea Binary files /dev/null and b/ProjectSettings/EditorSettings.asset differ diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..53048ee Binary files /dev/null and b/ProjectSettings/GraphicsSettings.asset differ diff --git a/ProjectSettings/InputManager.asset b/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..5342fb7 Binary files /dev/null and b/ProjectSettings/InputManager.asset differ diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..a92aa3d Binary files /dev/null and b/ProjectSettings/NavMeshAreas.asset differ diff --git a/ProjectSettings/NetworkManager.asset b/ProjectSettings/NetworkManager.asset new file mode 100644 index 0000000..eef089e Binary files /dev/null and b/ProjectSettings/NetworkManager.asset differ diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..4bb251e Binary files /dev/null and b/ProjectSettings/Physics2DSettings.asset differ diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..70311aa Binary files /dev/null and b/ProjectSettings/ProjectSettings.asset differ diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..735bd8a --- /dev/null +++ b/ProjectSettings/ProjectVersion.txt @@ -0,0 +1 @@ +m_EditorVersion: 5.6.2f1 diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..50e78ad Binary files /dev/null and b/ProjectSettings/QualitySettings.asset differ diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..2c3af94 Binary files /dev/null and b/ProjectSettings/TagManager.asset differ diff --git a/ProjectSettings/TimeManager.asset b/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..0838e4e Binary files /dev/null and b/ProjectSettings/TimeManager.asset differ diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..08a6236 Binary files /dev/null and b/ProjectSettings/UnityConnectSettings.asset differ