diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..66e34c869 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +* text eol=lf +*.png binary +*.jpg binary +*.dll binary +*.swf binary +*.ttf binary \ No newline at end of file diff --git a/.gitignore b/.gitignore index bbf796898..7edb99f59 100644 --- a/.gitignore +++ b/.gitignore @@ -4,88 +4,8 @@ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. +.vs +TouchScript.userprefs +TouchScript.v12.suo -# User-specific files -*.suo -*.user -*.sln.docstates -*.userprefs -*.pidb - -# Build results -[Dd]ebug/ -[Rr]elease/ -*_i.c -*_p.c -*.ilk -*.obj -*.pch -*.pdb -*.mdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.vspscc -.builds - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf - -# Visual Studio profiler -*.psess -*.vsp - -# ReSharper is a .NET coding add-in -_ReSharper* - -# Installshield output folder -[Ee]xpress - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish - -# Others -[Bb]in -[Oo]bj -sql -TestResults -*.Cache -ClientBin -stylecop.* -~$* -*.dbmdl -Generated_Code #added for RIA/Silverlight projects - -# Backup & report files from converting an old project file to a newer -# Visual Studio version. Backup files are not needed, because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML - -/TouchScript/bin/Release/XMLDocs.xml -/Lib/*.dll - -UnityTest/Assets/Plugins/* -UnityTest/Assets/Scripts/Scaleform/* -UnityTest/Assets/TouchScript/Editor/UnityEditor.* -UnityTest/Assets/TouchScript/Editor/UnityEngine.* -UnityTest/Assets/TouchScript/Plugins/UnityEngine.* +TouchScript.unitypackage \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 67ac74cc7..7f6f143d9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ -[submodule "TUIOsharp"] - path = TUIOsharp +[submodule "External/TUIO/TUIOsharp"] + path = External/TUIO/TUIOsharp url = https://github.com/valyard/TUIOsharp.git +[submodule "Modules/Playmaker"] + path = Modules/Playmaker + url = https://github.com/TouchScript/Playmaker.git \ No newline at end of file diff --git a/AssetStore/.gitignore b/AssetStore/.gitignore new file mode 100644 index 000000000..6aa6baf6e --- /dev/null +++ b/AssetStore/.gitignore @@ -0,0 +1,28 @@ +*.DS_Store +.Spotlight-V100 +.Trashes +[Tt]humbs.db + +/Temp/ +/Obj/ +/UnityGenerated/ +/Library/ +/Build*/ + +ExportedObj/ +*.svd +*.userprefs +*.csproj +*.pidb +*.suo +*.sln +*.user +*.unityproj +*.booproj +*.pdb +*.mdb + +_ReSharper* +/Assets/UnityVS* +/.vscode +/Assets/VSCode* \ No newline at end of file diff --git a/AssetStore/Assets/.gitignore b/AssetStore/Assets/.gitignore new file mode 100644 index 000000000..fa636cdd3 --- /dev/null +++ b/AssetStore/Assets/.gitignore @@ -0,0 +1 @@ +TouchScript* \ No newline at end of file diff --git a/AssetStore/Assets/AssetStoreTools.meta b/AssetStore/Assets/AssetStoreTools.meta new file mode 100644 index 000000000..6d740eb7f --- /dev/null +++ b/AssetStore/Assets/AssetStoreTools.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c50b65beb907448d0b75a5971c01986e +folderAsset: yes +timeCreated: 1451025883 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/AssetStore/Assets/AssetStoreTools/Editor.meta b/AssetStore/Assets/AssetStoreTools/Editor.meta new file mode 100644 index 000000000..17cf2aa21 --- /dev/null +++ b/AssetStore/Assets/AssetStoreTools/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bc95530bc4b7a6f4f8f3b0aada0209ae +folderAsset: yes +timeCreated: 1451025883 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreTools.dll b/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreTools.dll new file mode 100644 index 000000000..052cf908e Binary files /dev/null and b/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreTools.dll differ diff --git a/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreTools.dll.meta b/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreTools.dll.meta new file mode 100644 index 000000000..c3b7c6a02 --- /dev/null +++ b/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreTools.dll.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: 46975cd389724d0499db55591d961a35 +timeCreated: 1499691956 +licenseType: Store +PluginImporter: + serializedVersion: 2 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + data: + first: + Any: + second: + enabled: 0 + settings: {} + data: + first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + data: + first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreToolsExtra.dll b/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreToolsExtra.dll new file mode 100644 index 000000000..2b1615cca Binary files /dev/null and b/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreToolsExtra.dll differ diff --git a/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreToolsExtra.dll.meta b/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreToolsExtra.dll.meta new file mode 100644 index 000000000..845630373 --- /dev/null +++ b/AssetStore/Assets/AssetStoreTools/Editor/AssetStoreToolsExtra.dll.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: a4f7ad432f1fed24caa2acbe1ceeef39 +timeCreated: 1499692003 +licenseType: Store +PluginImporter: + serializedVersion: 2 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + data: + first: + Any: + second: + enabled: 0 + settings: {} + data: + first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + data: + first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/AssetStore/Assets/AssetStoreTools/Editor/DroidSansMono.ttf b/AssetStore/Assets/AssetStoreTools/Editor/DroidSansMono.ttf new file mode 100644 index 000000000..6e79dad17 Binary files /dev/null and b/AssetStore/Assets/AssetStoreTools/Editor/DroidSansMono.ttf differ diff --git a/AssetStore/Assets/AssetStoreTools/Editor/DroidSansMono.ttf.meta b/AssetStore/Assets/AssetStoreTools/Editor/DroidSansMono.ttf.meta new file mode 100644 index 000000000..8347e6789 --- /dev/null +++ b/AssetStore/Assets/AssetStoreTools/Editor/DroidSansMono.ttf.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: d54231d61af8b414486b80e17598cce1 +timeCreated: 1499692004 +licenseType: Store +TrueTypeFontImporter: + serializedVersion: 2 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 1 + characterPadding: 0 + includeFontData: 1 + use2xBehaviour: 0 + fontNames: [] + customCharacters: + fontRenderingMode: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/AssetStore/Assets/AssetStoreTools/Editor/icon.png b/AssetStore/Assets/AssetStoreTools/Editor/icon.png new file mode 100644 index 000000000..026961015 Binary files /dev/null and b/AssetStore/Assets/AssetStoreTools/Editor/icon.png differ diff --git a/AssetStore/Assets/AssetStoreTools/Editor/icon.png.meta b/AssetStore/Assets/AssetStoreTools/Editor/icon.png.meta new file mode 100644 index 000000000..642a0457b --- /dev/null +++ b/AssetStore/Assets/AssetStoreTools/Editor/icon.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 7d783a70b51365a49a04d3f369611b99 +timeCreated: 1499692003 +licenseType: Store +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + 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 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/AssetStore/Assets/images.meta b/AssetStore/Assets/images.meta new file mode 100644 index 000000000..6ec19c932 --- /dev/null +++ b/AssetStore/Assets/images.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1d661b1dfa76044b097d4e0f3bec09ea diff --git a/AssetStore/Assets/images/big.png b/AssetStore/Assets/images/big.png new file mode 100644 index 000000000..828044c94 Binary files /dev/null and b/AssetStore/Assets/images/big.png differ diff --git a/AssetStore/Assets/images/big.png.meta b/AssetStore/Assets/images/big.png.meta new file mode 100644 index 000000000..0bf71f266 --- /dev/null +++ b/AssetStore/Assets/images/big.png.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 1b553ed45911542b796394c0a34b4332 +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/AssetStore/Assets/images/icon.png b/AssetStore/Assets/images/icon.png new file mode 100644 index 000000000..0a3295a35 Binary files /dev/null and b/AssetStore/Assets/images/icon.png differ diff --git a/AssetStore/Assets/images/icon.png.meta b/AssetStore/Assets/images/icon.png.meta new file mode 100644 index 000000000..cf3d23f14 --- /dev/null +++ b/AssetStore/Assets/images/icon.png.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 9abce66cb2e444a34a3f384b484ebbdb +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/AssetStore/Assets/images/small.png b/AssetStore/Assets/images/small.png new file mode 100644 index 000000000..8b935c90b Binary files /dev/null and b/AssetStore/Assets/images/small.png differ diff --git a/AssetStore/Assets/images/small.png.meta b/AssetStore/Assets/images/small.png.meta new file mode 100644 index 000000000..a89ee244f --- /dev/null +++ b/AssetStore/Assets/images/small.png.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: ea63c982354474dd8ae0cd42f0aaa3c7 +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/AssetStore/Assets/screens.meta b/AssetStore/Assets/screens.meta new file mode 100644 index 000000000..0941aee3c --- /dev/null +++ b/AssetStore/Assets/screens.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1f5ba85ac42d3454981a225a57c7180e diff --git a/AssetStore/Assets/screens/1.jpg b/AssetStore/Assets/screens/1.jpg new file mode 100644 index 000000000..e7670fd17 Binary files /dev/null and b/AssetStore/Assets/screens/1.jpg differ diff --git a/AssetStore/Assets/screens/1.jpg.meta b/AssetStore/Assets/screens/1.jpg.meta new file mode 100644 index 000000000..148b167c0 --- /dev/null +++ b/AssetStore/Assets/screens/1.jpg.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 2a71fa509aff240bd85f08d764845d80 +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/AssetStore/Assets/screens/2.jpg b/AssetStore/Assets/screens/2.jpg new file mode 100644 index 000000000..59c8aed18 Binary files /dev/null and b/AssetStore/Assets/screens/2.jpg differ diff --git a/AssetStore/Assets/screens/2.jpg.meta b/AssetStore/Assets/screens/2.jpg.meta new file mode 100644 index 000000000..8d793c572 --- /dev/null +++ b/AssetStore/Assets/screens/2.jpg.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: e5458779412b34022885d8aaf62c4671 +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/AssetStore/Assets/screens/3.jpg b/AssetStore/Assets/screens/3.jpg new file mode 100644 index 000000000..382ba5746 Binary files /dev/null and b/AssetStore/Assets/screens/3.jpg differ diff --git a/AssetStore/Assets/screens/3.jpg.meta b/AssetStore/Assets/screens/3.jpg.meta new file mode 100644 index 000000000..6cd39cede --- /dev/null +++ b/AssetStore/Assets/screens/3.jpg.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: a05ed1ef9bb0c4b91b81f6e7a11a8b11 +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/AssetStore/Assets/screens/4.jpg b/AssetStore/Assets/screens/4.jpg new file mode 100644 index 000000000..52e1654ec Binary files /dev/null and b/AssetStore/Assets/screens/4.jpg differ diff --git a/AssetStore/Assets/screens/4.jpg.meta b/AssetStore/Assets/screens/4.jpg.meta new file mode 100644 index 000000000..a771125f3 --- /dev/null +++ b/AssetStore/Assets/screens/4.jpg.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 8f2b5f658574c4642898a52a542603c9 +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/AssetStore/Assets/screens/5.jpg b/AssetStore/Assets/screens/5.jpg new file mode 100644 index 000000000..95e7ce8ef Binary files /dev/null and b/AssetStore/Assets/screens/5.jpg differ diff --git a/AssetStore/Assets/screens/5.jpg.meta b/AssetStore/Assets/screens/5.jpg.meta new file mode 100644 index 000000000..5c2bddbfd --- /dev/null +++ b/AssetStore/Assets/screens/5.jpg.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: cadfd49a422cd4fd79af5b7809390f06 +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/AssetStore/Assets/screens/6.jpg b/AssetStore/Assets/screens/6.jpg new file mode 100644 index 000000000..6add134e9 Binary files /dev/null and b/AssetStore/Assets/screens/6.jpg differ diff --git a/AssetStore/Assets/screens/6.jpg.meta b/AssetStore/Assets/screens/6.jpg.meta new file mode 100644 index 000000000..df48b4589 --- /dev/null +++ b/AssetStore/Assets/screens/6.jpg.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: a353bd6cce1d04278befc871f4c27a48 +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/AssetStore/Assets/screens/7.jpg b/AssetStore/Assets/screens/7.jpg new file mode 100644 index 000000000..9b7e097d9 Binary files /dev/null and b/AssetStore/Assets/screens/7.jpg differ diff --git a/AssetStore/Assets/screens/7.jpg.meta b/AssetStore/Assets/screens/7.jpg.meta new file mode 100644 index 000000000..f7ee8add9 --- /dev/null +++ b/AssetStore/Assets/screens/7.jpg.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 7dc890e3840c24372af2aac85173f8b3 +timeCreated: 1501437402 +licenseType: Pro +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/AssetStore/Assets/screens/small.png b/AssetStore/Assets/screens/small.png new file mode 100644 index 000000000..380751087 Binary files /dev/null and b/AssetStore/Assets/screens/small.png differ diff --git a/AssetStore/Assets/screens/small.png.meta b/AssetStore/Assets/screens/small.png.meta new file mode 100644 index 000000000..ad6bb77e8 --- /dev/null +++ b/AssetStore/Assets/screens/small.png.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 9c546336078d04587812f502e6545587 +TextureImporter: + 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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] diff --git a/Examples/General Examples/ProjectSettings/AudioManager.asset b/AssetStore/ProjectSettings/AudioManager.asset similarity index 100% rename from Examples/General Examples/ProjectSettings/AudioManager.asset rename to AssetStore/ProjectSettings/AudioManager.asset diff --git a/AssetStore/ProjectSettings/ClusterInputManager.asset b/AssetStore/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 000000000..e7886b266 --- /dev/null +++ b/AssetStore/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/Examples/General Examples/ProjectSettings/DynamicsManager.asset b/AssetStore/ProjectSettings/DynamicsManager.asset similarity index 100% rename from Examples/General Examples/ProjectSettings/DynamicsManager.asset rename to AssetStore/ProjectSettings/DynamicsManager.asset diff --git a/Examples/Scaleform Examples/ProjectSettings/EditorBuildSettings.asset b/AssetStore/ProjectSettings/EditorBuildSettings.asset similarity index 100% rename from Examples/Scaleform Examples/ProjectSettings/EditorBuildSettings.asset rename to AssetStore/ProjectSettings/EditorBuildSettings.asset diff --git a/AssetStore/ProjectSettings/EditorSettings.asset b/AssetStore/ProjectSettings/EditorSettings.asset new file mode 100644 index 000000000..f6bcc6a6d --- /dev/null +++ b/AssetStore/ProjectSettings/EditorSettings.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 3 + m_ExternalVersionControlSupport: Visible Meta Files + m_SerializationMode: 2 + m_WebSecurityEmulationEnabled: 0 + m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d + m_DefaultBehaviorMode: 0 + m_SpritePackerMode: 0 diff --git a/AssetStore/ProjectSettings/GraphicsSettings.asset b/AssetStore/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 000000000..5a96ca8a8 --- /dev/null +++ b/AssetStore/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,37 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_ShaderSettings: + useScreenSpaceShadows: 1 + m_BuildTargetShaderSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDirSeparate: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepDynamicDirSeparate: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 diff --git a/Examples/Scaleform Examples/ProjectSettings/InputManager.asset b/AssetStore/ProjectSettings/InputManager.asset similarity index 88% rename from Examples/Scaleform Examples/ProjectSettings/InputManager.asset rename to AssetStore/ProjectSettings/InputManager.asset index 7be9c8b96..c95d27bd2 100644 --- a/Examples/Scaleform Examples/ProjectSettings/InputManager.asset +++ b/AssetStore/ProjectSettings/InputManager.asset @@ -148,38 +148,6 @@ InputManager: type: 1 axis: 2 joyNum: 0 - - serializedVersion: 3 - m_Name: Window Shake X - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0 - sensitivity: .100000001 - snap: 0 - invert: 0 - type: 3 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Window Shake Y - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0 - sensitivity: .100000001 - snap: 0 - invert: 0 - type: 3 - axis: 1 - joyNum: 0 - serializedVersion: 3 m_Name: Horizontal descriptiveName: diff --git a/Examples/General Examples/ProjectSettings/NavMeshLayers.asset b/AssetStore/ProjectSettings/NavMeshAreas.asset similarity index 100% rename from Examples/General Examples/ProjectSettings/NavMeshLayers.asset rename to AssetStore/ProjectSettings/NavMeshAreas.asset diff --git a/Examples/Scaleform Examples/ProjectSettings/NavMeshLayers.asset b/AssetStore/ProjectSettings/NavMeshLayers.asset similarity index 100% rename from Examples/Scaleform Examples/ProjectSettings/NavMeshLayers.asset rename to AssetStore/ProjectSettings/NavMeshLayers.asset diff --git a/Examples/General Examples/ProjectSettings/NetworkManager.asset b/AssetStore/ProjectSettings/NetworkManager.asset similarity index 100% rename from Examples/General Examples/ProjectSettings/NetworkManager.asset rename to AssetStore/ProjectSettings/NetworkManager.asset diff --git a/Examples/General Examples/ProjectSettings/Physics2DSettings.asset b/AssetStore/ProjectSettings/Physics2DSettings.asset similarity index 100% rename from Examples/General Examples/ProjectSettings/Physics2DSettings.asset rename to AssetStore/ProjectSettings/Physics2DSettings.asset diff --git a/AssetStore/ProjectSettings/ProjectSettings.asset b/AssetStore/ProjectSettings/ProjectSettings.asset new file mode 100644 index 000000000..03403af75 --- /dev/null +++ b/AssetStore/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,615 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + productGUID: d1fbc6bd3a3f2df418cc5c74efc952d3 + AndroidProfiler: 0 + defaultScreenOrientation: 0 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: Valentin Simonov + productName: TouchScript Asset Store + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21176471, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_SplashScreenBackgroundLandscape: {fileID: 0} + m_SplashScreenBackgroundPortrait: {fileID: 0} + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + m_MTRendering: 1 + m_MobileMTRendering: 0 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + tizenShowActivityIndicatorOnLoading: -1 + iosAppInBackgroundBehavior: 0 + displayResolutionDialog: 1 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + disableDepthAndStencilBuffers: 0 + defaultIsFullScreen: 1 + defaultIsNativeResolution: 1 + runInBackground: 1 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + graphicsJobs: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 0 + allowFullscreenSwitch: 1 + graphicsJobMode: 0 + macFullscreenMode: 2 + d3d9FullscreenMode: 1 + d3d11FullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + n3dsDisableStereoscopicView: 0 + n3dsEnableSharedListOpt: 1 + n3dsEnableVSync: 0 + ignoreAlphaClear: 0 + xboxOneResolution: 0 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + videoMemoryForVertexBuffers: 0 + psp2PowerMode: 0 + psp2AcquireBGM: 1 + wiiUTVResolution: 0 + wiiUGamePadMSAA: 1 + wiiUSupportsNunchuk: 0 + wiiUSupportsClassicController: 0 + wiiUSupportsBalanceBoard: 0 + wiiUSupportsMotionPlus: 0 + wiiUSupportsProController: 0 + wiiUAllowScreenCapture: 1 + wiiUControllerCount: 0 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 0 + xboxOneEnable7thCore: 0 + vrSettings: + cardboard: + depthFormat: 0 + enableTransitionView: 0 + daydream: + depthFormat: 0 + useSustainedPerformanceMode: 0 + hololens: + depthFormat: 1 + protectGraphicsMemory: 0 + useHDRDisplay: 0 + applicationIdentifier: + Android: com.Company.ProductName + Standalone: unity.Valentin Simonov.TouchScript Asset Store + Tizen: com.Company.ProductName + iOS: com.Company.ProductName + tvOS: com.Company.ProductName + buildNumber: + iOS: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 16 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + VertexChannelCompressionMask: + serializedVersion: 2 + m_Bits: 238 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 6.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 9.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + iPhoneSplashScreen: {fileID: 0} + iPhoneHighResSplashScreen: {fileID: 0} + iPhoneTallHighResSplashScreen: {fileID: 0} + iPhone47inSplashScreen: {fileID: 0} + iPhone55inPortraitSplashScreen: {fileID: 0} + iPhone55inLandscapeSplashScreen: {fileID: 0} + iPadPortraitSplashScreen: {fileID: 0} + iPadHighResPortraitSplashScreen: {fileID: 0} + iPadLandscapeSplashScreen: {fileID: 0} + iPadHighResLandscapeSplashScreen: {fileID: 0} + appleTVSplashScreen: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSLargeIconLayers: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageWideLayers: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 0 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 1 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + appleEnableAutomaticSigning: 0 + AndroidTargetDevice: 0 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidTVCompatibility: 1 + AndroidIsGame: 1 + androidEnableBanner: 1 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + resolutionDialogBanner: {fileID: 0} + m_BuildTargetIcons: + - m_BuildTarget: + m_Icons: + - serializedVersion: 2 + m_Icon: {fileID: 0} + m_Width: 128 + m_Height: 128 + m_BuildTargetBatching: [] + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: WindowsStandaloneSupport + m_APIs: 01000000 + m_Automatic: 0 + - m_BuildTarget: AndroidPlayer + m_APIs: 08000000 + m_Automatic: 0 + m_BuildTargetVRSettings: [] + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + webPlayerTemplate: APPLICATION:Default + m_TemplateCustomTags: {} + wiiUTitleID: 0005000011000000 + wiiUGroupID: 00010000 + wiiUCommonSaveSize: 4096 + wiiUAccountSaveSize: 2048 + wiiUOlvAccessKey: 0 + wiiUTinCode: 0 + wiiUJoinGameId: 0 + wiiUJoinGameModeMask: 0000000000000000 + wiiUCommonBossSize: 0 + wiiUAccountBossSize: 0 + wiiUAddOnUniqueIDs: [] + wiiUMainThreadStackSize: 3072 + wiiULoaderThreadStackSize: 1024 + wiiUSystemHeapSize: 128 + wiiUTVStartupScreen: {fileID: 0} + wiiUGamePadStartupScreen: {fileID: 0} + wiiUDrcBufferDisabled: 0 + wiiUProfilerLibPath: + playModeTestRunnerEnabled: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchTouchScreenUsage: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchDataLossConfirmation: 0 + switchSupportedNpadStyles: 3 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 1 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 120 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 1 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + ps4Passcode: 5xr84P2R391UXaLHbavJvFZGfO47XWS2 + ps4UseDebugIl2cppLibs: 0 + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 3 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + monoEnv: + psp2Splashimage: {fileID: 0} + psp2NPTrophyPackPath: + psp2NPSupportGBMorGJP: 0 + psp2NPAgeRating: 12 + psp2NPTitleDatPath: + psp2NPCommsID: + psp2NPCommunicationsID: + psp2NPCommsPassphrase: + psp2NPCommsSig: + psp2ParamSfxPath: + psp2ManualPath: + psp2LiveAreaGatePath: + psp2LiveAreaBackroundPath: + psp2LiveAreaPath: + psp2LiveAreaTrialPath: + psp2PatchChangeInfoPath: + psp2PatchOriginalPackage: + psp2PackagePassword: qVOw5lxuBEBNue7b9PZS0hoI6pgabi9U + psp2KeystoneFile: + psp2MemoryExpansionMode: 0 + psp2DRMType: 0 + psp2StorageType: 0 + psp2MediaCapacity: 0 + psp2DLCConfigPath: + psp2ThumbnailPath: + psp2BackgroundPath: + psp2SoundPath: + psp2TrophyCommId: + psp2TrophyPackagePath: + psp2PackagedResourcesPath: + psp2SaveDataQuota: 10240 + psp2ParentalLevel: 1 + psp2ShortTitle: Not Set + psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF + psp2Category: 0 + psp2MasterVersion: 01.00 + psp2AppVersion: 01.00 + psp2TVBootMode: 0 + psp2EnterButtonAssignment: 2 + psp2TVDisableEmu: 0 + psp2AllowTwitterDialog: 1 + psp2Upgradable: 0 + psp2HealthWarning: 0 + psp2UseLibLocation: 0 + psp2InfoBarOnStartup: 0 + psp2InfoBarColor: 0 + psp2UseDebugIl2cppLibs: 0 + psmSplashimage: {fileID: 0} + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + spritePackerPolicy: + webGLMemorySize: 256 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 0 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLUseWasm: 0 + webGLCompressionFormat: 1 + scriptingDefineSymbols: {} + platformArchitecture: + iOS: 2 + scriptingBackend: + Android: 0 + Standalone: 0 + WebGL: 1 + iOS: 1 + incrementalIl2cppBuild: + iOS: 0 + additionalIl2CppArgs: + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: _Packages + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: _Packages + wsaImages: {} + metroTileShortName: + metroCommandLineArgsFile: + metroTileShowName: 1 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 1 + metroTileBackgroundColor: {r: 0, g: 0, b: 0, a: 1} + metroSplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + metroCompilationOverrides: 1 + tizenProductDescription: + tizenProductURL: + tizenSigningProfileName: + tizenGPSPermissions: 0 + tizenMicrophonePermissions: 0 + tizenDeploymentTarget: + tizenDeploymentTargetType: -1 + tizenMinOSVersion: 1 + n3dsUseExtSaveData: 0 + n3dsCompressStaticMem: 1 + n3dsExtSaveDataNumber: 0x12345 + n3dsStackSize: 131072 + n3dsTargetPlatform: 2 + n3dsRegion: 7 + n3dsMediaSize: 0 + n3dsLogoStyle: 3 + n3dsTitle: GameName + n3dsProductCode: + n3dsApplicationId: 0xFF3FF + stvDeviceAddress: + stvProductDescription: + stvProductAuthor: + stvProductAuthorEmail: + stvProductLink: + stvProductCategory: 0 + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnableGPUVariability: 0 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + xboxOneScriptCompiler: 0 + vrEditorSettings: + daydream: + daydreamIconForeground: {fileID: 0} + daydreamIconBackground: {fileID: 0} + cloudServicesEnabled: {} + facebookSdkVersion: 7.9.1 + apiCompatibilityLevel: 2 + cloudProjectId: + projectName: + organizationId: + cloudEnabled: 0 + enableNewInputSystem: 0 diff --git a/AssetStore/ProjectSettings/ProjectVersion.txt b/AssetStore/ProjectSettings/ProjectVersion.txt new file mode 100644 index 000000000..cbfba31f0 --- /dev/null +++ b/AssetStore/ProjectSettings/ProjectVersion.txt @@ -0,0 +1 @@ +m_EditorVersion: 5.6.2p4 diff --git a/AssetStore/ProjectSettings/QualitySettings.asset b/AssetStore/ProjectSettings/QualitySettings.asset new file mode 100644 index 000000000..cfd65fa4b --- /dev/null +++ b/AssetStore/ProjectSettings/QualitySettings.asset @@ -0,0 +1,136 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 3 + m_QualitySettings: + - serializedVersion: 2 + name: Fastest + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + blendWeights: 1 + textureQuality: 1 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + vSyncCount: 0 + lodBias: .300000012 + maximumLODLevel: 0 + particleRaycastBudget: 4 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Fast + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + vSyncCount: 0 + lodBias: .400000006 + maximumLODLevel: 0 + particleRaycastBudget: 16 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Simple + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + vSyncCount: 0 + lodBias: .699999988 + maximumLODLevel: 0 + particleRaycastBudget: 64 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Good + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + particleRaycastBudget: 256 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Beautiful + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + vSyncCount: 1 + lodBias: 1.5 + maximumLODLevel: 0 + particleRaycastBudget: 1024 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Fantastic + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + particleRaycastBudget: 4096 + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 2 + BlackBerry: 2 + FlashPlayer: 3 + GLES Emulation: 3 + PS3: 3 + Standalone: 3 + Tizen: 2 + WP8: 3 + Web: 3 + Wii: 3 + Windows Store Apps: 3 + XBOX360: 3 + iPhone: 2 diff --git a/Examples/Scaleform Examples/ProjectSettings/TagManager.asset b/AssetStore/ProjectSettings/TagManager.asset similarity index 89% rename from Examples/Scaleform Examples/ProjectSettings/TagManager.asset rename to AssetStore/ProjectSettings/TagManager.asset index ac1fdfebf..6f869970f 100644 --- a/Examples/Scaleform Examples/ProjectSettings/TagManager.asset +++ b/AssetStore/ProjectSettings/TagManager.asset @@ -36,3 +36,8 @@ TagManager: User Layer 29: User Layer 30: User Layer 31: + m_SortingLayers: + - name: Default + userID: 0 + uniqueID: 0 + locked: 0 diff --git a/Examples/General Examples/ProjectSettings/TimeManager.asset b/AssetStore/ProjectSettings/TimeManager.asset similarity index 100% rename from Examples/General Examples/ProjectSettings/TimeManager.asset rename to AssetStore/ProjectSettings/TimeManager.asset diff --git a/AssetStore/ProjectSettings/UnityConnectSettings.asset b/AssetStore/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 000000000..1cb99bba0 Binary files /dev/null and b/AssetStore/ProjectSettings/UnityConnectSettings.asset differ diff --git a/Build/.gitignore b/Build/.gitignore new file mode 100644 index 000000000..c6baad261 --- /dev/null +++ b/Build/.gitignore @@ -0,0 +1,2 @@ +custom_postbuild.sh +custom_postbuild.bat \ No newline at end of file diff --git a/Build/build_external.sh b/Build/build_external.sh new file mode 100755 index 000000000..9659f1857 --- /dev/null +++ b/Build/build_external.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Calls build scripts for all sub-folders in External folder + +printf "\n\e[1;36mBUILDING EXTERNAL PROJECTS.\e[0;39m\n" + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +EXTERNAL=$(cd "$DIR/../External/" && pwd) + +for i in $(ls -d "$EXTERNAL/"*/); do + FILE="${i%%/}/Build/build.sh" + if [ -f $FILE ]; then + $FILE + fi +done \ No newline at end of file diff --git a/Build/package.sh b/Build/package.sh new file mode 100755 index 000000000..2f339deb8 --- /dev/null +++ b/Build/package.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# 1. Builds external dlls +# 2. Synchronizes modules +# 3. Builds module packages +# 4. Builds TouchScript package + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +ASSETSTORE=$(cd "$DIR/../AssetStore/" && pwd) +SOURCE=$(cd "$DIR/../Source/" && pwd) +MODULES=$(cd "$DIR/../Modules/" && pwd) +UNITYPACKAGE=$(cd "$DIR/../" && pwd)/TouchScript.unitypackage + +$DIR/build_external.sh +$DIR/sync_modules.sh + +rm -rf "$ASSETSTORE/Assets/TouchScript" +rm -f "$ASSETSTORE/Assets/TouchScript.meta" +cp -r "$SOURCE/Assets/TouchScript" "$ASSETSTORE/Assets/" +cp "$SOURCE/Assets/TouchScript.meta" "$ASSETSTORE/Assets/" + +if [ -d "$MODULES" ]; then + for i in $(ls -d "$MODULES/"*/); do + FILE="${i%%/}/Build/package.sh" + if [ -f $FILE ]; then + "$FILE" "$ASSETSTORE/Assets/TouchScript/Modules" + fi + done +fi + +printf "\n\e[1;36mPackaging TouchScript.unitypackage.\e[0;39m\n" + +$DIR/utils/build_package.sh "$ASSETSTORE" "$UNITYPACKAGE" "Assets/TouchScript" \ No newline at end of file diff --git a/Build/sync_modules.sh b/Build/sync_modules.sh new file mode 100755 index 000000000..d1a1b1215 --- /dev/null +++ b/Build/sync_modules.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +MODULES=$(cd "$DIR/../Modules/" && pwd) + +if [ -d "$MODULES" ]; then + for i in $(ls -d "$MODULES/"*/); do + FOLDER="${i%%/}" + "$DIR/utils/sync_module.sh" "$FOLDER" + done +fi \ No newline at end of file diff --git a/Build/utils/build_package.sh b/Build/utils/build_package.sh new file mode 100755 index 000000000..be0c21999 --- /dev/null +++ b/Build/utils/build_package.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# Assumes that Unity is located either in /Applications/Unity/ or c:\Program Files\Unity\. + +if [[ $# -lt 3 ]] ; then + printf "\e[31mUsage: build_package.sh \e[39m\n" + exit 0 +fi + +if [ ! -d "${1}" ]; then + printf "\e[31mError! Folder '${1}' does not exist.\e[39m\n" + exit 0 +fi + +printf "\n\e[32mBuilding a package from project '$1' to '$2'.\e[39m\n" + +LOG="__log.txt" +# ".*" -> .* +TEMP="${3%\"}" +TEMP="${TEMP#\"}" +EXPORTFOLDERS="$TEMP" + +if [ -f "$2" ]; then + rm $2 +fi + +cd $1 + +# Mac +if [ "$(uname)" == "Darwin" ]; then + UNITYPATH="/Applications/Unity/Unity.app/Contents/MacOS/Unity" + if [ ! -f "$UNITYPATH" ]; then + printf "\e[31mCouldn't find Unity at $UNITYPATH!\e[39m\n" + exit 0; + fi + PROJECTFOLDER=$(pwd) + SEPARATOR="/" + +# Windows +elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ] || [ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ]; then + UNITYPATH="/c/Program Files/Unity/Editor/Unity.exe" + if [ ! -f "$UNITYPATH" ]; then + printf "\e[31mCouldn't find Unity at $UNITYPATH!\e[39m\n" + exit 0; + fi + # Windows path + PROJECTFOLDER=$(pwd | sed -e 's/^\/\([a-z]\)/\1:/g' -e 's/\//\\/g') + SEPARATOR="\\" +fi + +LOG="${PROJECTFOLDER}${SEPARATOR}${LOG}" +"$UNITYPATH" -batchmode -logFile $LOG -projectPath "$PROJECTFOLDER" -exportPackage $EXPORTFOLDERS $2 -quit +if [ ! -f $2 ]; then + cat "$LOG" + printf "\e[31mFailed to build $2!\e[39m\n" + rm "$LOG" + exit 0 +fi + +rm "$LOG" \ No newline at end of file diff --git a/Build/utils/build_solution.sh b/Build/utils/build_solution.sh new file mode 100755 index 000000000..4c67fe4c8 --- /dev/null +++ b/Build/utils/build_solution.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Builds a solution on OSX and Windows. +# Assumes that Unity is located either in /Applications/Unity/ or c:\Program Files\Unity\. + +if [[ $# -ne 2 ]] ; then + printf "\e[31mUsage: build_solution.sh \e[39m\n" + exit 0 +fi + +printf "\e[1;33mBuilding ${1} (${2}).\e[0;39m\n" + +# Mac +if [ "$(uname)" == "Darwin" ]; then + UNITYPATH="/Applications/Unity/Unity.app" + if [ ! -d "$UNITYPATH" ]; then + printf "\e[31mCouldn't find Unity at $UNITYPATH!\e[39m\n" + exit 0; + fi + "$UNITYPATH/Contents/Frameworks/MonoBleedingEdge/bin/xbuild" /p:Configuration=Release /clp:ErrorsOnly "${1}" + +# Windows +elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ] || [ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ]; then + /c/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe "${1}" -p:Platform="${2}" -p:Configuration=Release -clp:ErrorsOnly -p:VCTargetsPath="C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140" +fi \ No newline at end of file diff --git a/Build/utils/sync_module.sh b/Build/utils/sync_module.sh new file mode 100755 index 000000000..beb8b845e --- /dev/null +++ b/Build/utils/sync_module.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# 1. Backs up tracked files by git +# 2. Copies everything from Source folder +# 3. Restores backed files + +if [[ $# -eq 0 ]] ; then + printf "\e[31mUsage: sync_module.sh \e[39m\n" + exit 0 +fi + +if [ ! -d "${1}" ]; then + printf "\e[31mError! Folder '${1}' does not exist.\e[39m\n" + exit 0 +fi + +printf "\e[1;33mSynchronizing module ${1##*/}.\e[0;39m\n" + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +cd "$1" +TMP="./___tmp" +rm -rf $TMP +mkdir $TMP +ROOTFOLDER="Assets/TouchScript" +IFS=$'\n' +for f in $(git ls-tree -r --name-only HEAD | grep "^$ROOTFOLDER/") ; do + echo "$f" + FOLDER=$(dirname "$f")/ + FILENAME=$(basename "$f") + TMPFOLDER="$TMP/${FOLDER##$ROOTFOLDER/}" + mkdir -p "$TMPFOLDER" + if (! cp "./$f" "$TMPFOLDER$FILENAME") ; then + printf "\e[31mError copying $f to $TMPFOLDER$FILENAME!\e[39m\n" + exit 0; + fi +done + +rm -rf ./$ROOTFOLDER +if (! cp -rf "$DIR/../../Source/Assets/TouchScript" "./Assets/") ; then + printf "\e[31mError copying TouchScript to ${1}!\e[39m\n" + exit 0; +fi +if (! cp -r "$TMP/." "./$ROOTFOLDER/") ; then + printf "\e[31mError copying temporary files to ${1}!\e[39m\n" + exit 0; +fi +rm -rf $TMP \ No newline at end of file diff --git a/Docs/docs.shfbproj b/Docs/docs.shfbproj index 5f4c7ad41..7832740c9 100644 --- a/Docs/docs.shfbproj +++ b/Docs/docs.shfbproj @@ -8,7 +8,7 @@ AnyCPU 2.0 {43bd481b-8887-4db1-9ede-fbb8c2cd71c1} - 1.9.3.0 + 2015.6.5.0 Documentation @@ -23,15 +23,11 @@ TouchScript ..\..\..\..\Program Files (x86)\Sandcastle\ - - - - - - + + Website - CSharp + C# @@ -39,6 +35,79 @@ TouchScript &lt%3bscript type=&quot%3btext/javascript&quot%3b&gt%3b var _gaq = _gaq || []%3b _gaq.push%28[&#39%3b_setAccount&#39%3b, &#39%3bUA-36698945-2&#39%3b]%29%3b _gaq.push%28[&#39%3b_trackPageview&#39%3b]%29%3b %28function%28%29 {{ var ga = document.createElement%28&#39%3bscript&#39%3b%29%3b ga.type = &#39%3btext/javascript&#39%3b%3b ga.async = true%3b ga.src = %28&#39%3bhttps:&#39%3b == document.location.protocol %3f &#39%3bhttps://ssl&#39%3b : &#39%3bhttp://www&#39%3b%29 + &#39%3b.google-analytics.com/ga.js&#39%3b%3b var s = document.getElementsByTagName%28&#39%3bscript&#39%3b%29[0]%3b s.parentNode.insertBefore%28ga, s%29%3b }}%29%28%29%3b &lt%3b/script&gt%3b + OnlyWarningsAndErrors + False + .NET Framework 3.5 + True + False + False + True + 2 + False + Blank + VS2013 + False + TouchScript — multitouch library for Unity + AboveNamespaces + ExplicitInterfaceImplementations, InheritedMembers, Protected + AutoDocumentCtors, AutoDocumentDispose + TouchScript is a multitouch library for Unity. Inspired by iOS, TouchScript makes handling complex gesture interactions on any touch surface much easier. Please refer to: &lt%3ba href=&quot%3bhttps://github.com/TouchScript/TouchScript&quot%3b&gt%3bhttps://github.com/TouchScript/TouchScript&lt%3b/a&gt%3b. + + + TouchScript. + TouchScript.Behaviors. + TouchScript.Behaviors.Visualizer. + TouchScript.Clusters. + TouchScript.Devices.Display. + + + + + + + + + + + TouchScript.Gestures. + + TouchScript.Gestures.Clustered. + TouchScript.Gestures.UI. + TouchScript.Hit. + TouchScript.InputSources. + TouchScript.InputSources.InputHandlers + TouchScript.Layers. + TouchScript.Utils. + + + + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Docs/howto.txt b/Docs/howto.txt new file mode 100644 index 000000000..36c7f548d --- /dev/null +++ b/Docs/howto.txt @@ -0,0 +1,28 @@ +## How to build Documentation. + +The docs are built using Sandcastle Help File Builder +https://github.com/EWSoftware/SHFB/releases + +First, you need to generate the docs XML file and build the DLL from Visual Studio. + +Right now it is only possible to do on Windows: +1. Open Source.sln in Visual Studio. +2. Open Source.CSharp Properties. + If unable, need to configure VS Tools for Unity so it would allow chaning project properties. + You need to enable the "Access to project properties" option in the "Tools > Options > Tools for Unity > General" section and restart Visual Studio. +3. Enable "XML Documentation File" option in "Build" tab. +4. Save the project and build it from Visual Studio. + +This will generate two files needed by the docs build process: +1. Source/Temp/UnityVS_bin/Debug/Assembly-CSharp.DLL +2. Source/Temp/UnityVS_bin/Debug/Assembly-CSharp.XML + +To build the docs you need to: +1. Download the latest release of SHFB. +2. Run SandcastleBuilderGUI.exe from the folder where you installed SHFB. +3. Delete Docs/Help folder if it exists. +4. Open docs.shfbproj file. +5. Go to Project "Properties > Visibility > Edit API Filter" and uncheck all Examples namespaces and non-TouchScript namespaces which might have gotten there if you have any other code in the Unity project. +6. Save and press "Build the Help File" button. + +Documentation will be saved to Docs/Help folder. \ No newline at end of file diff --git a/Docs/postprocess.sh b/Docs/postprocess.sh deleted file mode 100644 index 572774f68..000000000 --- a/Docs/postprocess.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -cd Help -mv icons ikons -cd html -find . -type f -print0 | xargs -0 sed -i 's/\/icons\//\/ikons\//g' \ No newline at end of file diff --git a/Examples/General Examples/.gitignore b/Examples/General Examples/.gitignore deleted file mode 100644 index b2bc605ec..000000000 --- a/Examples/General Examples/.gitignore +++ /dev/null @@ -1,22 +0,0 @@ -#Unity3d - -*.sln -*.csproj -*.userprefs -*.unityproj -/Library/ -/Temp/ -/Build/ -/iOSBuild/ -*.exe -*.pidb - -Assets/TouchScript/Plugins/*.bat -Assets/TouchScript/Plugins/*.bat.meta -Assets/TouchScript/Plugins/*.pdb.meta -Assets/TouchScript/Plugins/*.mdb.meta -Assets/TouchScript/Plugins/*.xml -Assets/TouchScript/Plugins/*.xml.meta -Assets/TouchScript/Editor/*.pdb.meta -Assets/TouchScript/Editor/*.mdb.meta -Library \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll b/Examples/General Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll deleted file mode 100644 index f2a362ead..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll.meta b/Examples/General Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll.meta deleted file mode 100644 index 0890360a1..000000000 --- a/Examples/General Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll.meta +++ /dev/null @@ -1,6 +0,0 @@ -fileFormatVersion: 2 -guid: aa83d1ea05edf8748af6cae5aed422e4 -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: {} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced.meta deleted file mode 100644 index 1a47f4d64..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 65894c5e990465b4cb4b477a05433490 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Advanced.unity b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Advanced.unity deleted file mode 100644 index 87b45aae3..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Advanced.unity +++ /dev/null @@ -1,3152 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -SceneSettings: - m_ObjectHideFlags: 0 - m_PVSData: - m_QueryMode: 1 - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] - m_OcclusionBakeSettings: - viewCellSize: 1 - bakeMode: 2 - memoryUsage: 10485760 ---- !u!104 &2 -RenderSettings: - m_Fog: 0 - m_FogColor: {r: .5, g: .5, b: .5, a: 1} - m_FogMode: 3 - m_FogDensity: .00999999978 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: .5 - m_FlareStrength: 1 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 0} - m_ObjectHideFlags: 0 ---- !u!127 &3 -LevelGameManager: - m_ObjectHideFlags: 0 ---- !u!157 &4 -LightmapSettings: - m_ObjectHideFlags: 0 - m_LightProbes: {fileID: 0} - m_Lightmaps: [] - m_LightmapsMode: 1 - m_BakedColorSpace: 0 - m_UseDualLightmapsInForward: 0 - m_LightmapEditorSettings: - m_Resolution: 50 - m_LastUsedResolution: 0 - m_TextureWidth: 1024 - m_TextureHeight: 1024 - m_BounceBoost: 1 - m_BounceIntensity: 1 - m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} - m_SkyLightIntensity: 0 - m_Quality: 0 - m_Bounces: 1 - m_FinalGatherRays: 1000 - m_FinalGatherContrastThreshold: .0500000007 - m_FinalGatherGradientThreshold: 0 - m_FinalGatherInterpolationPoints: 15 - m_AOAmount: 0 - m_AOMaxDistance: .100000001 - m_AOContrast: 1 - m_LODSurfaceMappingDistance: 1 - m_Padding: 0 - m_TextureCompression: 0 - m_LockAtlas: 0 ---- !u!196 &5 -NavMeshSettings: - m_ObjectHideFlags: 0 - m_BuildSettings: - agentRadius: .5 - agentHeight: 2 - agentSlope: 45 - agentClimb: .400000006 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - accuratePlacement: 0 - minRegionArea: 2 - widthInaccuracy: 16.666666 - heightInaccuracy: 10 - m_NavMesh: {fileID: 0} ---- !u!1 &3235453 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1604362065} - serializedVersion: 4 - m_Component: - - 4: {fileID: 3235454} - - 33: {fileID: 3235456} - - 65: {fileID: 3235457} - - 23: {fileID: 3235455} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3235454 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 3235453} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: .300000012, z: 1} - m_Children: [] - m_Father: {fileID: 1112631904} ---- !u!23 &3235455 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 3235453} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 973b4dcf4c472f64e93963fdca22de7b, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &3235456 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 3235453} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &3235457 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 3235453} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &55916773 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 55916774} - - 33: {fileID: 55916776} - - 65: {fileID: 55916777} - - 23: {fileID: 55916775} - - 114: {fileID: 55916778} - - 114: {fileID: 55916779} - - 114: {fileID: 55916780} - - 114: {fileID: 55916781} - m_Layer: 0 - m_Name: Big Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &55916774 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 55916773} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4.4000001, y: 4.4000001, z: 4.4000001} - m_Children: [] - m_Father: {fileID: 606920413} ---- !u!23 &55916775 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 55916773} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &55916776 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 55916773} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &55916777 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 55916773} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &55916778 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 55916773} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1142697980, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: - - {fileID: 55916781} - projection: 1 - projectionNormal: {x: 0, y: 0, z: 1} - minPointsDistance: .5 - rotationThreshold: 3 ---- !u!114 &55916779 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 55916773} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 645232165, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - Speed: 10 ---- !u!114 &55916780 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 55916773} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 08227938378b2564d94d19f60f3802ed, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &55916781 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 55916773} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 2105402742, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: - - {fileID: 55916778} - projection: 0 - projectionNormal: {x: 0, y: 1, z: 0} - minPointsDistance: .5 - scalingThreshold: .5 ---- !u!1 &66218871 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 66218872} - - 114: {fileID: 66218875} - - 114: {fileID: 66218873} - - 114: {fileID: 66218874} - - 114: {fileID: 66218876} - - 114: {fileID: 66218877} - m_Layer: 0 - m_Name: TouchScript - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &66218872 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 66218871} - m_LocalRotation: {x: 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} ---- !u!114 &66218873 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 66218871} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -102971247, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &66218874 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 66218871} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1254801617, guid: 53d3dc02e71df20438406b9087fe1e5d, type: 3} - m_Name: - m_EditorClassIdentifier: - TuioPort: 3333 - MovementThreshold: 0 ---- !u!114 &66218875 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 66218871} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -409488130, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - liveDpi: 72 - editorDpi: 72 - layers: - - {fileID: 156856782} - - {fileID: 1573308015} ---- !u!114 &66218876 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 66218871} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 770742126, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &66218877 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 66218871} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1496140412, guid: bb6056dc800c1084da7273cb9f23f5cb, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &97937998 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1604362065} - serializedVersion: 4 - m_Component: - - 4: {fileID: 97937999} - - 33: {fileID: 97938001} - - 65: {fileID: 97938002} - - 23: {fileID: 97938000} - - 114: {fileID: 97938003} - - 114: {fileID: 97938004} - - 114: {fileID: 97938005} - m_Layer: 0 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &97937999 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 97937998} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: .199041367, z: 0} - m_LocalScale: {x: .800000012, y: .100000001, z: .800000012} - m_Children: [] - m_Father: {fileID: 1112631904} ---- !u!23 &97938000 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 97937998} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 96d553cd9540742468ef801da6a9b891, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &97938001 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 97937998} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &97938002 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 97937998} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &97938003 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400004, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 97937998} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f3dd8b3d204ed1d44a19f6eaaf301e0b, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &97938004 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400006, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 97937998} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &97938005 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400008, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 97937998} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!1 &101985063 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 944802614} - serializedVersion: 4 - m_Component: - - 4: {fileID: 101985064} - - 114: {fileID: 101985065} - - 114: {fileID: 101985066} - m_Layer: 0 - m_Name: Side - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &101985064 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 101985063} - m_LocalRotation: {x: 0, y: 0, z: .707106829, w: .707106829} - m_LocalPosition: {x: -3.5, y: 0, z: 0} - m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: - - {fileID: 1296342928} - - {fileID: 1899528384} - m_Father: {fileID: 232315388} ---- !u!114 &101985065 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 101985063} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 540944b755e83e2489d3a2287b9c7fe9, type: 3} - m_Name: - m_EditorClassIdentifier: - Speed: 10 ---- !u!114 &101985066 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 101985063} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1423175855, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - projection: 1 - projectionNormal: {x: 1, y: 0, z: 0} - movementThreshold: .5 ---- !u!1 &156856779 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 156856780} - - 20: {fileID: 156856781} - - 114: {fileID: 156856782} - - 114: {fileID: 156856783} - m_Layer: 0 - m_Name: 2d Camera - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &156856780 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 156856779} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1000, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 707697959} - - {fileID: 1476145102} - - {fileID: 897968758} - - {fileID: 1632866180} - m_Father: {fileID: 0} ---- !u!20 &156856781 -Camera: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 156856779} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 4 - m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 100 - m_Depth: 2 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_HDR: 0 ---- !u!114 &156856782 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 156856779} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1298086939, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - Name: 2d Camera - layerMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &156856783 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 156856779} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b83465fdec27ec4e908d2d54b28cf14, type: 3} - m_Name: - m_EditorClassIdentifier: - Text: 'Advanced example showing many features working together. - - - 1. There are two Camera Layers: 2d and 3d. 2d layer is checked for touch targets - first, it contains RGB boxes. - - 2. RGB boxes have LongPressGestures attached and change Big Cube''s color if pressed - for more than 1 second. - - 3. Big Cube can be scaled and rotated simultaneously because ScaleGesture and - RotateGesture attached to it are "Friendly". - - 4. Small boxes with yellow buttons can be moved but they are constrained to one - axis. - - 5. Yellow buttons trigger Cube''s animation. - - 6. You can rotate the whole structure too because Cubes has RotateGesture attached - to it. - - 7. Finally, there''s a MetaGesture on background which spawned cube trails under - touch points. - - - Use Alt+click to place a second touch point if you don''t have a multitouch device.' ---- !u!1 &232315387 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 232315388} - m_Layer: 0 - m_Name: Sides - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &232315388 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 232315387} - m_LocalRotation: {x: 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: 1285349905} - - {fileID: 1229247222} - - {fileID: 1034254301} - - {fileID: 101985064} - - {fileID: 1112631904} - - {fileID: 1764265870} - m_Father: {fileID: 606920413} ---- !u!1 &253627967 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 548405902} - serializedVersion: 4 - m_Component: - - 4: {fileID: 253627968} - - 33: {fileID: 253627970} - - 65: {fileID: 253627971} - - 23: {fileID: 253627969} - - 114: {fileID: 253627972} - - 114: {fileID: 253627973} - - 114: {fileID: 253627974} - m_Layer: 0 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &253627968 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 253627967} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: .199041367, z: 0} - m_LocalScale: {x: .800000012, y: .100000001, z: .800000012} - m_Children: [] - m_Father: {fileID: 1285349905} ---- !u!23 &253627969 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 253627967} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 96d553cd9540742468ef801da6a9b891, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &253627970 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 253627967} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &253627971 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 253627967} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &253627972 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400004, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 253627967} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f3dd8b3d204ed1d44a19f6eaaf301e0b, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &253627973 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400006, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 253627967} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &253627974 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400008, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 253627967} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!1001 &367641490 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 156856780} - m_Modifications: - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalPosition.x - value: 3.2532959 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalPosition.y - value: -1.22236633 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalPosition.z - value: 5.53505754 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 100000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_Name - value: Button 3 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - m_RootGameObject: {fileID: 897968757} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1001 &548405902 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 232315388} - m_Modifications: - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.y - value: -3.5 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.w - value: -4.37113883e-08 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.x - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.y - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.z - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.x - value: .800000012 - objectReference: {fileID: 0} - - target: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.z - value: .800000012 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_RootGameObject: {fileID: 1285349904} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &557322849 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 557322850} - - 108: {fileID: 557322851} - m_Layer: 0 - m_Name: Point light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &557322850 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 557322849} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: .37795639, y: 1.7158165, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!108 &557322851 -Light: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 557322849} - m_Enabled: 1 - serializedVersion: 3 - m_Type: 2 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 1.86000001 - m_Range: 41.595459 - m_SpotAngle: 30 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_Strength: 1 - m_Bias: .0500000007 - m_Softness: 4 - m_SoftnessFade: 1 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_ActuallyLightmapped: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_Lightmapping: 1 - m_ShadowSamples: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_IndirectIntensity: 1 - m_AreaSize: {x: 1, y: 1} ---- !u!1 &558000481 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 849325055} - serializedVersion: 4 - m_Component: - - 4: {fileID: 558000482} - - 33: {fileID: 558000484} - - 65: {fileID: 558000485} - - 23: {fileID: 558000483} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &558000482 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 558000481} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: .300000012, z: 1} - m_Children: [] - m_Father: {fileID: 1034254301} ---- !u!23 &558000483 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 558000481} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 973b4dcf4c472f64e93963fdca22de7b, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &558000484 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 558000481} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &558000485 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 558000481} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &576368698 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 843277255} - serializedVersion: 4 - m_Component: - - 4: {fileID: 576368699} - - 33: {fileID: 576368701} - - 65: {fileID: 576368702} - - 23: {fileID: 576368700} - - 114: {fileID: 576368703} - - 114: {fileID: 576368704} - - 114: {fileID: 576368705} - m_Layer: 0 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &576368699 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 576368698} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: .199041367, z: 0} - m_LocalScale: {x: .800000012, y: .100000001, z: .800000012} - m_Children: [] - m_Father: {fileID: 1229247222} ---- !u!23 &576368700 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 576368698} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 96d553cd9540742468ef801da6a9b891, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &576368701 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 576368698} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &576368702 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 576368698} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &576368703 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400004, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 576368698} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f3dd8b3d204ed1d44a19f6eaaf301e0b, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &576368704 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400006, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 576368698} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &576368705 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400008, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 576368698} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!1 &606920412 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 606920413} - - 114: {fileID: 606920414} - - 114: {fileID: 606920416} - m_Layer: 0 - m_Name: Cubes - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &606920413 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 606920412} - m_LocalRotation: {x: -.868162811, y: -.359604865, z: -.130885586, w: .315985352} - m_LocalPosition: {x: 7.79086093e-08, y: -1.6736049e-08, z: 3.05470067e-08} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 55916774} - - {fileID: 232315388} - m_Father: {fileID: 0} ---- !u!114 &606920414 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 606920412} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1142697980, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - projection: 0 - projectionNormal: {x: 0, y: 0, z: 0} - minPointsDistance: .5 - rotationThreshold: 3 ---- !u!114 &606920416 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 606920412} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9f69b56c2361c364084e4fae8ee7ff1c, type: 3} - m_Name: - m_EditorClassIdentifier: - AutoRotationSpeed: 10 - RotationSpeed: 20 ---- !u!1 &707697958 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - m_PrefabInternal: {fileID: 1808575625} - serializedVersion: 4 - m_Component: - - 4: {fileID: 707697959} - - 33: {fileID: 707697961} - - 65: {fileID: 707697962} - - 23: {fileID: 707697960} - - 114: {fileID: 707697963} - - 114: {fileID: 707697964} - - 114: {fileID: 707697965} - - 114: {fileID: 707697966} - - 114: {fileID: 707697967} - m_Layer: 0 - m_Name: Button 1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &707697959 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - m_PrefabInternal: {fileID: 1808575625} - m_GameObject: {fileID: 707697958} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.56195068, y: 1.76010084, z: 5.53505802} - m_LocalScale: {x: 1, y: 1, z: .300000012} - m_Children: [] - m_Father: {fileID: 156856780} ---- !u!23 &707697960 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 1808575625} - m_GameObject: {fileID: 707697958} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 59890fa5587af4e4b9aead206a16fb54, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &707697961 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 1808575625} - m_GameObject: {fileID: 707697958} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &707697962 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 1808575625} - m_GameObject: {fileID: 707697958} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &707697963 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 1808575625} - m_GameObject: {fileID: 707697958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 414cd586304ce0c42beb760873cd86a5, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &707697964 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 1808575625} - m_GameObject: {fileID: 707697958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -109791083, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - maxTouches: 2147483647 - timeToPress: 1 - distanceLimit: Infinity ---- !u!114 &707697965 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400004, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 1808575625} - m_GameObject: {fileID: 707697958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &707697966 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400006, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 1808575625} - m_GameObject: {fileID: 707697958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &707697967 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400008, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 1808575625} - m_GameObject: {fileID: 707697958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7ee1d03c8297e124398623233d5145bc, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1001 &820124756 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 156856780} - m_Modifications: - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalPosition.x - value: 2.89587402 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalPosition.y - value: .27744627 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalPosition.z - value: 5.53505802 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 100000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_Name - value: Button 2 - objectReference: {fileID: 0} - - target: {fileID: 2300000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 99d989b915216d749a60ac10784205ac, type: 2} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - m_RootGameObject: {fileID: 1476145101} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1001 &843277255 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 232315388} - m_Modifications: - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.y - value: 3.5 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.x - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.y - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.z - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.x - value: .800000012 - objectReference: {fileID: 0} - - target: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.z - value: .800000012 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_RootGameObject: {fileID: 1229247221} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1001 &849325055 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 232315388} - m_Modifications: - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.z - value: -3.5 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.x - value: -.707106829 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.w - value: .707106829 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_RootGameObject: {fileID: 1034254300} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &897968757 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - m_PrefabInternal: {fileID: 367641490} - serializedVersion: 4 - m_Component: - - 4: {fileID: 897968758} - - 33: {fileID: 897968760} - - 65: {fileID: 897968761} - - 23: {fileID: 897968759} - - 114: {fileID: 897968762} - - 114: {fileID: 897968763} - - 114: {fileID: 897968764} - - 114: {fileID: 897968765} - - 114: {fileID: 897968766} - m_Layer: 0 - m_Name: Button 3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &897968758 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - m_PrefabInternal: {fileID: 367641490} - m_GameObject: {fileID: 897968757} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 3.2532959, y: -1.22236633, z: 5.53505754} - m_LocalScale: {x: 1, y: 1, z: .300000012} - m_Children: [] - m_Father: {fileID: 156856780} ---- !u!23 &897968759 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 367641490} - m_GameObject: {fileID: 897968757} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 45119eeb1a23f7a4290738513066453c, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &897968760 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 367641490} - m_GameObject: {fileID: 897968757} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &897968761 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 367641490} - m_GameObject: {fileID: 897968757} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &897968762 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 367641490} - m_GameObject: {fileID: 897968757} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 414cd586304ce0c42beb760873cd86a5, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &897968763 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 367641490} - m_GameObject: {fileID: 897968757} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -109791083, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - maxTouches: 2147483647 - timeToPress: 1 - distanceLimit: Infinity ---- !u!114 &897968764 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400004, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 367641490} - m_GameObject: {fileID: 897968757} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &897968765 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400006, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 367641490} - m_GameObject: {fileID: 897968757} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &897968766 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400008, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 367641490} - m_GameObject: {fileID: 897968757} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7ee1d03c8297e124398623233d5145bc, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1001 &944802614 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 232315388} - m_Modifications: - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.x - value: -3.5 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.z - value: .707106829 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.w - value: .707106829 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.x - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.y - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.z - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.x - value: .800000012 - objectReference: {fileID: 0} - - target: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalScale.z - value: .800000012 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_RootGameObject: {fileID: 101985063} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &1034254300 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 849325055} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1034254301} - - 114: {fileID: 1034254303} - - 114: {fileID: 1034254302} - m_Layer: 0 - m_Name: Side - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1034254301 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1034254300} - m_LocalRotation: {x: -.707106829, y: 0, z: 0, w: .707106829} - m_LocalPosition: {x: 0, y: 0, z: -3.5} - m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: - - {fileID: 558000482} - - {fileID: 1771078774} - m_Father: {fileID: 232315388} ---- !u!114 &1034254302 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1034254300} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1423175855, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - projection: 1 - projectionNormal: {x: 1, y: 0, z: 0} - movementThreshold: .5 ---- !u!114 &1034254303 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1034254300} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 540944b755e83e2489d3a2287b9c7fe9, type: 3} - m_Name: - m_EditorClassIdentifier: - Speed: 10 ---- !u!1 &1112631903 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1604362065} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1112631904} - - 114: {fileID: 1112631907} - - 114: {fileID: 1112631906} - m_Layer: 0 - m_Name: Side - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1112631904 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 1112631903} - m_LocalRotation: {x: .707106829, y: 0, z: 0, w: .707106829} - m_LocalPosition: {x: 0, y: 0, z: 3.5} - m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: - - {fileID: 3235454} - - {fileID: 97937999} - m_Father: {fileID: 232315388} ---- !u!114 &1112631906 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 1112631903} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1423175855, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - projection: 1 - projectionNormal: {x: 1, y: 0, z: 0} - movementThreshold: .5 ---- !u!114 &1112631907 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1604362065} - m_GameObject: {fileID: 1112631903} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 540944b755e83e2489d3a2287b9c7fe9, type: 3} - m_Name: - m_EditorClassIdentifier: - Speed: 10 ---- !u!1 &1133511946 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1845689468} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1133511947} - - 33: {fileID: 1133511949} - - 65: {fileID: 1133511950} - - 23: {fileID: 1133511948} - - 114: {fileID: 1133511951} - - 114: {fileID: 1133511952} - - 114: {fileID: 1133511953} - m_Layer: 0 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1133511947 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1133511946} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: .199041367, z: 0} - m_LocalScale: {x: .800000012, y: .100000001, z: .800000012} - m_Children: [] - m_Father: {fileID: 1764265870} ---- !u!23 &1133511948 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1133511946} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 96d553cd9540742468ef801da6a9b891, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1133511949 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1133511946} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1133511950 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1133511946} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1133511951 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400004, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1133511946} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f3dd8b3d204ed1d44a19f6eaaf301e0b, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1133511952 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400006, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1133511946} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &1133511953 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400008, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1133511946} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!1 &1229247221 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 843277255} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1229247222} - - 114: {fileID: 1229247223} - - 114: {fileID: 1229247224} - m_Layer: 0 - m_Name: Side - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1229247222 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 1229247221} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 3.5, z: 0} - m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: - - {fileID: 1947692394} - - {fileID: 576368699} - m_Father: {fileID: 232315388} ---- !u!114 &1229247223 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 1229247221} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 540944b755e83e2489d3a2287b9c7fe9, type: 3} - m_Name: - m_EditorClassIdentifier: - Speed: 10 ---- !u!114 &1229247224 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 1229247221} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1423175855, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - projection: 1 - projectionNormal: {x: 1, y: 0, z: 0} - movementThreshold: .5 ---- !u!1 &1285349904 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 548405902} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1285349905} - - 114: {fileID: 1285349907} - - 114: {fileID: 1285349906} - m_Layer: 0 - m_Name: Side - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1285349905 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 1285349904} - m_LocalRotation: {x: 1, y: 0, z: 0, w: -4.37113883e-08} - m_LocalPosition: {x: 0, y: -3.5, z: 0} - m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: - - {fileID: 1765346672} - - {fileID: 253627968} - m_Father: {fileID: 232315388} ---- !u!114 &1285349906 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 1285349904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1423175855, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - projection: 1 - projectionNormal: {x: 1, y: 0, z: 0} - movementThreshold: .5 ---- !u!114 &1285349907 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 1285349904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 540944b755e83e2489d3a2287b9c7fe9, type: 3} - m_Name: - m_EditorClassIdentifier: - Speed: 10 ---- !u!1 &1296342927 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 944802614} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1296342928} - - 33: {fileID: 1296342930} - - 65: {fileID: 1296342931} - - 23: {fileID: 1296342929} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1296342928 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1296342927} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: .300000012, z: 1} - m_Children: [] - m_Father: {fileID: 101985064} ---- !u!23 &1296342929 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1296342927} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 973b4dcf4c472f64e93963fdca22de7b, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1296342930 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1296342927} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1296342931 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1296342927} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &1476145101 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - m_PrefabInternal: {fileID: 820124756} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1476145102} - - 33: {fileID: 1476145104} - - 65: {fileID: 1476145105} - - 23: {fileID: 1476145103} - - 114: {fileID: 1476145106} - - 114: {fileID: 1476145107} - - 114: {fileID: 1476145108} - - 114: {fileID: 1476145109} - - 114: {fileID: 1476145110} - m_Layer: 0 - m_Name: Button 2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1476145102 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - m_PrefabInternal: {fileID: 820124756} - m_GameObject: {fileID: 1476145101} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.89587402, y: .27744627, z: 5.53505802} - m_LocalScale: {x: 1, y: 1, z: .300000012} - m_Children: [] - m_Father: {fileID: 156856780} ---- !u!23 &1476145103 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 820124756} - m_GameObject: {fileID: 1476145101} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 99d989b915216d749a60ac10784205ac, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1476145104 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 820124756} - m_GameObject: {fileID: 1476145101} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1476145105 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 820124756} - m_GameObject: {fileID: 1476145101} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1476145106 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 820124756} - m_GameObject: {fileID: 1476145101} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 414cd586304ce0c42beb760873cd86a5, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1476145107 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 820124756} - m_GameObject: {fileID: 1476145101} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -109791083, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - maxTouches: 2147483647 - timeToPress: 1 - distanceLimit: Infinity ---- !u!114 &1476145108 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400004, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 820124756} - m_GameObject: {fileID: 1476145101} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &1476145109 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400006, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 820124756} - m_GameObject: {fileID: 1476145101} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &1476145110 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400008, guid: 63fe86e02334ebf4b9c777aad49227b3, - type: 2} - m_PrefabInternal: {fileID: 820124756} - m_GameObject: {fileID: 1476145101} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7ee1d03c8297e124398623233d5145bc, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &1486482833 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1845689468} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1486482834} - - 33: {fileID: 1486482836} - - 65: {fileID: 1486482837} - - 23: {fileID: 1486482835} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1486482834 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1486482833} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: .300000012, z: 1} - m_Children: [] - m_Father: {fileID: 1764265870} ---- !u!23 &1486482835 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1486482833} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 973b4dcf4c472f64e93963fdca22de7b, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1486482836 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1486482833} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1486482837 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1486482833} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &1573308009 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1573308010} - - 20: {fileID: 1573308011} - - 92: {fileID: 1573308013} - - 124: {fileID: 1573308014} - - 81: {fileID: 1573308012} - - 114: {fileID: 1573308015} - - 65: {fileID: 1573308016} - - 114: {fileID: 1573308018} - - 114: {fileID: 1573308019} - - 114: {fileID: 1573308017} - m_Layer: 0 - m_Name: 3d Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1573308010 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: .129110336, y: -.384726524, z: -13.1231995} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!20 &1573308011 -Camera: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 20 - field of view: 60 - orthographic: 0 - orthographic size: 100 - m_Depth: 1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_HDR: 0 ---- !u!81 &1573308012 -AudioListener: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_Enabled: 1 ---- !u!92 &1573308013 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_Enabled: 1 ---- !u!124 &1573308014 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_Enabled: 1 ---- !u!114 &1573308015 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1298086939, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - Name: 3d Camera - layerMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!65 &1573308016 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 30.8173771, y: 23.0940094, z: .00999999978} - m_Center: {x: 0, y: 0, z: 20} ---- !u!114 &1573308017 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1457327819, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - Type: 0 ---- !u!114 &1573308018 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1700093535, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &1573308019 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1573308009} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 132708ffd0cc74b3394629a70b1a3308, type: 3} - m_Name: - m_EditorClassIdentifier: - Prefab: {fileID: 100000, guid: eeb5691f829854c7bb6bb3aa67b709dd, type: 2} - SpawnDelay: .0199999996 ---- !u!1001 &1604362065 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 232315388} - m_Modifications: - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.z - value: 3.5 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.x - value: .707106829 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.w - value: .707106829 - objectReference: {fileID: 0} - - target: {fileID: 11400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 11400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_RootGameObject: {fileID: 1112631903} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &1632866179 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1632866180} - - 108: {fileID: 1632866181} - m_Layer: 0 - m_Name: Point light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1632866180 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1632866179} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 2.79078102, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 156856780} ---- !u!108 &1632866181 -Light: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1632866179} - m_Enabled: 1 - serializedVersion: 3 - m_Type: 2 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 7.38999987 - m_Range: 10 - m_SpotAngle: 30 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_Strength: 1 - m_Bias: .0500000007 - m_Softness: 4 - m_SoftnessFade: 1 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_ActuallyLightmapped: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_Lightmapping: 1 - m_ShadowSamples: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_IndirectIntensity: 1 - m_AreaSize: {x: 1, y: 1} ---- !u!1001 &1655233165 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.x - value: 1000 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.w - value: -1.62920685e-07 - objectReference: {fileID: 0} - - target: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_Name - value: Touch Debugger - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_RootGameObject: {fileID: 2052612291} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &1764265869 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1845689468} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1764265870} - - 114: {fileID: 1764265871} - - 114: {fileID: 1764265872} - m_Layer: 0 - m_Name: Side - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1764265870 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1764265869} - m_LocalRotation: {x: 0, y: 0, z: -.707106829, w: .707106829} - m_LocalPosition: {x: 3.5, y: 0, z: 0} - m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: - - {fileID: 1486482834} - - {fileID: 1133511947} - m_Father: {fileID: 232315388} ---- !u!114 &1764265871 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1764265869} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 540944b755e83e2489d3a2287b9c7fe9, type: 3} - m_Name: - m_EditorClassIdentifier: - Speed: 10 ---- !u!114 &1764265872 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 1845689468} - m_GameObject: {fileID: 1764265869} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1423175855, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] - projection: 1 - projectionNormal: {x: 1, y: 0, z: 0} - movementThreshold: .5 ---- !u!1 &1765346671 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 548405902} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1765346672} - - 33: {fileID: 1765346674} - - 65: {fileID: 1765346675} - - 23: {fileID: 1765346673} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1765346672 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 1765346671} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: .300000012, z: 1} - m_Children: [] - m_Father: {fileID: 1285349905} ---- !u!23 &1765346673 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 1765346671} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 973b4dcf4c472f64e93963fdca22de7b, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1765346674 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 1765346671} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1765346675 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 548405902} - m_GameObject: {fileID: 1765346671} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &1771078773 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 849325055} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1771078774} - - 33: {fileID: 1771078776} - - 65: {fileID: 1771078777} - - 23: {fileID: 1771078775} - - 114: {fileID: 1771078778} - - 114: {fileID: 1771078779} - - 114: {fileID: 1771078780} - m_Layer: 0 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1771078774 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1771078773} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: .199041367, z: 0} - m_LocalScale: {x: .800000012, y: .100000001, z: .800000012} - m_Children: [] - m_Father: {fileID: 1034254301} ---- !u!23 &1771078775 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1771078773} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 96d553cd9540742468ef801da6a9b891, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1771078776 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1771078773} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1771078777 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1771078773} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1771078778 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400004, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1771078773} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f3dd8b3d204ed1d44a19f6eaaf301e0b, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1771078779 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400006, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1771078773} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &1771078780 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400008, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 849325055} - m_GameObject: {fileID: 1771078773} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!1001 &1808575625 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 156856780} - m_Modifications: - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalPosition.x - value: 2.56195068 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalPosition.y - value: 1.76010084 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalPosition.z - value: 5.53505802 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 100000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_Name - value: Button 1 - objectReference: {fileID: 0} - - target: {fileID: 2300000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 59890fa5587af4e4b9aead206a16fb54, type: 2} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 63fe86e02334ebf4b9c777aad49227b3, type: 2} - m_RootGameObject: {fileID: 707697958} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1001 &1845689468 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 232315388} - m_Modifications: - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.x - value: 3.5 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.z - value: -.707106829 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 7c93265284251654b939d591a39caf52, type: 2} - propertyPath: m_LocalRotation.w - value: .707106829 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_RootGameObject: {fileID: 1764265869} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &1899528383 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 944802614} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1899528384} - - 33: {fileID: 1899528386} - - 65: {fileID: 1899528387} - - 23: {fileID: 1899528385} - - 114: {fileID: 1899528388} - - 114: {fileID: 1899528389} - - 114: {fileID: 1899528390} - m_Layer: 0 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1899528384 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400002, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1899528383} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: .199041367, z: 0} - m_LocalScale: {x: .800000012, y: .100000001, z: .800000012} - m_Children: [] - m_Father: {fileID: 101985064} ---- !u!23 &1899528385 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1899528383} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 96d553cd9540742468ef801da6a9b891, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1899528386 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1899528383} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1899528387 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1899528383} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1899528388 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400004, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1899528383} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f3dd8b3d204ed1d44a19f6eaaf301e0b, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1899528389 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400006, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1899528383} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &1899528390 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400008, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 944802614} - m_GameObject: {fileID: 1899528383} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!1 &1947692393 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 843277255} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1947692394} - - 33: {fileID: 1947692396} - - 65: {fileID: 1947692397} - - 23: {fileID: 1947692395} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1947692394 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400004, guid: 7c93265284251654b939d591a39caf52, type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 1947692393} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: .300000012, z: 1} - m_Children: [] - m_Father: {fileID: 1229247222} ---- !u!23 &1947692395 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 1947692393} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 973b4dcf4c472f64e93963fdca22de7b, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1947692396 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 1947692393} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1947692397 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500002, guid: 7c93265284251654b939d591a39caf52, - type: 2} - m_PrefabInternal: {fileID: 843277255} - m_GameObject: {fileID: 1947692393} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &2052612291 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 1655233165} - serializedVersion: 4 - m_Component: - - 4: {fileID: 2052612292} - - 114: {fileID: 2052612297} - m_Layer: 0 - m_Name: Touch Debugger - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2052612292 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 1655233165} - m_GameObject: {fileID: 2052612291} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -1.62920685e-07} - m_LocalPosition: {x: 1000, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!114 &2052612297 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, - type: 2} - m_PrefabInternal: {fileID: 1655233165} - m_GameObject: {fileID: 2052612291} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 923107734, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - TouchTexture: {fileID: 2800000, guid: f5c75ed8c6bed0f489d9003aa739aff7, type: 3} - FontColor: {r: 0, g: .958217144, b: 1, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Advanced.unity.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Advanced.unity.meta deleted file mode 100644 index 7f09e2d31..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Advanced.unity.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 6eea50128a8e7e648b6c264bd7c37188 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials.meta deleted file mode 100644 index 27325375d..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5c03ec8719e15724e828a8c02e901c6a diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 1.mat b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 1.mat deleted file mode 100644 index 069975712..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 1.mat +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Button 1 - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - 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} - m_Floats: {} - m_Colors: - data: - first: - name: _Color - second: {r: 1, g: 0, b: 0, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 1.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 1.mat.meta deleted file mode 100644 index 5e4513e6f..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 1.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 59890fa5587af4e4b9aead206a16fb54 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 2.mat b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 2.mat deleted file mode 100644 index 71b91c251..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 2.mat +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Button 2 - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - 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} - m_Floats: {} - m_Colors: - data: - first: - name: _Color - second: {r: .164179087, g: 1, b: 0, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 2.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 2.mat.meta deleted file mode 100644 index 56c929214..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 2.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 99d989b915216d749a60ac10784205ac diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 3.mat b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 3.mat deleted file mode 100644 index ca487a973..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 3.mat +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Button 3 - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - 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} - m_Floats: {} - m_Colors: - data: - first: - name: _Color - second: {r: .0298504829, g: 0, b: 1, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 3.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 3.mat.meta deleted file mode 100644 index fe6d853b0..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Button 3.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 45119eeb1a23f7a4290738513066453c diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side Button.mat b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side Button.mat deleted file mode 100644 index e39f545ab..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side Button.mat +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Side Button - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - 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} - m_Floats: {} - m_Colors: - data: - first: - name: _Color - second: {r: 1, g: .940298557, b: 0, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side Button.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side Button.mat.meta deleted file mode 100644 index efe6582c1..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side Button.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 96d553cd9540742468ef801da6a9b891 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side.mat b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side.mat deleted file mode 100644 index f29af85ff..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side.mat +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Side - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - 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} - m_Floats: {} - m_Colors: - data: - first: - name: _Color - second: {r: .744755268, g: .744755268, b: .744755268, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side.mat.meta deleted file mode 100644 index 21be1dc12..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Materials/Side.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 973b4dcf4c472f64e93963fdca22de7b diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs.meta deleted file mode 100644 index 8a62855f4..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5017a7d374f3c5c499d0b7a8b44a6a42 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/BackgroundCube.prefab b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/BackgroundCube.prefab deleted file mode 100644 index e081c92b5..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/BackgroundCube.prefab +++ /dev/null @@ -1,81 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &100000 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 3 - m_Component: - - 4: {fileID: 400000} - - 33: {fileID: 3300000} - - 23: {fileID: 2300000} - - 114: {fileID: 11400000} - m_Layer: 0 - m_Name: BackgroundCube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &400000 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: .5, y: .5, z: .5} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_Children: [] - m_Father: {fileID: 0} ---- !u!23 &2300000 -Renderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 10302, guid: 0000000000000000e000000000000000, type: 0} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &3300000 -MeshFilter: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ae84100d09e33446bae8dbd34b53259c, type: 1} - m_Name: - DecaySpeed: 1 - RotationSpeed: 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: 100000} - m_IsPrefabParent: 1 - m_IsExploded: 1 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/BackgroundCube.prefab.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/BackgroundCube.prefab.meta deleted file mode 100644 index a21489edd..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/BackgroundCube.prefab.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: eeb5691f829854c7bb6bb3aa67b709dd diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Button.prefab b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Button.prefab deleted file mode 100644 index e77bd2ff7..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Button.prefab +++ /dev/null @@ -1,141 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &100000 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 3 - m_Component: - - 4: {fileID: 400000} - - 33: {fileID: 3300000} - - 65: {fileID: 6500000} - - 23: {fileID: 2300000} - - 114: {fileID: 11400000} - - 114: {fileID: 11400002} - - 114: {fileID: 11400004} - - 114: {fileID: 11400006} - - 114: {fileID: 11400008} - m_Layer: 0 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &400000 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -2.04587555, z: 5.53505754} - m_LocalScale: {x: 1, y: 1, z: .300000012} - m_Children: [] - m_Father: {fileID: 0} ---- !u!23 &2300000 -Renderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 45119eeb1a23f7a4290738513066453c, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &3300000 -MeshFilter: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &6500000 -BoxCollider: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 414cd586304ce0c42beb760873cd86a5, type: 1} - m_Name: ---- !u!114 &11400002 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -109791083, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - WillRecognizeWith: [] - MaxTouches: 2147483647 - TimeToPress: 1 - DistanceLimit: Infinity ---- !u!114 &11400004 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - WillRecognizeWith: [] ---- !u!114 &11400006 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - WillRecognizeWith: [] ---- !u!114 &11400008 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7ee1d03c8297e124398623233d5145bc, type: 1} - m_Name: ---- !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: 100000} - m_IsPrefabParent: 1 - m_IsExploded: 1 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Button.prefab.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Button.prefab.meta deleted file mode 100644 index 46158264d..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Button.prefab.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 63fe86e02334ebf4b9c777aad49227b3 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Side.prefab b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Side.prefab deleted file mode 100644 index ca5698fd3..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Side.prefab +++ /dev/null @@ -1,236 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &100000 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 3 - m_Component: - - 4: {fileID: 400000} - - 114: {fileID: 11400000} - - 114: {fileID: 11400002} - m_Layer: 0 - m_Name: Side - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!1 &100002 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 3 - m_Component: - - 4: {fileID: 400002} - - 33: {fileID: 3300000} - - 65: {fileID: 6500000} - - 23: {fileID: 2300000} - - 114: {fileID: 11400004} - - 114: {fileID: 11400006} - - 114: {fileID: 11400008} - m_Layer: 0 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!1 &100004 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 3 - m_Component: - - 4: {fileID: 400004} - - 33: {fileID: 3300002} - - 65: {fileID: 6500002} - - 23: {fileID: 2300002} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &400000 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_LocalRotation: {x: -.707106829, y: 0, z: 0, w: .707106829} - m_LocalPosition: {x: 0, y: 0, z: -3.5} - m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: - - {fileID: 400004} - - {fileID: 400002} - m_Father: {fileID: 0} ---- !u!4 &400002 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100002} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: .199041367, z: 0} - m_LocalScale: {x: .800000012, y: .100000001, z: .800000012} - m_Children: [] - m_Father: {fileID: 400000} ---- !u!4 &400004 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100004} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: .300000012, z: 1} - m_Children: [] - m_Father: {fileID: 400000} ---- !u!23 &2300000 -Renderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100002} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 96d553cd9540742468ef801da6a9b891, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!23 &2300002 -Renderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100004} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 973b4dcf4c472f64e93963fdca22de7b, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &3300000 -MeshFilter: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100002} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!33 &3300002 -MeshFilter: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100004} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &6500000 -BoxCollider: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100002} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!65 &6500002 -BoxCollider: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100004} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 540944b755e83e2489d3a2287b9c7fe9, type: 1} - m_Name: - Speed: 10 ---- !u!114 &11400002 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1423175855, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - WillRecognizeWith: [] - projection: 1 - projectionNormal: {x: 1, y: 0, z: 0} - movementThreshold: .5 ---- !u!114 &11400004 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100002} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f3dd8b3d204ed1d44a19f6eaaf301e0b, type: 1} - m_Name: ---- !u!114 &11400006 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100002} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 438491968, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - WillRecognizeWith: [] ---- !u!114 &11400008 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100002} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - WillRecognizeWith: [] ---- !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: 100000} - m_IsPrefabParent: 1 - m_IsExploded: 1 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Side.prefab.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Side.prefab.meta deleted file mode 100644 index b2a840c94..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Prefabs/Side.prefab.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 7c93265284251654b939d591a39caf52 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts.meta deleted file mode 100644 index e4d214d5c..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 8471189a43a1544448a2a35a265492a5 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundCube.cs b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundCube.cs deleted file mode 100644 index 3c3076b55..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundCube.cs +++ /dev/null @@ -1,29 +0,0 @@ -using UnityEngine; - -public class Advanced_BackgroundCube : MonoBehaviour -{ - public float DecaySpeed = 1f; - public float RotationSpeed = 1f; - - private float startScale; - private Vector3 axis; - - private void Start() - { - startScale = transform.localScale.x; - axis = Quaternion.Euler(Random.Range(0, 359), Random.Range(0, 359), Random.Range(0, 359))*Vector3.forward; - } - - private void Update() - { - var scale = transform.localScale.x - DecaySpeed*Time.deltaTime*startScale; - if (scale <= 0) - { - Destroy(gameObject); - return; - } - - transform.localScale = Vector3.one*scale; - transform.Rotate(axis, RotationSpeed*360*Time.deltaTime); - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundCube.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundCube.cs.meta deleted file mode 100644 index c5386d9e0..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundCube.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: ae84100d09e33446bae8dbd34b53259c -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundSpawner.cs b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundSpawner.cs deleted file mode 100644 index 5b3ee3d1f..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundSpawner.cs +++ /dev/null @@ -1,49 +0,0 @@ -using TouchScript.Gestures.Simple; -using UnityEngine; -using System.Collections; -using TouchScript.Gestures; - -[RequireComponent(typeof(MetaGesture))] -public class Advanced_BackgroundSpawner : MonoBehaviour -{ - public GameObject Prefab; - public float SpawnDelay = 0.05f; - - private bool shouldSpawn = false; - private Vector3 spawnCoords; - - private void Start() - { - var metaGesture = GetComponent(); - metaGesture.TouchPointBegan += OnTouchEvent; - metaGesture.TouchPointMoved += OnTouchEvent; - metaGesture.TouchPointEnded += OnTouchEnded; - metaGesture.TouchPointCancelled += OnTouchEnded; - - StartCoroutine(doSpawn()); - } - - private IEnumerator doSpawn() - { - while (true) - { - if (shouldSpawn) - { - var instance = Instantiate(Prefab, spawnCoords, Quaternion.identity) as GameObject; - instance.transform.parent = transform; - } - yield return new WaitForSeconds(SpawnDelay); - } - } - - private void OnTouchEvent(object sender, MetaGestureEventArgs e) - { - shouldSpawn = true; - spawnCoords = camera.ScreenToWorldPoint(new Vector3(e.TouchPoint.Position.x, e.TouchPoint.Position.y, camera.farClipPlane)); - } - - private void OnTouchEnded(object sender, MetaGestureEventArgs e) - { - if (((MetaGesture)sender).State == Gesture.GestureState.Ended) shouldSpawn = false; - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundSpawner.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundSpawner.cs.meta deleted file mode 100644 index b294689ab..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BackgroundSpawner.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 132708ffd0cc74b3394629a70b1a3308 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BigCube.cs b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BigCube.cs deleted file mode 100644 index b936a261a..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BigCube.cs +++ /dev/null @@ -1,19 +0,0 @@ -using UnityEngine; - -public class Advanced_BigCube : MonoBehaviour -{ - private Vector3 startScale; - - private void Start() - { - startScale = transform.localScale; - } - - private void Update() - { - if (transform.localScale.sqrMagnitude > startScale.sqrMagnitude) - { - transform.localScale = startScale; - } - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BigCube.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BigCube.cs.meta deleted file mode 100644 index fcf2ccb23..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_BigCube.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 08227938378b2564d94d19f60f3802ed -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Bump.cs b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Bump.cs deleted file mode 100644 index d258f0d4c..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Bump.cs +++ /dev/null @@ -1,28 +0,0 @@ -using TouchScript.Events; -using TouchScript.Gestures; -using UnityEngine; - -public class Advanced_Bump : MonoBehaviour -{ - private Vector3 startScale; - - private void Start() - { - if (GetComponent() != null) GetComponent().StateChanged += onPress; - if (GetComponent() != null) GetComponent().StateChanged += onRelease; - - startScale = transform.localScale; - } - - private void onRelease(object sender, GestureStateChangeEventArgs gestureStateChangeEventArgs) - { - if (gestureStateChangeEventArgs.State == Gesture.GestureState.Recognized) - transform.localScale = startScale; - } - - private void onPress(object sender, GestureStateChangeEventArgs gestureStateChangeEventArgs) - { - if (gestureStateChangeEventArgs.State == Gesture.GestureState.Recognized) - transform.localScale = startScale*.7f; - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Bump.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Bump.cs.meta deleted file mode 100644 index 86ea33b85..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Bump.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 7ee1d03c8297e124398623233d5145bc -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Button.cs b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Button.cs deleted file mode 100644 index 1146f32d8..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Button.cs +++ /dev/null @@ -1,17 +0,0 @@ -using TouchScript.Events; -using TouchScript.Gestures; -using UnityEngine; - -public class Advanced_Button : MonoBehaviour -{ - private void Start() - { - if (GetComponent() != null) GetComponent().StateChanged += onPress; - } - - private void onPress(object sender, GestureStateChangeEventArgs gestureStateChangeEventArgs) - { - if (gestureStateChangeEventArgs.State == Gesture.GestureState.Recognized) - GameObject.Find("Big Cube").renderer.material.color = renderer.material.color; - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Button.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Button.cs.meta deleted file mode 100644 index 9d517a5ea..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Button.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 414cd586304ce0c42beb760873cd86a5 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Cubes.cs b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Cubes.cs deleted file mode 100644 index 7e17958aa..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Cubes.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using TouchScript.Events; -using TouchScript.Gestures; -using UnityEngine; - -public class Advanced_Cubes : MonoBehaviour -{ - private enum CubesState - { - Idle, - Rotating - } - - public float AutoRotationSpeed = 10f; - public float RotationSpeed = 20f; - - private CubesState State; - private Quaternion targetRotation; - - public void Rotate(Vector3 axis) - { - if (State != CubesState.Idle) return; - - State = CubesState.Rotating; - targetRotation = Quaternion.AngleAxis(90, axis)*transform.localRotation; - } - - private void Start() - { - targetRotation = transform.localRotation; - - GetComponent().StateChanged += onRotateStateChanged; - } - - private void Update() - { - if (State == CubesState.Rotating) - { - var fraction = AutoRotationSpeed*Time.deltaTime; - transform.localRotation = Quaternion.Slerp(transform.localRotation, targetRotation, fraction); - if (Quaternion.Angle(transform.localRotation, targetRotation) < .1) - { - transform.localRotation = targetRotation; - State = CubesState.Idle; - } - } else - { - var fraction = RotationSpeed*Time.deltaTime; - transform.localRotation = Quaternion.Slerp(transform.localRotation, targetRotation, fraction); - } - } - - private void onRotateStateChanged(object sender, GestureStateChangeEventArgs e) - { - if (State != CubesState.Idle) return; - switch (e.State) - { - case Gesture.GestureState.Began: - case Gesture.GestureState.Changed: - var gesture = (RotateGesture)sender; - - if (Math.Abs(gesture.LocalDeltaRotation) > 0.01) - { - targetRotation = Quaternion.AngleAxis(gesture.LocalDeltaRotation, gesture.WorldTransformPlane.normal)*targetRotation; - } - break; - } - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Cubes.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Cubes.cs.meta deleted file mode 100644 index bfd366a8c..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Cubes.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 9f69b56c2361c364084e4fae8ee7ff1c -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Side.cs b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Side.cs deleted file mode 100644 index aa976c1bd..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Side.cs +++ /dev/null @@ -1,41 +0,0 @@ -using TouchScript.Events; -using TouchScript.Gestures; -using UnityEngine; - -public class Advanced_Side : MonoBehaviour -{ - public float Speed = 10f; - - private Vector3 startPosition; - private Vector3 targetPosition; - - private void Start() - { - startPosition = targetPosition = transform.localPosition; - GetComponent().StateChanged += OnStateChanged; - } - - private void Update() - { - var fraction = Speed*Time.deltaTime; - transform.localPosition = Vector3.Lerp(transform.localPosition, targetPosition, fraction); - } - - private void OnStateChanged(object sender, GestureStateChangeEventArgs e) - { - switch (e.State) - { - case Gesture.GestureState.Began: - case Gesture.GestureState.Changed: - var target = sender as PanGesture; - Debug.DrawRay(transform.position, target.WorldTransformPlane.normal); - Debug.DrawRay(transform.position, target.WorldDeltaPosition.normalized); - - var local = new Vector3(0, transform.InverseTransformDirection(target.WorldDeltaPosition).y, 0); - targetPosition += transform.parent.InverseTransformDirection(transform.TransformDirection(local)); - - if (transform.InverseTransformDirection(transform.parent.TransformDirection(targetPosition - startPosition)).y < 0) targetPosition = startPosition; - break; - } - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Side.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Side.cs.meta deleted file mode 100644 index 213ca4298..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_Side.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 540944b755e83e2489d3a2287b9c7fe9 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_SideButton.cs b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_SideButton.cs deleted file mode 100644 index dd86377c2..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_SideButton.cs +++ /dev/null @@ -1,34 +0,0 @@ -using TouchScript.Events; -using TouchScript.Gestures; -using UnityEngine; - -public class Advanced_SideButton : MonoBehaviour -{ - private float startY; - - private void Start() - { - startY = transform.localPosition.y; - - if (GetComponent() != null) GetComponent().StateChanged += onPress; - if (GetComponent() != null) GetComponent().StateChanged += onRelease; - } - - private void onRelease(object sender, GestureStateChangeEventArgs gestureStateChangeEventArgs) - { - if (gestureStateChangeEventArgs.State == Gesture.GestureState.Recognized) - { - transform.localPosition = Vector3.up*startY; - var cubes = GameObject.Find("Cubes").GetComponent(); - cubes.Rotate(transform.up); - } - } - - private void onPress(object sender, GestureStateChangeEventArgs gestureStateChangeEventArgs) - { - if (gestureStateChangeEventArgs.State == Gesture.GestureState.Recognized) - { - transform.localPosition = Vector3.up*(startY - .08f); - } - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_SideButton.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_SideButton.cs.meta deleted file mode 100644 index d370ae9ff..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Advanced/Scripts/Advanced_SideButton.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f3dd8b3d204ed1d44a19f6eaaf301e0b -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D.meta deleted file mode 100644 index 3f56e436a..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: 38d0950827085e041b10e30b6989ac13 -folderAsset: yes -DefaultImporter: - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Basic 2D.unity b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Basic 2D.unity deleted file mode 100644 index 30350dc01..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Basic 2D.unity +++ /dev/null @@ -1,938 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -SceneSettings: - m_ObjectHideFlags: 0 - m_PVSData: - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: .25 - backfaceThreshold: 100 ---- !u!104 &2 -RenderSettings: - m_Fog: 0 - m_FogColor: {r: .5, g: .5, b: .5, a: 1} - m_FogMode: 3 - m_FogDensity: .00999999978 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: .5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 0} - m_ObjectHideFlags: 0 ---- !u!127 &3 -LevelGameManager: - m_ObjectHideFlags: 0 ---- !u!157 &4 -LightmapSettings: - m_ObjectHideFlags: 0 - m_LightProbes: {fileID: 0} - m_Lightmaps: [] - m_LightmapsMode: 1 - m_BakedColorSpace: 0 - m_UseDualLightmapsInForward: 0 - m_LightmapEditorSettings: - m_Resolution: 50 - m_LastUsedResolution: 0 - m_TextureWidth: 1024 - m_TextureHeight: 1024 - m_BounceBoost: 1 - m_BounceIntensity: 1 - m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} - m_SkyLightIntensity: 0 - m_Quality: 0 - m_Bounces: 1 - m_FinalGatherRays: 1000 - m_FinalGatherContrastThreshold: .0500000007 - m_FinalGatherGradientThreshold: 0 - m_FinalGatherInterpolationPoints: 15 - m_AOAmount: 0 - m_AOMaxDistance: .100000001 - m_AOContrast: 1 - m_LODSurfaceMappingDistance: 1 - m_Padding: 0 - m_TextureCompression: 0 - m_LockAtlas: 0 ---- !u!196 &5 -NavMeshSettings: - m_ObjectHideFlags: 0 - m_BuildSettings: - agentRadius: .5 - agentHeight: 2 - agentSlope: 45 - agentClimb: .400000006 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - accuratePlacement: 0 - minRegionArea: 2 - widthInaccuracy: 16.666666 - heightInaccuracy: 10 - m_NavMesh: {fileID: 0} ---- !u!1 &154815399 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 154815402} - - 114: {fileID: 154815401} - - 114: {fileID: 154815400} - - 114: {fileID: 154815405} - - 114: {fileID: 154815404} - - 114: {fileID: 154815403} - m_Layer: 0 - m_Name: TouchScript - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &154815400 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 154815399} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 490251640, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &154815401 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 154815399} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -409488130, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - liveDpi: 72 - editorDpi: 72 - layers: - - {fileID: 0} ---- !u!4 &154815402 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 154815399} - m_LocalRotation: {x: 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} ---- !u!114 &154815403 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 154815399} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 770742126, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &154815404 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 154815399} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1254801617, guid: 53d3dc02e71df20438406b9087fe1e5d, type: 3} - m_Name: - m_EditorClassIdentifier: - TuioPort: 3333 - MovementThreshold: 0 ---- !u!114 &154815405 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 154815399} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -102971247, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &402488199 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 1134769065} - serializedVersion: 4 - m_Component: - - 4: {fileID: 402488201} - - 114: {fileID: 402488200} - m_Layer: 0 - m_Name: Touch Debugger - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &402488200 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, - type: 2} - m_PrefabInternal: {fileID: 1134769065} - m_GameObject: {fileID: 402488199} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 923107734, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - TouchTexture: {fileID: 2800000, guid: f5c75ed8c6bed0f489d9003aa739aff7, type: 3} - FontColor: {r: 0, g: .958217144, b: 1, a: 1} ---- !u!4 &402488201 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 1134769065} - m_GameObject: {fileID: 402488199} - m_LocalRotation: {x: 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} ---- !u!1 &657881213 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 657881218} - - 61: {fileID: 657881217} - - 61: {fileID: 657881216} - - 61: {fileID: 657881215} - - 61: {fileID: 657881214} - m_Layer: 0 - m_Name: Wall - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!61 &657881214 -BoxCollider2D: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 657881213} - m_Enabled: 1 - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Size: {x: 14.4799995, y: 1} - m_Center: {x: 0, y: -5.30999994} ---- !u!61 &657881215 -BoxCollider2D: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 657881213} - m_Enabled: 1 - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Size: {x: 14.4799995, y: 1} - m_Center: {x: 0, y: 5.30999994} ---- !u!61 &657881216 -BoxCollider2D: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 657881213} - m_Enabled: 1 - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Size: {x: 1, y: 11.04} - m_Center: {x: -6.75, y: 0} ---- !u!61 &657881217 -BoxCollider2D: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 657881213} - m_Enabled: 1 - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Size: {x: 1, y: 11.04} - m_Center: {x: 6.75, y: 0} ---- !u!4 &657881218 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 657881213} - m_LocalRotation: {x: 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: 1832126250} ---- !u!1 &914883884 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - m_PrefabInternal: {fileID: 1077202744} - serializedVersion: 4 - m_Component: - - 4: {fileID: 914883888} - - 212: {fileID: 914883887} - - 60: {fileID: 914883886} - - 50: {fileID: 914883885} - - 114: {fileID: 914883891} - - 114: {fileID: 914883892} - m_Layer: 0 - m_Name: Logo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!50 &914883885 -Rigidbody2D: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 5000000, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1077202744} - m_GameObject: {fileID: 914883884} - m_Mass: 10 - m_LinearDrag: 1 - m_AngularDrag: .0500000007 - m_GravityScale: 0 - m_FixedAngle: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_SleepingMode: 1 - m_CollisionDetection: 0 ---- !u!60 &914883886 -PolygonCollider2D: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6000000, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1077202744} - m_GameObject: {fileID: 914883884} - m_Enabled: 1 - m_Material: {fileID: 6200000, guid: c44da7ae6bf8daf4caef70e69dfb5379, type: 2} - m_IsTrigger: 0 - m_Poly: - m_Paths: - - - {x: 1.77999997, y: -1.22000003} - - {x: 1.83999991, y: -.98999995} - - {x: 1.90999997, y: -.729999959} - - {x: 1.93999994, y: -.620000005} - - {x: 1.9799999, y: -.469999999} - - {x: 2, y: -.409999996} - - {x: 2, y: -.329999983} - - {x: 2, y: -.329999983} - - {x: 1.95999992, y: -.25} - - {x: 1.88999999, y: -.129999995} - - {x: 1.75999999, y: .0899999961} - - {x: 1.81999993, y: .170000002} - - {x: 2, y: .479999989} - - {x: 2, y: .539999962} - - {x: 2, y: .550000012} - - {x: 1.99000001, y: .589999974} - - {x: 1.88, y: 1} - - {x: 1.83999991, y: 1.14999998} - - {x: 1.75999999, y: 1.44999993} - - {x: 1.69999993, y: 1.67999995} - - {x: 1.67999995, y: 1.75} - - {x: 1.61000001, y: 2.00999999} - - {x: 1.56999993, y: 2.15999985} - - {x: 1.55999994, y: 2.18000007} - - {x: 1.50999999, y: 2.18000007} - - {x: 1.43999994, y: 2.16999984} - - {x: 1.29999995, y: 2.11999989} - - {x: 1.14999998, y: 2.07999992} - - {x: .889999986, y: 2.00999999} - - {x: .75999999, y: 1.9799999} - - {x: .589999974, y: 1.92999995} - - {x: .459999979, y: 1.89999998} - - {x: .140000001, y: 1.80999994} - - {x: .109999999, y: 1.79999995} - - {x: -.00999999978, y: 1.76999998} - - {x: -.119999997, y: 1.74000001} - - {x: -.159999996, y: 1.67999995} - - {x: -.299999982, y: 1.42999995} - - {x: -.370000005, y: 1.29999995} - - {x: -.829999983, y: 1.29999995} - - {x: -.849999964, y: 1.30999994} - - {x: -.879999995, y: 1.29999995} - - {x: -1.48000002, y: .689999998} - - {x: -1.5, y: .680000007} - - {x: -1.70999992, y: .479999989} - - {x: -1.9799999, y: .189999998} - - {x: -2.04999995, y: .119999997} - - {x: -2.06999993, y: .0899999961} - - {x: -2.06999993, y: .0700000003} - - {x: -.859999955, y: -1.13999999} - - {x: -.359999985, y: -1.13999999} - - {x: -.310000002, y: -1.25} - - {x: -.269999981, y: -1.31999993} - - {x: -.189999998, y: -1.45999992} - - {x: -.140000001, y: -1.54999995} - - {x: -.099999994, y: -1.57999992} - - {x: .0399999991, y: -1.62} - - {x: .149999991, y: -1.64999998} - - {x: .299999982, y: -1.68999994} - - {x: .479999989, y: -1.74000001} - - {x: .779999971, y: -1.81999993} - - {x: .899999976, y: -1.8499999} - - {x: 1.00999999, y: -1.88} - - {x: 1.23000002, y: -1.93999994} - - {x: 1.51999998, y: -2.01999998} - - {x: 1.55999994, y: -2.01999998} - - {x: 1.58999991, y: -1.96999991} - - {x: 1.5999999, y: -1.88} - - {x: 1.74000001, y: -1.37} ---- !u!212 &914883887 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 21200000, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1077202744} - m_GameObject: {fileID: 914883884} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_SortingLayerID: 0 - m_Sprite: {fileID: 21300000, guid: 06183c9e584cc714c9b11eb30bf7aa6e, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} ---- !u!4 &914883888 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - m_PrefabInternal: {fileID: 1077202744} - m_GameObject: {fileID: 914883884} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -2.26030254, y: 0, z: 0} - m_LocalScale: {x: .800000012, y: .800000012, z: .800000012} - m_Children: [] - m_Father: {fileID: 1832126250} ---- !u!114 &914883891 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1077202744} - m_GameObject: {fileID: 914883884} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 60a86740f5d91c945ba2c6b021000589, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &914883892 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1077202744} - m_GameObject: {fileID: 914883884} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!1001 &1077202744 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1832126250} - m_Modifications: - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalPosition.x - value: -2.26030254 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5000000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_Mass - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 5000000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LinearDrag - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalScale.x - value: .800000012 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalScale.y - value: .800000012 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalScale.z - value: .800000012 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - m_RootGameObject: {fileID: 914883884} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1001 &1134769065 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_RootGameObject: {fileID: 402488199} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1001 &1488053232 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1832126250} - m_Modifications: - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalPosition.x - value: 2.034266 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalPosition.y - value: 2.38418579e-07 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5000000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_Mass - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 5000000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LinearDrag - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalScale.x - value: .800000012 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalScale.y - value: .800000012 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - propertyPath: m_LocalScale.z - value: .800000012 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - m_RootGameObject: {fileID: 2052080705} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &1696624849 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1696624855} - - 20: {fileID: 1696624854} - - 92: {fileID: 1696624853} - - 124: {fileID: 1696624852} - - 81: {fileID: 1696624851} - - 114: {fileID: 1696624850} - - 114: {fileID: 1696624856} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1696624850 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1696624849} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 902259921, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - Name: Main Camera - layerMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!81 &1696624851 -AudioListener: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1696624849} - m_Enabled: 1 ---- !u!124 &1696624852 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1696624849} - m_Enabled: 1 ---- !u!92 &1696624853 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1696624849} - m_Enabled: 1 ---- !u!20 &1696624854 -Camera: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1696624849} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: .602941155, g: .602941155, b: .602941155, a: .0196078438} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 1000 - field of view: 60 - orthographic: 1 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_HDR: 0 - m_OcclusionCulling: 1 ---- !u!4 &1696624855 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1696624849} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -100} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!114 &1696624856 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1696624849} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b83465fdec27ec4e908d2d54b28cf14, type: 3} - m_Name: - m_EditorClassIdentifier: - Text: 'A basic 2D example. - - - Tap on a Unity logo to break it into 3 smaller logos.' ---- !u!1 &1832126249 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1832126250} - m_Layer: 0 - m_Name: Scene - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1832126250 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1832126249} - m_LocalRotation: {x: 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: 914883888} - - {fileID: 2052080711} - - {fileID: 657881218} - m_Father: {fileID: 0} ---- !u!1 &2052080705 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - m_PrefabInternal: {fileID: 1488053232} - serializedVersion: 4 - m_Component: - - 4: {fileID: 2052080711} - - 212: {fileID: 2052080710} - - 60: {fileID: 2052080709} - - 50: {fileID: 2052080708} - - 114: {fileID: 2052080707} - - 114: {fileID: 2052080706} - m_Layer: 0 - m_Name: Logo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &2052080706 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1488053232} - m_GameObject: {fileID: 2052080705} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!114 &2052080707 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1488053232} - m_GameObject: {fileID: 2052080705} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 60a86740f5d91c945ba2c6b021000589, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!50 &2052080708 -Rigidbody2D: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 5000000, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1488053232} - m_GameObject: {fileID: 2052080705} - m_Mass: 10 - m_LinearDrag: 1 - m_AngularDrag: .0500000007 - m_GravityScale: 0 - m_FixedAngle: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_SleepingMode: 1 - m_CollisionDetection: 0 ---- !u!60 &2052080709 -PolygonCollider2D: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6000000, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1488053232} - m_GameObject: {fileID: 2052080705} - m_Enabled: 1 - m_Material: {fileID: 6200000, guid: c44da7ae6bf8daf4caef70e69dfb5379, type: 2} - m_IsTrigger: 0 - m_Poly: - m_Paths: - - - {x: 1.77999997, y: -1.22000003} - - {x: 1.83999991, y: -.98999995} - - {x: 1.90999997, y: -.729999959} - - {x: 1.93999994, y: -.620000005} - - {x: 1.9799999, y: -.469999999} - - {x: 2, y: -.409999996} - - {x: 2, y: -.329999983} - - {x: 2, y: -.329999983} - - {x: 1.95999992, y: -.25} - - {x: 1.88999999, y: -.129999995} - - {x: 1.75999999, y: .0899999961} - - {x: 1.81999993, y: .170000002} - - {x: 2, y: .479999989} - - {x: 2, y: .539999962} - - {x: 2, y: .550000012} - - {x: 1.99000001, y: .589999974} - - {x: 1.88, y: 1} - - {x: 1.83999991, y: 1.14999998} - - {x: 1.75999999, y: 1.44999993} - - {x: 1.69999993, y: 1.67999995} - - {x: 1.67999995, y: 1.75} - - {x: 1.61000001, y: 2.00999999} - - {x: 1.56999993, y: 2.15999985} - - {x: 1.55999994, y: 2.18000007} - - {x: 1.50999999, y: 2.18000007} - - {x: 1.43999994, y: 2.16999984} - - {x: 1.29999995, y: 2.11999989} - - {x: 1.14999998, y: 2.07999992} - - {x: .889999986, y: 2.00999999} - - {x: .75999999, y: 1.9799999} - - {x: .589999974, y: 1.92999995} - - {x: .459999979, y: 1.89999998} - - {x: .140000001, y: 1.80999994} - - {x: .109999999, y: 1.79999995} - - {x: -.00999999978, y: 1.76999998} - - {x: -.119999997, y: 1.74000001} - - {x: -.159999996, y: 1.67999995} - - {x: -.299999982, y: 1.42999995} - - {x: -.370000005, y: 1.29999995} - - {x: -.829999983, y: 1.29999995} - - {x: -.849999964, y: 1.30999994} - - {x: -.879999995, y: 1.29999995} - - {x: -1.48000002, y: .689999998} - - {x: -1.5, y: .680000007} - - {x: -1.70999992, y: .479999989} - - {x: -1.9799999, y: .189999998} - - {x: -2.04999995, y: .119999997} - - {x: -2.06999993, y: .0899999961} - - {x: -2.06999993, y: .0700000003} - - {x: -.859999955, y: -1.13999999} - - {x: -.359999985, y: -1.13999999} - - {x: -.310000002, y: -1.25} - - {x: -.269999981, y: -1.31999993} - - {x: -.189999998, y: -1.45999992} - - {x: -.140000001, y: -1.54999995} - - {x: -.099999994, y: -1.57999992} - - {x: .0399999991, y: -1.62} - - {x: .149999991, y: -1.64999998} - - {x: .299999982, y: -1.68999994} - - {x: .479999989, y: -1.74000001} - - {x: .779999971, y: -1.81999993} - - {x: .899999976, y: -1.8499999} - - {x: 1.00999999, y: -1.88} - - {x: 1.23000002, y: -1.93999994} - - {x: 1.51999998, y: -2.01999998} - - {x: 1.55999994, y: -2.01999998} - - {x: 1.58999991, y: -1.96999991} - - {x: 1.5999999, y: -1.88} - - {x: 1.74000001, y: -1.37} ---- !u!212 &2052080710 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 21200000, guid: 1cb01469e80fe4f4780dc71e06de9da0, - type: 2} - m_PrefabInternal: {fileID: 1488053232} - m_GameObject: {fileID: 2052080705} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_SortingLayerID: 0 - m_Sprite: {fileID: 21300000, guid: 06183c9e584cc714c9b11eb30bf7aa6e, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} ---- !u!4 &2052080711 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 1cb01469e80fe4f4780dc71e06de9da0, type: 2} - m_PrefabInternal: {fileID: 1488053232} - m_GameObject: {fileID: 2052080705} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.034266, y: 2.38418579e-07, z: 0} - m_LocalScale: {x: .800000012, y: .800000012, z: .800000012} - m_Children: [] - m_Father: {fileID: 1832126250} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Basic 2D.unity.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Basic 2D.unity.meta deleted file mode 100644 index 9d891386d..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Basic 2D.unity.meta +++ /dev/null @@ -1,4 +0,0 @@ -fileFormatVersion: 2 -guid: 0ae547bf6cb199a479b3ece3b78d207e -DefaultImporter: - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Materials.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Materials.meta deleted file mode 100644 index 382248187..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Materials.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: 9cddf8012d3399b4a90324bb900db0aa -folderAsset: yes -DefaultImporter: - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Materials/Logo.physicsMaterial2D b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Materials/Logo.physicsMaterial2D deleted file mode 100644 index 027ae07be..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Materials/Logo.physicsMaterial2D +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!62 &6200000 -PhysicsMaterial2D: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Logo - friction: .400000006 - bounciness: 1 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Materials/Logo.physicsMaterial2D.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Materials/Logo.physicsMaterial2D.meta deleted file mode 100644 index 10ffa8cf6..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Materials/Logo.physicsMaterial2D.meta +++ /dev/null @@ -1,4 +0,0 @@ -fileFormatVersion: 2 -guid: c44da7ae6bf8daf4caef70e69dfb5379 -NativeFormatImporter: - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Prefabs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Prefabs.meta deleted file mode 100644 index 9c71996ad..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Prefabs.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: fdf68c3cdc7429140a83bdf2f6ce5935 -folderAsset: yes -DefaultImporter: - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Prefabs/Logo.prefab b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Prefabs/Logo.prefab deleted file mode 100644 index 1ddad9b7c..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Prefabs/Logo.prefab +++ /dev/null @@ -1,186 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &100000 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 4 - m_Component: - - 4: {fileID: 400000} - - 212: {fileID: 21200000} - - 60: {fileID: 6000000} - - 50: {fileID: 5000000} - - 114: {fileID: 11400000} - - 114: {fileID: 11400002} - m_Layer: 0 - m_Name: Logo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &400000 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.20000005, y: 1.20000005, z: 1.20000005} - m_Children: [] - m_Father: {fileID: 0} ---- !u!50 &5000000 -Rigidbody2D: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Mass: 1 - m_LinearDrag: 0 - m_AngularDrag: .0500000007 - m_GravityScale: 0 - m_FixedAngle: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_SleepingMode: 1 - m_CollisionDetection: 0 ---- !u!60 &6000000 -PolygonCollider2D: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_Material: {fileID: 6200000, guid: c44da7ae6bf8daf4caef70e69dfb5379, type: 2} - m_IsTrigger: 0 - m_Poly: - m_Paths: - - - {x: 1.77999997, y: -1.22000003} - - {x: 1.83999991, y: -.98999995} - - {x: 1.90999997, y: -.729999959} - - {x: 1.93999994, y: -.620000005} - - {x: 1.9799999, y: -.469999999} - - {x: 2, y: -.409999996} - - {x: 2, y: -.329999983} - - {x: 2, y: -.329999983} - - {x: 1.95999992, y: -.25} - - {x: 1.88999999, y: -.129999995} - - {x: 1.75999999, y: .0899999961} - - {x: 1.81999993, y: .170000002} - - {x: 2, y: .479999989} - - {x: 2, y: .539999962} - - {x: 2, y: .550000012} - - {x: 1.99000001, y: .589999974} - - {x: 1.88, y: 1} - - {x: 1.83999991, y: 1.14999998} - - {x: 1.75999999, y: 1.44999993} - - {x: 1.69999993, y: 1.67999995} - - {x: 1.67999995, y: 1.75} - - {x: 1.61000001, y: 2.00999999} - - {x: 1.56999993, y: 2.15999985} - - {x: 1.55999994, y: 2.18000007} - - {x: 1.50999999, y: 2.18000007} - - {x: 1.43999994, y: 2.16999984} - - {x: 1.29999995, y: 2.11999989} - - {x: 1.14999998, y: 2.07999992} - - {x: .889999986, y: 2.00999999} - - {x: .75999999, y: 1.9799999} - - {x: .589999974, y: 1.92999995} - - {x: .459999979, y: 1.89999998} - - {x: .140000001, y: 1.80999994} - - {x: .109999999, y: 1.79999995} - - {x: -.00999999978, y: 1.76999998} - - {x: -.119999997, y: 1.74000001} - - {x: -.159999996, y: 1.67999995} - - {x: -.299999982, y: 1.42999995} - - {x: -.370000005, y: 1.29999995} - - {x: -.829999983, y: 1.29999995} - - {x: -.849999964, y: 1.30999994} - - {x: -.879999995, y: 1.29999995} - - {x: -1.48000002, y: .689999998} - - {x: -1.5, y: .680000007} - - {x: -1.70999992, y: .479999989} - - {x: -1.9799999, y: .189999998} - - {x: -2.04999995, y: .119999997} - - {x: -2.06999993, y: .0899999961} - - {x: -2.06999993, y: .0700000003} - - {x: -.859999955, y: -1.13999999} - - {x: -.359999985, y: -1.13999999} - - {x: -.310000002, y: -1.25} - - {x: -.269999981, y: -1.31999993} - - {x: -.189999998, y: -1.45999992} - - {x: -.140000001, y: -1.54999995} - - {x: -.099999994, y: -1.57999992} - - {x: .0399999991, y: -1.62} - - {x: .149999991, y: -1.64999998} - - {x: .299999982, y: -1.68999994} - - {x: .479999989, y: -1.74000001} - - {x: .779999971, y: -1.81999993} - - {x: .899999976, y: -1.8499999} - - {x: 1.00999999, y: -1.88} - - {x: 1.23000002, y: -1.93999994} - - {x: 1.51999998, y: -2.01999998} - - {x: 1.55999994, y: -2.01999998} - - {x: 1.58999991, y: -1.96999991} - - {x: 1.5999999, y: -1.88} - - {x: 1.74000001, y: -1.37} ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 60a86740f5d91c945ba2c6b021000589, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &11400002 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - friendlyGestures: [] ---- !u!212 &21200000 -SpriteRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_SortingLayerID: 0 - m_Sprite: {fileID: 21300000, guid: 06183c9e584cc714c9b11eb30bf7aa6e, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 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: 100000} - m_IsPrefabParent: 1 - m_IsExploded: 1 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Prefabs/Logo.prefab.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Prefabs/Logo.prefab.meta deleted file mode 100644 index ed67ecad5..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Prefabs/Logo.prefab.meta +++ /dev/null @@ -1,4 +0,0 @@ -fileFormatVersion: 2 -guid: 1cb01469e80fe4f4780dc71e06de9da0 -NativeFormatImporter: - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Scripts.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Scripts.meta deleted file mode 100644 index 8845bf753..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Scripts.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: f183cd6054b99a14680611e5e24d94b7 -folderAsset: yes -DefaultImporter: - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Scripts/Basic2dExample_Logo.cs b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Scripts/Basic2dExample_Logo.cs deleted file mode 100644 index 1d91e8db5..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Scripts/Basic2dExample_Logo.cs +++ /dev/null @@ -1,39 +0,0 @@ -using TouchScript.Gestures; -using UnityEngine; - -public class Basic2dExample_Logo : MonoBehaviour { - - void Start () - { - GetComponent().StateChanged += (sender, args) => - { - switch (args.State) - { - case Gesture.GestureState.Recognized: - for (var i = 0; i < 3; i++) - { - var angle = Quaternion.Euler(0, 0, 360/3*i); - var rb = createCopy(transform.localPosition + angle*Vector3.right*transform.localScale.x*1.2f); - rb.mass = GetComponent().mass/3; - rb.AddForce(angle * Vector2.right * 5000); - } - Destroy(gameObject); - break; - } - }; - } - - private Rigidbody2D createCopy(Vector3 position) - { - var obj = Instantiate(gameObject) as GameObject; - obj.name = "Logo"; - var t = obj.transform; - t.parent = transform.parent; - t.position = position; - t.eulerAngles = new Vector3(0, 0, Random.Range(0, 360)); - t.localScale = Vector3.one*transform.localScale.x*.6f; - return obj.GetComponent(); - } - - -} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Scripts/Basic2dExample_Logo.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Scripts/Basic2dExample_Logo.cs.meta deleted file mode 100644 index 25949bd75..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Scripts/Basic2dExample_Logo.cs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 60a86740f5d91c945ba2c6b021000589 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Textures.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Textures.meta deleted file mode 100644 index 8b46f6b24..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Textures.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: a55cc3c004915bc4bb5d445cd5b6b26f -folderAsset: yes -DefaultImporter: - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Textures/Unity_Logo.png b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Textures/Unity_Logo.png deleted file mode 100644 index 07c36ea0a..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Textures/Unity_Logo.png and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Textures/Unity_Logo.png.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Textures/Unity_Logo.png.meta deleted file mode 100644 index aa6040fef..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic 2D/Textures/Unity_Logo.png.meta +++ /dev/null @@ -1,45 +0,0 @@ -fileFormatVersion: 2 -guid: 06183c9e584cc714c9b11eb30bf7aa6e -TextureImporter: - 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: .25 - normalMapFilter: 0 - isReadable: 0 - grayScaleToAlpha: 0 - generateCubemap: 0 - seamlessCubemap: 0 - textureFormat: -1 - maxTextureSize: 1024 - 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: .5, y: .5} - spritePixelsToUnits: 100 - alphaIsTransparency: 1 - textureType: 8 - buildTargetSettings: [] - spriteSheet: - sprites: [] - spritePackingTag: - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic.meta deleted file mode 100644 index 82601f931..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: bffc146523edc1b418f8bcc57a7b118e diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Basic.unity b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Basic.unity deleted file mode 100644 index 1896dbbcb..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Basic.unity +++ /dev/null @@ -1,644 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -Scene: - m_ObjectHideFlags: 0 - m_PVSData: - m_QueryMode: 1 - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] - m_OcclusionBakeSettings: - viewCellSize: 1 - bakeMode: 2 - memoryUsage: 10485760 ---- !u!104 &2 -RenderSettings: - m_Fog: 0 - m_FogColor: {r: .5, g: .5, b: .5, a: 1} - m_FogMode: 3 - m_FogDensity: .00999999978 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: .5 - m_FlareStrength: 1 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 0} - m_ObjectHideFlags: 0 ---- !u!127 &3 -GameManager: - m_ObjectHideFlags: 0 ---- !u!157 &4 -LightmapSettings: - m_ObjectHideFlags: 0 - m_LightProbes: {fileID: 0} - m_Lightmaps: [] - m_LightmapsMode: 1 - m_BakedColorSpace: 0 - m_UseDualLightmapsInForward: 0 - m_LightmapEditorSettings: - m_Resolution: 50 - m_LastUsedResolution: 0 - m_TextureWidth: 1024 - m_TextureHeight: 1024 - m_BounceBoost: 1 - m_BounceIntensity: 1 - m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} - m_SkyLightIntensity: 0 - m_Quality: 0 - m_Bounces: 1 - m_FinalGatherRays: 1000 - m_FinalGatherContrastThreshold: .0500000007 - m_FinalGatherGradientThreshold: 0 - m_FinalGatherInterpolationPoints: 15 - m_AOAmount: 0 - m_AOMaxDistance: .100000001 - m_AOContrast: 1 - m_LODSurfaceMappingDistance: 1 - m_Padding: 0 - m_TextureCompression: 0 - m_LockAtlas: 0 ---- !u!196 &5 -NavMeshSettings: - m_ObjectHideFlags: 0 - m_BuildSettings: - agentRadius: .5 - agentHeight: 2 - agentSlope: 45 - agentClimb: .400000006 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - accuratePlacement: 0 - minRegionArea: 2 - widthInaccuracy: 16.666666 - heightInaccuracy: 10 - m_NavMesh: {fileID: 0} ---- !u!1 &33682315 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - m_PrefabInternal: {fileID: 1174230159} - serializedVersion: 3 - m_Component: - - 4: {fileID: 33682316} - - 33: {fileID: 33682318} - - 65: {fileID: 33682319} - - 23: {fileID: 33682317} - - 54: {fileID: 33682320} - - 114: {fileID: 33682321} - - 114: {fileID: 33682322} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &33682316 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - m_PrefabInternal: {fileID: 1174230159} - m_GameObject: {fileID: 33682315} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.36665177, y: 3, z: -7.5788517} - m_LocalScale: {x: 5, y: 5, z: 5} - m_Children: [] - m_Father: {fileID: 865625385} ---- !u!23 &33682317 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 55e9425c4b7a442528aa45f550c7099c, - type: 2} - m_PrefabInternal: {fileID: 1174230159} - m_GameObject: {fileID: 33682315} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: ccb62f5f22698400e98624a85e3b33dd, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &33682318 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 55e9425c4b7a442528aa45f550c7099c, - type: 2} - m_PrefabInternal: {fileID: 1174230159} - m_GameObject: {fileID: 33682315} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &33682319 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: 55e9425c4b7a442528aa45f550c7099c, - type: 2} - m_PrefabInternal: {fileID: 1174230159} - m_GameObject: {fileID: 33682315} - m_Material: {fileID: 13400000, guid: a86d1545c5d364090bc1954092b8c436, type: 2} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!54 &33682320 -Rigidbody: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 5400000, guid: 55e9425c4b7a442528aa45f550c7099c, - type: 2} - m_PrefabInternal: {fileID: 1174230159} - m_GameObject: {fileID: 33682315} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: .0500000007 - m_UseGravity: 1 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!114 &33682321 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400002, guid: 55e9425c4b7a442528aa45f550c7099c, - type: 2} - m_PrefabInternal: {fileID: 1174230159} - m_GameObject: {fileID: 33682315} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1235405773, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - friendlyGestures: [] - timeLimit: Infinity - distanceLimit: Infinity - combineTouchPointsInterval: .300000012 ---- !u!114 &33682322 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: 55e9425c4b7a442528aa45f550c7099c, - type: 2} - m_PrefabInternal: {fileID: 1174230159} - m_GameObject: {fileID: 33682315} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b0349092c4c1d4c9f95dad6c7db0c3cb, type: 1} - m_Name: - CubePrefab: {fileID: 33682316} - Power: 10 ---- !u!1 &289928234 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 289928235} - - 20: {fileID: 289928236} - - 92: {fileID: 289928238} - - 124: {fileID: 289928239} - - 81: {fileID: 289928237} - - 114: {fileID: 289928240} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &289928235 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_LocalRotation: {x: -.23997283, y: .361842275, z: -.0969553441, w: -.895590782} - m_LocalPosition: {x: 14.727107, y: 12.5700989, z: -22.0249023} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!20 &289928236 -Camera: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 100 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_HDR: 0 ---- !u!81 &289928237 -AudioListener: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 ---- !u!92 &289928238 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 ---- !u!124 &289928239 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 ---- !u!114 &289928240 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b83465fdec27ec4e908d2d54b28cf14, type: 1} - m_Name: - Text: 'A basic touch handling example. - - - Click on white plane to spawn new cubes. Click on cubes to break them. - - Notice, all the cubes have a TapGesture attached. Check out script to - find out how to handle taps.' ---- !u!1 &403162831 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 403162832} - - 108: {fileID: 403162833} - m_Layer: 0 - m_Name: Directional light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &403162832 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 403162831} - m_LocalRotation: {x: .408217967, y: -.234569743, z: .109381683, w: .875426114} - m_LocalPosition: {x: 0, y: 1, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!108 &403162833 -Light: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 403162831} - m_Enabled: 1 - serializedVersion: 3 - m_Type: 1 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: .649999976 - m_Range: 10 - m_SpotAngle: 30 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_Strength: 1 - m_Bias: .0500000007 - m_Softness: 4 - m_SoftnessFade: 1 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_ActuallyLightmapped: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_Lightmapping: 1 - m_ShadowSamples: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_IndirectIntensity: 1 - m_AreaSize: {x: 1, y: 1} ---- !u!1 &463825118 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 549352689} - serializedVersion: 3 - m_Component: - - 4: {fileID: 463825119} - - 114: {fileID: 463825124} - m_Layer: 0 - m_Name: Touch Debugger - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &463825119 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 549352689} - m_GameObject: {fileID: 463825118} - m_LocalRotation: {x: 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} ---- !u!114 &463825124 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, - type: 2} - m_PrefabInternal: {fileID: 549352689} - m_GameObject: {fileID: 463825118} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 923107734, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - TouchTexture: {fileID: 2800000, guid: f5c75ed8c6bed0f489d9003aa739aff7, type: 1} - FontColor: {r: 0, g: .958217144, b: 1, a: 1} ---- !u!1001 &549352689 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_RootGameObject: {fileID: 463825118} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &865625384 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 865625385} - m_Layer: 0 - m_Name: Cubes - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &865625385 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 865625384} - m_LocalRotation: {x: 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: 33682316} - m_Father: {fileID: 0} ---- !u!1 &1097373604 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 1097373605} - - 33: {fileID: 1097373607} - - 64: {fileID: 1097373608} - - 23: {fileID: 1097373606} - - 114: {fileID: 1097373609} - - 114: {fileID: 1097373610} - m_Layer: 0 - m_Name: Plane - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1097373605 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1097373604} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 5, y: 5, z: 5} - m_Children: [] - m_Father: {fileID: 0} ---- !u!23 &1097373606 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1097373604} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 10302, guid: 0000000000000000e000000000000000, type: 0} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1097373607 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1097373604} - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!64 &1097373608 -MeshCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1097373604} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_SmoothSphereCollisions: 0 - m_Convex: 0 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!114 &1097373609 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1097373604} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5b59087a17532774e95d9791c6e52839, type: 1} - m_Name: - CubePrefab: {fileID: 400000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - Container: {fileID: 865625385} - Scale: .5 ---- !u!114 &1097373610 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1097373604} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1235405773, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - friendlyGestures: [] - timeLimit: Infinity - distanceLimit: Infinity - combineTouchPointsInterval: .300000012 ---- !u!1001 &1174230159 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 865625385} - m_Modifications: - - target: {fileID: 400000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - propertyPath: m_LocalPosition.x - value: 2.36665177 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - propertyPath: m_LocalPosition.y - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - propertyPath: m_LocalPosition.z - value: -7.5788517 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 55e9425c4b7a442528aa45f550c7099c, type: 2} - m_RootGameObject: {fileID: 33682315} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &1385619184 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 1385619185} - - 114: {fileID: 1385619186} - - 114: {fileID: 1385619187} - m_Layer: 0 - m_Name: TouchScript - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1385619185 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1385619184} - m_LocalRotation: {x: 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} ---- !u!114 &1385619186 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1385619184} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1254801617, guid: 53d3dc02e71df20438406b9087fe1e5d, type: 1} - m_Name: - TuioPort: 3333 - MovementThreshold: 0 ---- !u!114 &1385619187 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1385619184} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -102971247, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Basic.unity.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Basic.unity.meta deleted file mode 100644 index 257cfbd67..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Basic.unity.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 247ec9cc8a8b77e48904a1fea20a258d diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Editor.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Editor.meta deleted file mode 100644 index d83b33e98..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Editor.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: e88e3d9cfed3c264ba8105872cb1fdc7 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Editor/ExampleEditor.cs b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Editor/ExampleEditor.cs deleted file mode 100644 index 77269eb5a..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Editor/ExampleEditor.cs +++ /dev/null @@ -1,26 +0,0 @@ -using UnityEditor; -using UnityEngine; - -[CustomEditor(typeof(Example))] -public class ExampleEditor : Editor -{ - - private SerializedProperty text; - - private void OnEnable() - { - text = serializedObject.FindProperty("Text"); - } - - public override void OnInspectorGUI() - { - EditorGUIUtility.LookLikeControls(); - - EditorGUILayout.LabelField("Text"); - var newValue = EditorGUILayout.TextArea(text.stringValue, GUILayout.ExpandWidth(true), GUILayout.Height(300)); - if (newValue != text.stringValue) text.stringValue = newValue; - - serializedObject.ApplyModifiedProperties(); - } - -} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Editor/ExampleEditor.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Editor/ExampleEditor.cs.meta deleted file mode 100644 index 1b24776ef..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Editor/ExampleEditor.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: d02ae3b5b115d4742b1ed410f440d2a1 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials.meta deleted file mode 100644 index 2244efb79..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 398d0e1b12bc545048a46f2fc3e72cfc diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.mat b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.mat deleted file mode 100644 index bab0d1839..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.mat +++ /dev/null @@ -1,45 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Cube - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - 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: _Illum - second: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - data: - first: - name: _Shininess - second: .078125 - data: - first: - name: _EmissionLM - second: 0 - m_Colors: - data: - first: - name: _Color - second: {r: .466054976, g: .78319478, b: .0625078753, a: 1} - data: - first: - name: _SpecColor - second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.mat.meta deleted file mode 100644 index 4053939f3..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: ccb62f5f22698400e98624a85e3b33dd diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.physicMaterial b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.physicMaterial deleted file mode 100644 index 3f803dfd8..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.physicMaterial +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!134 &13400000 -PhysicMaterial: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Cube - dynamicFriction: .400000006 - staticFriction: .400000006 - bounciness: 1 - frictionCombine: 0 - bounceCombine: 0 - frictionDirection2: {x: 0, y: 0, z: 0} - dynamicFriction2: 0 - staticFriction2: 0 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.physicMaterial.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.physicMaterial.meta deleted file mode 100644 index ac7369e42..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Materials/Cube.physicMaterial.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: a86d1545c5d364090bc1954092b8c436 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Prebabs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Prebabs.meta deleted file mode 100644 index f11f73595..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Prebabs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: c1c533bee149c4808a088b887258011b diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Prebabs/Cube.prefab b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Prebabs/Cube.prefab deleted file mode 100644 index 28222b285..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Prebabs/Cube.prefab +++ /dev/null @@ -1,124 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &100000 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 3 - m_Component: - - 4: {fileID: 400000} - - 33: {fileID: 3300000} - - 65: {fileID: 6500000} - - 23: {fileID: 2300000} - - 54: {fileID: 5400000} - - 114: {fileID: 11400002} - - 114: {fileID: 11400000} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &400000 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.36665177, y: 3, z: -7.5788517} - m_LocalScale: {x: 5, y: 5, z: 5} - m_Children: [] - m_Father: {fileID: 0} ---- !u!23 &2300000 -Renderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: ccb62f5f22698400e98624a85e3b33dd, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &3300000 -MeshFilter: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!54 &5400000 -Rigidbody: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: .0500000007 - m_UseGravity: 1 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!65 &6500000 -BoxCollider: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Material: {fileID: 13400000, guid: a86d1545c5d364090bc1954092b8c436, type: 2} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b0349092c4c1d4c9f95dad6c7db0c3cb, type: 1} - m_Name: - CubePrefab: {fileID: 400000} - Power: 10 ---- !u!114 &11400002 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1235405773, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - friendlyGestureIds: - timeLimit: Infinity - distanceLimit: Infinity - combineTouchPointsInterval: .300000012 ---- !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: 100000} - m_IsPrefabParent: 1 - m_IsExploded: 1 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Prebabs/Cube.prefab.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Prebabs/Cube.prefab.meta deleted file mode 100644 index f5d49a65f..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Prebabs/Cube.prefab.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 55e9425c4b7a442528aa45f550c7099c diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts.meta deleted file mode 100644 index 9e5acd6ec..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: e4e78ddf155a140d3a348c951f441189 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Breaker.cs b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Breaker.cs deleted file mode 100644 index 6ed3c9c32..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Breaker.cs +++ /dev/null @@ -1,46 +0,0 @@ -using UnityEngine; -using TouchScript.Gestures; - -public class BasicExample_Breaker : MonoBehaviour -{ - public Transform CubePrefab; - public float Power = 10.0f; - - private Vector3[] directions = { - new Vector3(1, -1, 1), - new Vector3(-1, -1, 1), - new Vector3(-1, -1, -1), - new Vector3(1, -1, -1), - new Vector3(1, 1, 1), - new Vector3(-1, 1, 1), - new Vector3(-1, 1, -1), - new Vector3(1, 1, -1) - }; - - private void Start() - { - GetComponent().StateChanged += HandleStateChanged; - } - - private void HandleStateChanged(object sender, TouchScript.Events.GestureStateChangeEventArgs e) - { - if (e.State == Gesture.GestureState.Recognized) - { - if (transform.localScale.x > 0.05f) - { - Color color = new Color(Random.value, Random.value, Random.value); - for (int i = 0; i < 8; i++) - { - var c = Instantiate(CubePrefab) as Transform; - c.parent = transform.parent; - c.name = "Cube"; - c.localScale = 0.5f*transform.localScale; - c.position = transform.TransformPoint(c.localScale.x/10.0f*directions[i]); - c.rigidbody.velocity = Power*Random.insideUnitSphere; - c.renderer.material.color = color; - } - } - Destroy(gameObject); - } - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Breaker.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Breaker.cs.meta deleted file mode 100644 index ed7d0cc7d..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Breaker.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b0349092c4c1d4c9f95dad6c7db0c3cb -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Spawner.cs b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Spawner.cs deleted file mode 100644 index d4999631b..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Spawner.cs +++ /dev/null @@ -1,34 +0,0 @@ -using TouchScript.Gestures; -using TouchScript.Hit; -using UnityEngine; - -public class BasicExample_Spawner : MonoBehaviour -{ - public Transform CubePrefab; - public Transform Container; - public float Scale = .5f; - - private void Start() - { - GetComponent().StateChanged += HandleStateChanged; - } - - private void HandleStateChanged(object sender, TouchScript.Events.GestureStateChangeEventArgs e) - { - if (e.State == Gesture.GestureState.Recognized) - { - var gesture = sender as TapGesture; - TouchHit hit; - gesture.GetTargetHitResult(out hit); - - Color color = new Color(Random.value, Random.value, Random.value); - var c = Instantiate(CubePrefab) as Transform; - c.parent = Container; - c.name = "Cube"; - c.localScale = Vector3.one*Scale*c.localScale.x; - c.position = hit.Point + hit.Normal * 2; - c.renderer.material.color = color; - - } - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Spawner.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Spawner.cs.meta deleted file mode 100644 index 61c7d6a84..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/BasicExample_Spawner.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5b59087a17532774e95d9791c6e52839 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/Example.cs b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/Example.cs deleted file mode 100644 index 3ed2e4876..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/Example.cs +++ /dev/null @@ -1,30 +0,0 @@ -using UnityEngine; - -[ExecuteInEditMode] -public class Example : MonoBehaviour { - - public string Text; - - private GUIStyle style; - private Color color = new Color(0, 0, 0, .9f); - - private void OnGUI() - { - if (style == null) - { - style = new GUIStyle(GUI.skin.label); - style.normal.background = new Texture2D(1, 1); - style.normal.background.SetPixel(0, 0, Color.black); - style.padding = new RectOffset(5, 5, 5, 5); - } - - var c = GUI.backgroundColor; - GUI.backgroundColor = color; - var rect = GUI.skin.label.CalcSize(new GUIContent(Text)); - GUILayout.BeginArea(new Rect(50, Screen.height - rect.y - 50, rect.x + 20, rect.y + 20)); - GUILayout.Label(Text, style); - GUILayout.EndArea(); - GUI.backgroundColor = c; - } - -} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/Example.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/Example.cs.meta deleted file mode 100644 index 3a00eddaf..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Basic/Scripts/Example.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8b83465fdec27ec4e908d2d54b28cf14 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Flick.meta b/Examples/General Examples/Assets/TouchScript/Examples/Flick.meta deleted file mode 100644 index d73f10cdd..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Flick.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: b18e4bf3fa7a7bd409d000a5845c72da diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Flick.unity b/Examples/General Examples/Assets/TouchScript/Examples/Flick/Flick.unity deleted file mode 100644 index 283632435..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Flick.unity +++ /dev/null @@ -1,461 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -Scene: - m_ObjectHideFlags: 0 - m_PVSData: - m_QueryMode: 1 - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] - m_OcclusionBakeSettings: - viewCellSize: 1 - bakeMode: 2 - memoryUsage: 10485760 ---- !u!104 &2 -RenderSettings: - m_Fog: 0 - m_FogColor: {r: .5, g: .5, b: .5, a: 1} - m_FogMode: 3 - m_FogDensity: .00999999978 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: .5 - m_FlareStrength: 1 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 0} - m_ObjectHideFlags: 0 ---- !u!127 &3 -GameManager: - m_ObjectHideFlags: 0 ---- !u!157 &4 -LightmapSettings: - m_ObjectHideFlags: 0 - m_LightProbes: {fileID: 0} - m_Lightmaps: [] - m_LightmapsMode: 1 - m_BakedColorSpace: 0 - m_UseDualLightmapsInForward: 0 - m_LightmapEditorSettings: - m_Resolution: 50 - m_LastUsedResolution: 0 - m_TextureWidth: 1024 - m_TextureHeight: 1024 - m_BounceBoost: 1 - m_BounceIntensity: 1 - m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} - m_SkyLightIntensity: 0 - m_Quality: 0 - m_Bounces: 1 - m_FinalGatherRays: 1000 - m_FinalGatherContrastThreshold: .0500000007 - m_FinalGatherGradientThreshold: 0 - m_FinalGatherInterpolationPoints: 15 - m_AOAmount: 0 - m_AOMaxDistance: .100000001 - m_AOContrast: 1 - m_LODSurfaceMappingDistance: 1 - m_Padding: 0 - m_TextureCompression: 0 - m_LockAtlas: 0 ---- !u!196 &5 -NavMeshSettings: - m_ObjectHideFlags: 0 - m_BuildSettings: - agentRadius: .5 - agentHeight: 2 - agentSlope: 45 - agentClimb: .400000006 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - accuratePlacement: 0 - minRegionArea: 2 - widthInaccuracy: 16.666666 - heightInaccuracy: 10 - m_NavMesh: {fileID: 0} ---- !u!1 &516519482 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 1740565552} - serializedVersion: 3 - m_Component: - - 4: {fileID: 516519483} - - 114: {fileID: 516519484} - m_Layer: 0 - m_Name: Touch Debugger - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &516519483 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 1740565552} - m_GameObject: {fileID: 516519482} - m_LocalRotation: {x: 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} ---- !u!114 &516519484 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, - type: 2} - m_PrefabInternal: {fileID: 1740565552} - m_GameObject: {fileID: 516519482} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 923107734, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - TouchTexture: {fileID: 2800000, guid: f5c75ed8c6bed0f489d9003aa739aff7, type: 1} - FontColor: {r: 0, g: .958217144, b: 1, a: 1} ---- !u!1 &1459090116 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 1459090117} - - 33: {fileID: 1459090119} - - 65: {fileID: 1459090120} - - 23: {fileID: 1459090118} - - 54: {fileID: 1459090121} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1459090117 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1459090116} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: .525212884, y: .525212884, z: .525212884} - m_Children: [] - m_Father: {fileID: 0} ---- !u!23 &1459090118 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1459090116} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 10302, guid: 0000000000000000e000000000000000, type: 0} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1459090119 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1459090116} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1459090120 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1459090116} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!54 &1459090121 -Rigidbody: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1459090116} - serializedVersion: 2 - m_Mass: 100 - m_Drag: 0 - m_AngularDrag: 1 - m_UseGravity: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 14 - m_CollisionDetection: 0 ---- !u!1 &1555347268 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 1555347269} - - 20: {fileID: 1555347270} - - 92: {fileID: 1555347272} - - 124: {fileID: 1555347273} - - 81: {fileID: 1555347271} - - 65: {fileID: 1555347274} - - 114: {fileID: 1555347275} - - 114: {fileID: 1555347276} - - 114: {fileID: 1555347277} - - 114: {fileID: 1555347278} - - 114: {fileID: 1555347279} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1555347269 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_LocalRotation: {x: .237996295, y: 0, z: 0, w: .971266091} - m_LocalPosition: {x: 0, y: .608493865, z: -1.33729422} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!20 &1555347270 -Camera: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 10 - field of view: 60 - orthographic: 0 - orthographic size: 100 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_HDR: 0 ---- !u!81 &1555347271 -AudioListener: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Enabled: 1 ---- !u!92 &1555347272 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Enabled: 1 ---- !u!124 &1555347273 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Enabled: 1 ---- !u!65 &1555347274 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: .469732195, y: .352299154, z: .00999999978} - m_Center: {x: 0, y: 0, z: .305100024} ---- !u!114 &1555347275 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1457327819, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - Type: 1 ---- !u!114 &1555347276 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1254797990, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - friendlyGestures: [] - flickTime: .100000001 - minDistance: 1 - movementThreshold: .5 - direction: 0 ---- !u!114 &1555347277 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 77fe3e2593d48b44d8b78096627430c3, type: 1} - m_Name: - Target: {fileID: 1459090121} ---- !u!114 &1555347278 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1088824302, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - friendlyGestures: [] ---- !u!114 &1555347279 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1555347268} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b83465fdec27ec4e908d2d54b28cf14, type: 1} - m_Name: - Text: 'This example shows how to use Flick Gesture. - - Here we also use Fullscreen Target and Press Gesture. - - - Try to flick over the screen to make toe cube rotating.' ---- !u!1001 &1740565552 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_RootGameObject: {fileID: 516519482} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &1856562033 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 1856562034} - - 108: {fileID: 1856562035} - m_Layer: 0 - m_Name: Point light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1856562034 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1856562033} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -.925027847, y: 2.01269865, z: -1.44725394} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!108 &1856562035 -Light: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1856562033} - m_Enabled: 1 - serializedVersion: 3 - m_Type: 2 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_Strength: 1 - m_Bias: .0500000007 - m_Softness: 4 - m_SoftnessFade: 1 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_ActuallyLightmapped: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_Lightmapping: 1 - m_ShadowSamples: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_IndirectIntensity: 1 - m_AreaSize: {x: 1, y: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Flick.unity.meta b/Examples/General Examples/Assets/TouchScript/Examples/Flick/Flick.unity.meta deleted file mode 100644 index 252e28bf1..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Flick.unity.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: b2ca8ca1a9a806c4baae7931528ae7b6 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Scripts.meta b/Examples/General Examples/Assets/TouchScript/Examples/Flick/Scripts.meta deleted file mode 100644 index db21328b9..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Scripts.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 61469d83c73f0a244850e0ba762a3eb5 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Scripts/FlickExample_Rotator.cs b/Examples/General Examples/Assets/TouchScript/Examples/Flick/Scripts/FlickExample_Rotator.cs deleted file mode 100644 index 25929087b..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Scripts/FlickExample_Rotator.cs +++ /dev/null @@ -1,41 +0,0 @@ -using TouchScript.Events; -using TouchScript.Gestures; -using UnityEngine; - -public class FlickExample_Rotator : MonoBehaviour -{ - - public Rigidbody Target; - - private Quaternion targetRotation; - private Vector3 speed; - - private void Start() - { - GetComponent().StateChanged += flickHandler; - GetComponent().StateChanged += pressHandler; - } - - private void pressHandler(object sender, GestureStateChangeEventArgs gestureStateChangeEventArgs) - { - Target.angularVelocity = Vector3.zero; - } - - private void FixedUpdate() - { - if (speed != Vector3.zero) - { - Target.AddTorque(speed); - speed = Vector2.zero; - } - } - - private void flickHandler(object sender, GestureStateChangeEventArgs e) - { - if (e.State == Gesture.GestureState.Recognized) - { - var spd = ((sender as FlickGesture).ScreenFlickVector/(sender as FlickGesture).ScreenFlickTime); - speed = new Vector3(spd.y, -spd.x, 0); - } - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Scripts/FlickExample_Rotator.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Flick/Scripts/FlickExample_Rotator.cs.meta deleted file mode 100644 index d691389c9..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Flick/Scripts/FlickExample_Rotator.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 77fe3e2593d48b44d8b78096627430c3 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test.meta deleted file mode 100644 index 417aa20b9..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 84ebecd512aa7184c8fec251f06c11f1 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Hit Test.unity b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Hit Test.unity deleted file mode 100644 index 952ce8d29..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Hit Test.unity +++ /dev/null @@ -1,697 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -Scene: - m_ObjectHideFlags: 0 - m_PVSData: - m_QueryMode: 1 - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] - m_OcclusionBakeSettings: - viewCellSize: 1 - bakeMode: 2 - memoryUsage: 10485760 ---- !u!104 &2 -RenderSettings: - m_Fog: 0 - m_FogColor: {r: .5, g: .5, b: .5, a: 1} - m_FogMode: 3 - m_FogDensity: .00999999978 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: .5 - m_FlareStrength: 1 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 0} - m_ObjectHideFlags: 0 ---- !u!127 &3 -GameManager: - m_ObjectHideFlags: 0 ---- !u!157 &4 -LightmapSettings: - m_ObjectHideFlags: 0 - m_LightProbes: {fileID: 0} - m_Lightmaps: [] - m_LightmapsMode: 1 - m_BakedColorSpace: 0 - m_UseDualLightmapsInForward: 0 - m_LightmapEditorSettings: - m_Resolution: 50 - m_LastUsedResolution: 0 - m_TextureWidth: 1024 - m_TextureHeight: 1024 - m_BounceBoost: 1 - m_BounceIntensity: 1 - m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} - m_SkyLightIntensity: 0 - m_Quality: 0 - m_Bounces: 1 - m_FinalGatherRays: 1000 - m_FinalGatherContrastThreshold: .0500000007 - m_FinalGatherGradientThreshold: 0 - m_FinalGatherInterpolationPoints: 15 - m_AOAmount: 0 - m_AOMaxDistance: .100000001 - m_AOContrast: 1 - m_LODSurfaceMappingDistance: 1 - m_Padding: 0 - m_TextureCompression: 0 - m_LockAtlas: 0 ---- !u!196 &5 -NavMeshSettings: - m_ObjectHideFlags: 0 - m_BuildSettings: - agentRadius: .5 - agentHeight: 2 - agentSlope: 45 - agentClimb: .400000006 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - accuratePlacement: 0 - minRegionArea: 2 - widthInaccuracy: 16.666666 - heightInaccuracy: 10 - m_NavMesh: {fileID: 0} ---- !u!1 &289928234 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 289928235} - - 20: {fileID: 289928236} - - 92: {fileID: 289928238} - - 124: {fileID: 289928239} - - 81: {fileID: 289928237} - - 114: {fileID: 289928240} - - 114: {fileID: 289928241} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &289928235 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_LocalRotation: {x: 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} ---- !u!20 &289928236 -Camera: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 100 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_HDR: 0 ---- !u!81 &289928237 -AudioListener: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 ---- !u!92 &289928238 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 ---- !u!124 &289928239 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 ---- !u!114 &289928240 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1298086939, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - Name: Main Camera - layerMask: - serializedVersion: 2 - m_Bits: 4294967039 ---- !u!114 &289928241 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 289928234} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b83465fdec27ec4e908d2d54b28cf14, type: 1} - m_Name: - Text: "An example to illustrate different object filtering techniques:\n1. 'Untouchable - Discarding Behavior' \u2014 doesn't let other colliders behind the red cube get - touch points.\n2. 'Untouchable Behavior' \u2014 doesn't recieve touch input and - lets other colliders behind the red cube get touch points.\n3. 'Untouchable Layer' - \u2014 the whole layer is ignored during hit test calculations.\n\nTry to drag - green and red cubes." ---- !u!1 &302423102 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 302423103} - - 108: {fileID: 302423104} - m_Layer: 0 - m_Name: Point light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &302423103 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 302423102} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -.617594838, y: 1.02387905, z: 1.19001579} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!108 &302423104 -Light: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 302423102} - m_Enabled: 1 - serializedVersion: 3 - m_Type: 2 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_Strength: 1 - m_Bias: .0500000007 - m_Softness: 4 - m_SoftnessFade: 1 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_ActuallyLightmapped: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_Lightmapping: 1 - m_ShadowSamples: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_IndirectIntensity: 1 - m_AreaSize: {x: 1, y: 1} ---- !u!1 &411420698 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 411420699} - - 33: {fileID: 411420701} - - 65: {fileID: 411420702} - - 23: {fileID: 411420700} - m_Layer: 8 - m_Name: Untouchable Layer Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &411420699 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 411420698} - m_LocalRotation: {x: 0, y: 0, z: 1, w: -4.37113883e-08} - m_LocalPosition: {x: .470126003, y: .415661752, z: -.635235071} - m_LocalScale: {x: .5, y: .5, z: .5} - m_Children: [] - m_Father: {fileID: 955263853} ---- !u!23 &411420700 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 411420698} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: fcd16f4f7c94f3542aa0ad60a09eef48, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &411420701 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 411420698} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &411420702 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 411420698} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &432655349 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 432655350} - - 33: {fileID: 432655352} - - 65: {fileID: 432655353} - - 23: {fileID: 432655351} - - 114: {fileID: 432655354} - m_Layer: 0 - m_Name: Untouchable Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &432655350 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 432655349} - m_LocalRotation: {x: 0, y: 0, z: 1, w: -4.37113883e-08} - m_LocalPosition: {x: .470125675, y: -.39013195, z: -.635235071} - m_LocalScale: {x: .5, y: .5, z: .5} - m_Children: [] - m_Father: {fileID: 955263853} ---- !u!23 &432655351 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 432655349} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: b9c68457a303b5c4db16b9a75cac1b04, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &432655352 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 432655349} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &432655353 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 432655349} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &432655354 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 432655349} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -931192445, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - DiscardTouch: 0 ---- !u!1 &463825118 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 549352689} - serializedVersion: 3 - m_Component: - - 4: {fileID: 463825119} - - 114: {fileID: 463825124} - m_Layer: 0 - m_Name: Touch Debugger - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &463825119 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 549352689} - m_GameObject: {fileID: 463825118} - m_LocalRotation: {x: 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} ---- !u!114 &463825124 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, - type: 2} - m_PrefabInternal: {fileID: 549352689} - m_GameObject: {fileID: 463825118} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 923107734, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - TouchTexture: {fileID: 2800000, guid: f5c75ed8c6bed0f489d9003aa739aff7, type: 1} - FontColor: {r: 0, g: .958217144, b: 1, a: 1} ---- !u!1001 &549352689 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_RootGameObject: {fileID: 463825118} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &955263852 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 955263853} - - 33: {fileID: 955263855} - - 65: {fileID: 955263856} - - 23: {fileID: 955263854} - - 114: {fileID: 955263857} - - 114: {fileID: 955263858} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &955263853 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 955263852} - 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_Children: - - {fileID: 432655350} - - {fileID: 1596162147} - - {fileID: 411420699} - m_Father: {fileID: 0} ---- !u!23 &955263854 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 955263852} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 04dc449d96f7c3749b0a8b6ddb45f74c, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &955263855 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 955263852} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &955263856 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 955263852} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &955263857 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 955263852} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1423175855, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - friendlyGestures: [] - projection: 0 - projectionNormal: {x: 0, y: 0, z: 1} - movementThreshold: .5 ---- !u!114 &955263858 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 955263852} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 645232165, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - Speed: 10 ---- !u!1 &1385619184 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 1385619185} - - 114: {fileID: 1385619186} - - 114: {fileID: 1385619187} - m_Layer: 0 - m_Name: TouchScript - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1385619185 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1385619184} - m_LocalRotation: {x: 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} ---- !u!114 &1385619186 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1385619184} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1254801617, guid: 53d3dc02e71df20438406b9087fe1e5d, type: 1} - m_Name: - TuioPort: 3333 - MovementThreshold: .100000001 ---- !u!114 &1385619187 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1385619184} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -102971247, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: ---- !u!1 &1596162146 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 1596162147} - - 33: {fileID: 1596162149} - - 65: {fileID: 1596162150} - - 23: {fileID: 1596162148} - - 114: {fileID: 1596162151} - m_Layer: 0 - m_Name: Discarding Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1596162147 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1596162146} - m_LocalRotation: {x: 0, y: 0, z: 1, w: -4.37113883e-08} - m_LocalPosition: {x: -.506786466, y: .430175722, z: -.635235071} - m_LocalScale: {x: .5, y: .5, z: .5} - m_Children: [] - m_Father: {fileID: 955263853} ---- !u!23 &1596162148 -Renderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1596162146} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 2100000, guid: 2186e4cc3b730e948b27a82958c8ba92, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &1596162149 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1596162146} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &1596162150 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1596162146} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1596162151 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1596162146} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -931192445, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - DiscardTouch: 1 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Hit Test.unity.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Hit Test.unity.meta deleted file mode 100644 index b5a348ef0..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Hit Test.unity.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5b93b9c7e4412ff46a2f21afd527d9a4 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials.meta deleted file mode 100644 index e69daf120..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 2927bce01933b40439af02fcde930aa4 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Behavior.mat b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Behavior.mat deleted file mode 100644 index 6dac28bbf..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Behavior.mat +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Behavior - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - m_SavedProperties: - serializedVersion: 2 - m_TexEnvs: - data: - first: - name: _MainTex - second: - m_Texture: {fileID: 2800000, guid: c66f3c47eb640a1478134b53263d601f, type: 1} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: {} - m_Colors: - data: - first: - name: _Color - second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Behavior.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Behavior.mat.meta deleted file mode 100644 index 1e5828611..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Behavior.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: b9c68457a303b5c4db16b9a75cac1b04 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Discarding.mat b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Discarding.mat deleted file mode 100644 index ad4015a50..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Discarding.mat +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Discarding - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - m_SavedProperties: - serializedVersion: 2 - m_TexEnvs: - data: - first: - name: _MainTex - second: - m_Texture: {fileID: 2800000, guid: 88030aa6c51b6b94c832d9b8b41fdac1, type: 1} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: {} - m_Colors: - data: - first: - name: _Color - second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Discarding.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Discarding.mat.meta deleted file mode 100644 index 84bb9ee83..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Discarding.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 2186e4cc3b730e948b27a82958c8ba92 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Green.mat b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Green.mat deleted file mode 100644 index aa781ef25..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Green.mat +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Green - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - 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} - m_Floats: {} - m_Colors: - data: - first: - name: _Color - second: {r: .119402885, g: 1, b: 0, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Green.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Green.mat.meta deleted file mode 100644 index 02364465f..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Green.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 04dc449d96f7c3749b0a8b6ddb45f74c diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Layer.mat b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Layer.mat deleted file mode 100644 index c458ed046..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Layer.mat +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Layer - m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} - m_SavedProperties: - serializedVersion: 2 - m_TexEnvs: - data: - first: - name: _MainTex - second: - m_Texture: {fileID: 2800000, guid: d9e678533fb0fcc47977a01510af2585, type: 1} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: {} - m_Colors: - data: - first: - name: _Color - second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Layer.mat.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Layer.mat.meta deleted file mode 100644 index 45e59c3d4..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Materials/Layer.mat.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: fcd16f4f7c94f3542aa0ad60a09eef48 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures.meta deleted file mode 100644 index 1e0754d7b..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 42b8f4bf9fb36b54cb20e8ebfa6f8311 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Behavior.png b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Behavior.png deleted file mode 100644 index 9429c7184..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Behavior.png and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Behavior.png.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Behavior.png.meta deleted file mode 100644 index 84c13ca88..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Behavior.png.meta +++ /dev/null @@ -1,33 +0,0 @@ -fileFormatVersion: 2 -guid: c66f3c47eb640a1478134b53263d601f -TextureImporter: - 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: .25 - normalMapFilter: 0 - isReadable: 0 - grayScaleToAlpha: 0 - generateCubemap: 0 - textureFormat: -1 - maxTextureSize: 1024 - textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: -1 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - textureType: -1 - buildTargetSettings: [] diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Discarding-Behavior.png b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Discarding-Behavior.png deleted file mode 100644 index e6802e997..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Discarding-Behavior.png and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Discarding-Behavior.png.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Discarding-Behavior.png.meta deleted file mode 100644 index d14a13b8f..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Discarding-Behavior.png.meta +++ /dev/null @@ -1,33 +0,0 @@ -fileFormatVersion: 2 -guid: 88030aa6c51b6b94c832d9b8b41fdac1 -TextureImporter: - 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: .25 - normalMapFilter: 0 - isReadable: 0 - grayScaleToAlpha: 0 - generateCubemap: 0 - textureFormat: -1 - maxTextureSize: 1024 - textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: -1 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - textureType: -1 - buildTargetSettings: [] diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Layer.png b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Layer.png deleted file mode 100644 index 61a021030..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Layer.png and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Layer.png.meta b/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Layer.png.meta deleted file mode 100644 index 25251a863..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Hit Test/Textures/Untouchable-Layer.png.meta +++ /dev/null @@ -1,33 +0,0 @@ -fileFormatVersion: 2 -guid: d9e678533fb0fcc47977a01510af2585 -TextureImporter: - 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: .25 - normalMapFilter: 0 - isReadable: 0 - grayScaleToAlpha: 0 - generateCubemap: 0 - textureFormat: -1 - maxTextureSize: 1024 - textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: -1 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - textureType: -1 - buildTargetSettings: [] diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input.meta b/Examples/General Examples/Assets/TouchScript/Examples/Input.meta deleted file mode 100644 index e67acb6c1..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: d18c81d069e21054da90ee357bb86f87 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Input.unity b/Examples/General Examples/Assets/TouchScript/Examples/Input/Input.unity deleted file mode 100644 index eba923614..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Input.unity +++ /dev/null @@ -1,413 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -Scene: - m_ObjectHideFlags: 0 - m_PVSData: - m_QueryMode: 1 - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] - m_OcclusionBakeSettings: - viewCellSize: 1 - bakeMode: 2 - memoryUsage: 10485760 ---- !u!104 &2 -RenderSettings: - m_Fog: 0 - m_FogColor: {r: .5, g: .5, b: .5, a: 1} - m_FogMode: 3 - m_FogDensity: .00999999978 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientLight: {r: 0, g: 0, b: 0, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: .5 - m_FlareStrength: 1 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 0} - m_ObjectHideFlags: 0 ---- !u!127 &3 -GameManager: - m_ObjectHideFlags: 0 ---- !u!157 &4 -LightmapSettings: - m_ObjectHideFlags: 0 - m_LightProbes: {fileID: 0} - m_Lightmaps: [] - m_LightmapsMode: 1 - m_BakedColorSpace: 0 - m_UseDualLightmapsInForward: 0 - m_LightmapEditorSettings: - m_Resolution: 50 - m_LastUsedResolution: 0 - m_TextureWidth: 1024 - m_TextureHeight: 1024 - m_BounceBoost: 1 - m_BounceIntensity: 1 - m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} - m_SkyLightIntensity: 0 - m_Quality: 0 - m_Bounces: 1 - m_FinalGatherRays: 1000 - m_FinalGatherContrastThreshold: .0500000007 - m_FinalGatherGradientThreshold: 0 - m_FinalGatherInterpolationPoints: 15 - m_AOAmount: 0 - m_AOMaxDistance: .100000001 - m_AOContrast: 1 - m_LODSurfaceMappingDistance: 1 - m_Padding: 0 - m_TextureCompression: 0 - m_LockAtlas: 0 ---- !u!196 &5 -NavMeshSettings: - m_ObjectHideFlags: 0 - m_BuildSettings: - agentRadius: .5 - agentHeight: 2 - agentSlope: 45 - agentClimb: .400000006 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - accuratePlacement: 0 - minRegionArea: 2 - widthInaccuracy: 16.666666 - heightInaccuracy: 10 - m_NavMesh: {fileID: 0} ---- !u!1 &273709370 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 273709371} - - 20: {fileID: 273709372} - - 92: {fileID: 273709374} - - 124: {fileID: 273709375} - - 81: {fileID: 273709373} - - 114: {fileID: 273709376} - - 114: {fileID: 273709377} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &273709371 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 273709370} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!20 &273709372 -Camera: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 273709370} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 200 - field of view: 60 - orthographic: 0 - orthographic size: 100 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_HDR: 0 ---- !u!81 &273709373 -AudioListener: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 273709370} - m_Enabled: 1 ---- !u!92 &273709374 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 273709370} - m_Enabled: 1 ---- !u!124 &273709375 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 273709370} - m_Enabled: 1 ---- !u!114 &273709376 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 273709370} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 08e5fcd8b11b5bb4bb50d7e93ecb1ccc, type: 1} - m_Name: - Prefab: {fileID: 100000, guid: f733be5377863f64f9ad352b05bdb77d, type: 2} ---- !u!114 &273709377 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 273709370} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b83465fdec27ec4e908d2d54b28cf14, type: 1} - m_Name: - Text: 'Touch input without gestures example. - - - Click on the screen to spawn white spheres. - - There''s no gesture logic in the scene, TouchScript is used just to capture touch - points from an input device.' ---- !u!1 &528081758 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 528081759} - - 108: {fileID: 528081760} - m_Layer: 0 - m_Name: Point light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &528081759 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 528081758} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!108 &528081760 -Light: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 528081758} - m_Enabled: 1 - serializedVersion: 3 - m_Type: 2 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 1 - m_Range: 100 - m_SpotAngle: 30 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_Strength: 1 - m_Bias: .0500000007 - m_Softness: 4 - m_SoftnessFade: 1 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_ActuallyLightmapped: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_Lightmapping: 1 - m_ShadowSamples: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_IndirectIntensity: 1 - m_AreaSize: {x: 1, y: 1} ---- !u!1 &545316148 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 915179387} - serializedVersion: 3 - m_Component: - - 4: {fileID: 545316149} - - 114: {fileID: 545316150} - m_Layer: 0 - m_Name: Touch Debugger - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &545316149 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_PrefabInternal: {fileID: 915179387} - m_GameObject: {fileID: 545316148} - m_LocalRotation: {x: 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} ---- !u!114 &545316150 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, - type: 2} - m_PrefabInternal: {fileID: 915179387} - m_GameObject: {fileID: 545316148} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 923107734, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - TouchTexture: {fileID: 2800000, guid: f5c75ed8c6bed0f489d9003aa739aff7, type: 1} - FontColor: {r: 0, g: .958217144, b: 1, a: 1} ---- !u!1001 &915179387 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} - m_RootGameObject: {fileID: 545316148} - m_IsPrefabParent: 0 - m_IsExploded: 1 ---- !u!1 &2049601226 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 3 - m_Component: - - 4: {fileID: 2049601227} - - 114: {fileID: 2049601228} - - 114: {fileID: 2049601229} - - 114: {fileID: 2049601230} - - 114: {fileID: 2049601231} - - 114: {fileID: 2049601232} - m_Layer: 0 - m_Name: TouchScript - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2049601227 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 2049601226} - m_LocalRotation: {x: 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} ---- !u!114 &2049601228 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 2049601226} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -409488130, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - liveDpi: 72 - editorDpi: 72 - layers: [] ---- !u!114 &2049601229 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 2049601226} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 770742126, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: ---- !u!114 &2049601230 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 2049601226} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -102971247, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: ---- !u!114 &2049601231 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 2049601226} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1254801617, guid: 53d3dc02e71df20438406b9087fe1e5d, type: 1} - m_Name: - TuioPort: 3333 - MovementThreshold: 0 ---- !u!114 &2049601232 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 2049601226} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1496140412, guid: bb6056dc800c1084da7273cb9f23f5cb, type: 1} - m_Name: diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Input.unity.meta b/Examples/General Examples/Assets/TouchScript/Examples/Input/Input.unity.meta deleted file mode 100644 index 0ace1a5a3..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Input.unity.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: f8f1d701205a3f9488068ad1c36a02bf diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Prefabs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Input/Prefabs.meta deleted file mode 100644 index 075ee28e3..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Prefabs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: cce6ca71aa4c8814b9837078a0021ce7 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Prefabs/Ball.prefab b/Examples/General Examples/Assets/TouchScript/Examples/Input/Prefabs/Ball.prefab deleted file mode 100644 index d80f56d52..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Prefabs/Ball.prefab +++ /dev/null @@ -1,79 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &100000 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 3 - m_Component: - - 4: {fileID: 400000} - - 33: {fileID: 3300000} - - 23: {fileID: 2300000} - - 114: {fileID: 11400000} - m_Layer: 0 - m_Name: Ball - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &400000 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_LocalRotation: {x: 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} ---- !u!23 &2300000 -Renderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_LightmapIndex: 255 - m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} - m_Materials: - - {fileID: 10302, guid: 0000000000000000e000000000000000, type: 0} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_LightProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 ---- !u!33 &3300000 -MeshFilter: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 02136d53ba543bd419944237532bed14, type: 1} - m_Name: - Speed: 10 ---- !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: 100000} - m_IsPrefabParent: 1 - m_IsExploded: 1 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Prefabs/Ball.prefab.meta b/Examples/General Examples/Assets/TouchScript/Examples/Input/Prefabs/Ball.prefab.meta deleted file mode 100644 index 3c85e3956..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Prefabs/Ball.prefab.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: f733be5377863f64f9ad352b05bdb77d diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts.meta b/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts.meta deleted file mode 100644 index 18c72c638..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 73d07acb8448291478c3906a3a9f5f09 diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample.cs b/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample.cs deleted file mode 100644 index aca0e4eb8..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using TouchScript; -using TouchScript.Events; -using UnityEngine; - -public class InputExample : MonoBehaviour -{ - public GameObject Prefab; - - private void Start() - { - TouchManager.Instance.TouchesBegan += touchBeganHandler; - } - - private void spawnPrefabAt(Vector2 position) - { - var obj = Instantiate(Prefab) as GameObject; - obj.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(position.x, position.y, 10)); - } - - private void touchBeganHandler(object sender, TouchEventArgs e) - { - foreach (var point in e.TouchPoints) - { - spawnPrefabAt(point.Position); - } - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample.cs.meta deleted file mode 100644 index 482a1293a..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 08e5fcd8b11b5bb4bb50d7e93ecb1ccc -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample_Ball.cs b/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample_Ball.cs deleted file mode 100644 index 77b0e74f5..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample_Ball.cs +++ /dev/null @@ -1,12 +0,0 @@ -using UnityEngine; - -public class InputExample_Ball : MonoBehaviour -{ - public float Speed = 1f; - - private void Update() - { - transform.localPosition += Vector3.forward*Speed*Time.deltaTime; - if (transform.localPosition.z > 100) Destroy(gameObject); - } -} \ No newline at end of file diff --git a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample_Ball.cs.meta b/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample_Ball.cs.meta deleted file mode 100644 index be4dc61de..000000000 --- a/Examples/General Examples/Assets/TouchScript/Examples/Input/Scripts/InputExample_Ball.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 02136d53ba543bd419944237532bed14 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/General Examples/Assets/TouchScript/Plugins.meta b/Examples/General Examples/Assets/TouchScript/Plugins.meta deleted file mode 100644 index b909ecd35..000000000 --- a/Examples/General Examples/Assets/TouchScript/Plugins.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 2c0399605434412489023ed07eb471c6 diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/OSCsharp.dll b/Examples/General Examples/Assets/TouchScript/Plugins/OSCsharp.dll deleted file mode 100755 index 6d9386c27..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Plugins/OSCsharp.dll and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/OSCsharp.dll.meta b/Examples/General Examples/Assets/TouchScript/Plugins/OSCsharp.dll.meta deleted file mode 100644 index 72abbfcce..000000000 --- a/Examples/General Examples/Assets/TouchScript/Plugins/OSCsharp.dll.meta +++ /dev/null @@ -1,6 +0,0 @@ -fileFormatVersion: 2 -guid: 710b2da019022fc49a1e7fbdf009cd6c -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: {} diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/TUIOsharp.dll b/Examples/General Examples/Assets/TouchScript/Plugins/TUIOsharp.dll deleted file mode 100755 index 5c2732346..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Plugins/TUIOsharp.dll and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/TUIOsharp.dll.meta b/Examples/General Examples/Assets/TouchScript/Plugins/TUIOsharp.dll.meta deleted file mode 100644 index 225b099eb..000000000 --- a/Examples/General Examples/Assets/TouchScript/Plugins/TUIOsharp.dll.meta +++ /dev/null @@ -1,6 +0,0 @@ -fileFormatVersion: 2 -guid: 79a4d43786071994f99fd36708a4fbb9 -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: {} diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll b/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll deleted file mode 100644 index c494f45b5..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll.meta b/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll.meta deleted file mode 100644 index 48c1f7b3a..000000000 --- a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 53d3dc02e71df20438406b9087fe1e5d -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: - TouchScript.InputSources.TuioInput: -1120 - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll b/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll deleted file mode 100644 index 72d2b6bb1..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll.meta b/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll.meta deleted file mode 100644 index e0a9bb545..000000000 --- a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: bb6056dc800c1084da7273cb9f23f5cb -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: - TouchScript.InputSources.Win7TouchInput: -1130 - TouchScript.InputSources.Win8TouchInput: -1140 - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.dll b/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.dll deleted file mode 100755 index 88616848b..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.dll and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.dll.meta b/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.dll.meta deleted file mode 100644 index fe16fdd5e..000000000 --- a/Examples/General Examples/Assets/TouchScript/Plugins/TouchScript.dll.meta +++ /dev/null @@ -1,14 +0,0 @@ -fileFormatVersion: 2 -guid: 20c2a163775f09b4cafa29b19d0c9204 -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: - TouchScript.GestureManager: -900 - TouchScript.InputSources.MobileInput: -1110 - TouchScript.InputSources.MouseInput: -1100 - TouchScript.InputSources.TuioInput: -1002 - TouchScript.InputSources.WMTouchInput: -1001 - TouchScript.InputSources.Win7TouchInput: -1002 - TouchScript.TouchManager: -1000 - userData: diff --git a/Examples/General Examples/Assets/TouchScript/Prefabs/Touch Debugger.prefab b/Examples/General Examples/Assets/TouchScript/Prefabs/Touch Debugger.prefab deleted file mode 100644 index 1cf972aad..000000000 --- a/Examples/General Examples/Assets/TouchScript/Prefabs/Touch Debugger.prefab +++ /dev/null @@ -1,77 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &100000 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 3 - m_Component: - - 4: {fileID: 400000} - - 114: {fileID: 11400000} - m_Layer: 0 - m_Name: Touch Debugger - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!1002 &100001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!4 &400000 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_LocalRotation: {x: 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} ---- !u!1002 &400001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!1002 &2000001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!1002 &8100001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!1002 &9200001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 923107734, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - TouchTexture: {fileID: 2800000, guid: f5c75ed8c6bed0f489d9003aa739aff7, type: 1} - FontColor: {r: 0, g: .958217144, b: 1, a: 1} ---- !u!1002 &11400001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!1002 &12400001 -EditorExtensionImpl: - serializedVersion: 6 ---- !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: 100000} - m_IsPrefabParent: 1 - m_IsExploded: 1 ---- !u!1002 &100100001 -EditorExtensionImpl: - serializedVersion: 6 diff --git a/Examples/General Examples/Assets/TouchScript/Textures.meta b/Examples/General Examples/Assets/TouchScript/Textures.meta deleted file mode 100644 index d1da8e99d..000000000 --- a/Examples/General Examples/Assets/TouchScript/Textures.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 70849dd78e6c598468ae02cc30525a37 diff --git a/Examples/General Examples/Assets/TouchScript/Textures/Touch.png b/Examples/General Examples/Assets/TouchScript/Textures/Touch.png deleted file mode 100644 index 3224c2dff..000000000 Binary files a/Examples/General Examples/Assets/TouchScript/Textures/Touch.png and /dev/null differ diff --git a/Examples/General Examples/Assets/TouchScript/Textures/Touch.png.meta b/Examples/General Examples/Assets/TouchScript/Textures/Touch.png.meta deleted file mode 100644 index f3d155a58..000000000 --- a/Examples/General Examples/Assets/TouchScript/Textures/Touch.png.meta +++ /dev/null @@ -1,33 +0,0 @@ -fileFormatVersion: 2 -guid: f5c75ed8c6bed0f489d9003aa739aff7 -TextureImporter: - 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: .25 - normalMapFilter: 0 - isReadable: 0 - grayScaleToAlpha: 0 - generateCubemap: 0 - textureFormat: -3 - maxTextureSize: 1024 - textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: 1 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - textureType: 5 - buildTargetSettings: [] diff --git a/Examples/General Examples/ProjectSettings/EditorBuildSettings.asset b/Examples/General Examples/ProjectSettings/EditorBuildSettings.asset deleted file mode 100644 index 50883e08d..000000000 --- a/Examples/General Examples/ProjectSettings/EditorBuildSettings.asset +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1045 &1 -EditorBuildSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Scenes: - - enabled: 1 - path: Assets/TouchScript/Examples/Advanced/Advanced.unity - - enabled: 1 - path: Assets/TouchScript/Examples/Basic/Basic.unity diff --git a/Examples/General Examples/ProjectSettings/EditorSettings.asset b/Examples/General Examples/ProjectSettings/EditorSettings.asset deleted file mode 100644 index be6d391a1..000000000 --- a/Examples/General Examples/ProjectSettings/EditorSettings.asset +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!159 &1 -EditorSettings: - m_ObjectHideFlags: 0 - serializedVersion: 1 - m_ExternalVersionControlSupport: 1 - m_SerializationMode: 2 - m_WebSecurityEmulationEnabled: 0 - m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d diff --git a/Examples/General Examples/ProjectSettings/GraphicsSettings.asset b/Examples/General Examples/ProjectSettings/GraphicsSettings.asset deleted file mode 100644 index 553f97d4b..000000000 --- a/Examples/General Examples/ProjectSettings/GraphicsSettings.asset +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!30 &1 -GraphicsSettings: - m_ObjectHideFlags: 0 - m_AlwaysIncludedShaders: - - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} diff --git a/Examples/General Examples/ProjectSettings/ProjectSettings.asset b/Examples/General Examples/ProjectSettings/ProjectSettings.asset deleted file mode 100644 index c006ba227..000000000 --- a/Examples/General Examples/ProjectSettings/ProjectSettings.asset +++ /dev/null @@ -1,204 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!129 &1 -PlayerSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - AndroidProfiler: 0 - defaultScreenOrientation: 0 - targetDevice: 2 - targetGlesGraphics: 1 - targetResolution: 0 - accelerometerFrequency: 60 - companyName: valyard - productName: General Examples - defaultCursor: {fileID: 0} - cursorHotspot: {x: 0, y: 0} - defaultScreenWidth: 1024 - defaultScreenHeight: 768 - defaultScreenWidthWeb: 960 - defaultScreenHeightWeb: 600 - m_RenderingPath: 1 - m_MobileRenderingPath: 1 - m_ActiveColorSpace: 0 - m_MTRendering: 1 - m_MobileMTRendering: 0 - m_UseDX11: 0 - iosShowActivityIndicatorOnLoading: -1 - androidShowActivityIndicatorOnLoading: -1 - displayResolutionDialog: 1 - allowedAutorotateToPortrait: 1 - allowedAutorotateToPortraitUpsideDown: 1 - allowedAutorotateToLandscapeRight: 1 - allowedAutorotateToLandscapeLeft: 1 - useOSAutorotation: 1 - use32BitDisplayBuffer: 0 - use24BitDepthBuffer: 0 - defaultIsFullScreen: 0 - defaultIsNativeResolution: 1 - runInBackground: 1 - captureSingleScreen: 0 - Override IPod Music: 0 - Prepare IOS For Recording: 0 - enableHWStatistics: 1 - usePlayerLog: 1 - stripPhysics: 0 - forceSingleInstance: 0 - resizableWindow: 0 - useMacAppStoreValidation: 0 - gpuSkinning: 1 - xboxPIXTextureCapture: 0 - xboxEnableAvatar: 0 - xboxEnableKinect: 0 - xboxEnableKinectAutoTracking: 0 - xboxEnableFitness: 0 - macFullscreenMode: 2 - xboxSpeechDB: 0 - xboxEnableHeadOrientation: 0 - xboxEnableGuest: 0 - wiiHio2Usage: -1 - wiiLoadingScreenRectPlacement: 0 - wiiLoadingScreenBackground: {r: 1, g: 1, b: 1, a: 1} - wiiLoadingScreenPeriod: 1000 - wiiLoadingScreenFileName: - wiiLoadingScreenRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_SupportedAspectRatios: - 4:3: 1 - 5:4: 1 - 16:10: 1 - 16:9: 1 - Others: 1 - iPhoneBundleIdentifier: ru.interactivelab.touchscript - productGUID: 0b2aa2b1c24cbc74ca2d27d2f6d0b8b4 - iPhoneBundleVersion: 1.0 - AndroidBundleVersionCode: 1 - AndroidMinSdkVersion: 9 - AndroidPreferredInstallLocation: 1 - aotOptions: - apiCompatibilityLevel: 2 - iPhoneStrippingLevel: 0 - iPhoneScriptCallOptimization: 0 - ForceInternetPermission: 0 - ForceSDCardPermission: 0 - CreateWallpaper: 0 - APKExpansionFiles: 0 - StripUnusedMeshComponents: 0 - iPhoneSdkVersion: 988 - iPhoneTargetOSVersion: 22 - uIPrerenderedIcon: 0 - uIRequiresPersistentWiFi: 0 - uIStatusBarHidden: 1 - uIExitOnSuspend: 1 - uIStatusBarStyle: 0 - iPhoneSplashScreen: {fileID: 0} - iPhoneHighResSplashScreen: {fileID: 0} - iPhoneTallHighResSplashScreen: {fileID: 0} - iPadPortraitSplashScreen: {fileID: 0} - iPadHighResPortraitSplashScreen: {fileID: 0} - iPadLandscapeSplashScreen: {fileID: 0} - iPadHighResLandscapeSplashScreen: {fileID: 0} - AndroidTargetDevice: 0 - AndroidSplashScreenScale: 0 - AndroidKeystoreName: - AndroidKeyaliasName: - resolutionDialogBanner: {fileID: 0} - m_BuildTargetIcons: - - m_BuildTarget: - m_Icons: - - m_Icon: {fileID: 0} - m_Size: 128 - m_BuildTargetBatching: [] - webPlayerTemplate: APPLICATION:Default - m_TemplateCustomTags: {} - wiiRegion: 1 - wiiGameCode: RABA - wiiGameVersion: - wiiCompanyCode: ZZ - wiiSupportsNunchuk: 0 - wiiSupportsClassicController: 0 - wiiSupportsBalanceBoard: 0 - wiiSupportsMotionPlus: 0 - wiiControllerCount: 1 - wiiFloatingPointExceptions: 0 - wiiScreenCrashDumps: 1 - XboxTitleId: - XboxImageXexPath: - XboxSpaPath: - XboxGenerateSpa: 0 - XboxDeployKinectResources: 0 - XboxSplashScreen: {fileID: 0} - xboxEnableSpeech: 0 - xboxAdditionalTitleMemorySize: 0 - xboxDeployKinectHeadOrientation: 0 - xboxDeployKinectHeadPosition: 0 - ps3TitleConfigPath: - ps3DLCConfigPath: - ps3ThumbnailPath: - ps3BackgroundPath: - ps3SoundPath: - ps3TrophyCommId: - ps3NpCommunicationPassphrase: - ps3TrophyPackagePath: - ps3BootCheckMaxSaveGameSizeKB: 128 - ps3TrophyCommSig: - ps3SaveGameSlots: 1 - ps3TrialMode: 0 - flashStrippingLevel: 2 - spritePackerPolicy: - scriptingDefineSymbols: {} - metroPackageName: General Examples - metroPackageLogo: - metroPackageVersion: - metroCertificatePath: - metroCertificatePassword: - metroCertificateSubject: - metroCertificateIssuer: - metroCertificateNotAfter: 0000000000000000 - metroApplicationDescription: General Examples - metroTileLogo: - metroTileWideLogo: - metroTileSmallLogo: - metroTileShortName: - metroCommandLineArgsFile: - metroTileShowName: 0 - metroTileForegroundText: 1 - metroTileBackgroundColor: {r: 0, g: 0, b: 0, a: 1} - metroSplashScreenImage: - metroSplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1} - metroSplashScreenUseBackgroundColor: 0 - metroCapabilities: {} - metroCompilationOverrides: 1 - blackberryDeviceAddress: - blackberryDevicePassword: - blackberryTokenPath: - blackberryTokenExires: - blackberryTokenAuthor: - blackberryTokenAuthorId: - blackberryAuthorId: - blackberryCskPassword: - blackberrySaveLogPath: - blackberryAuthorIdOveride: 0 - blackberrySharedPermissions: 0 - blackberryCameraPermissions: 0 - blackberryGPSPermissions: 0 - blackberryDeviceIDPermissions: 0 - blackberryMicrophonePermissions: 0 - blackberryGamepadSupport: 0 - blackberryBuildId: 0 - blackberryLandscapeSplashScreen: {fileID: 0} - blackberryPortraitSplashScreen: {fileID: 0} - blackberrySquareSplashScreen: {fileID: 0} - tizenProductDescription: - tizenProductURL: - tizenCertificatePath: - tizenCertificatePassword: - tizenSaveLogPath: - firstStreamedLevelWithResources: 0 - unityRebuildLibraryVersion: 9 - unityForwardCompatibleVersion: 39 - unityStandardAssetsVersion: 0 diff --git a/Examples/General Examples/ProjectSettings/QualitySettings.asset b/Examples/General Examples/ProjectSettings/QualitySettings.asset deleted file mode 100644 index 3dcb7cd26..000000000 --- a/Examples/General Examples/ProjectSettings/QualitySettings.asset +++ /dev/null @@ -1,123 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!47 &1 -QualitySettings: - m_ObjectHideFlags: 0 - serializedVersion: 5 - m_CurrentQuality: 5 - m_QualitySettings: - - serializedVersion: 2 - name: Fastest - pixelLightCount: 0 - shadows: 0 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 15 - blendWeights: 1 - textureQuality: 1 - anisotropicTextures: 0 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - vSyncCount: 0 - lodBias: .300000012 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Fast - pixelLightCount: 0 - shadows: 0 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 20 - blendWeights: 2 - textureQuality: 0 - anisotropicTextures: 0 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - vSyncCount: 0 - lodBias: .400000006 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Simple - pixelLightCount: 1 - shadows: 1 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 20 - blendWeights: 2 - textureQuality: 0 - anisotropicTextures: 1 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - vSyncCount: 0 - lodBias: .699999988 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Good - pixelLightCount: 2 - shadows: 2 - shadowResolution: 1 - shadowProjection: 1 - shadowCascades: 2 - shadowDistance: 40 - blendWeights: 2 - textureQuality: 0 - anisotropicTextures: 1 - antiAliasing: 0 - softParticles: 0 - softVegetation: 1 - vSyncCount: 1 - lodBias: 1 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Beautiful - pixelLightCount: 3 - shadows: 2 - shadowResolution: 2 - shadowProjection: 1 - shadowCascades: 2 - shadowDistance: 70 - blendWeights: 4 - textureQuality: 0 - anisotropicTextures: 2 - antiAliasing: 2 - softParticles: 1 - softVegetation: 1 - vSyncCount: 1 - lodBias: 1.5 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Fantastic - pixelLightCount: 4 - shadows: 2 - shadowResolution: 2 - shadowProjection: 1 - shadowCascades: 4 - shadowDistance: 150 - blendWeights: 4 - textureQuality: 0 - anisotropicTextures: 2 - antiAliasing: 8 - softParticles: 1 - softVegetation: 1 - vSyncCount: 1 - lodBias: 2 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - m_PerPlatformDefaultQuality: {} diff --git a/Examples/Scaleform Examples/.gitignore b/Examples/Scaleform Examples/.gitignore deleted file mode 100644 index 310d72921..000000000 --- a/Examples/Scaleform Examples/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -#Unity3d - -*.sln -*.csproj -*.userprefs -*.unityproj -/Library/ -/Temp/ -/Build/ -*.exe -*.pidb - -Assets/TouchScript/Plugins/*.bat -Assets/TouchScript/Plugins/*.bat.meta -Assets/TouchScript/Plugins/*.pdb.meta -Assets/TouchScript/Plugins/*.mdb.meta -Assets/TouchScript/Plugins/*.xml -Assets/TouchScript/Plugins/*.xml.meta -Assets/TouchScript/Editor/*.pdb.meta -Assets/TouchScript/Editor/*.mdb.meta -Library - -Assets/Plugins/* -Assets/Scripts/Scaleform/* -Assets/Scripts/Scaleform.meta \ No newline at end of file diff --git a/Examples/Scaleform Examples/Assets/Plugins.meta b/Examples/Scaleform Examples/Assets/Plugins.meta deleted file mode 100644 index 60a3070f0..000000000 --- a/Examples/Scaleform Examples/Assets/Plugins.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: c41ce8ed2a627f043b69c16719070f54 -folderAsset: yes -DefaultImporter: - userData: diff --git a/Examples/Scaleform Examples/Assets/StreamingAssets.meta b/Examples/Scaleform Examples/Assets/StreamingAssets.meta deleted file mode 100644 index 8c0bfaba8..000000000 --- a/Examples/Scaleform Examples/Assets/StreamingAssets.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 3066cab2dd0b03e48a1ac67e82211789 diff --git a/Examples/Scaleform Examples/Assets/StreamingAssets/TestScaleformProject.swf b/Examples/Scaleform Examples/Assets/StreamingAssets/TestScaleformProject.swf deleted file mode 100644 index 1d4644be4..000000000 Binary files a/Examples/Scaleform Examples/Assets/StreamingAssets/TestScaleformProject.swf and /dev/null differ diff --git a/Examples/Scaleform Examples/Assets/StreamingAssets/TestScaleformProject.swf.meta b/Examples/Scaleform Examples/Assets/StreamingAssets/TestScaleformProject.swf.meta deleted file mode 100644 index 13c90024f..000000000 --- a/Examples/Scaleform Examples/Assets/StreamingAssets/TestScaleformProject.swf.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5da96d90a33e92b469aedfafdce6c6bf diff --git a/Examples/Scaleform Examples/Assets/TouchScript.meta b/Examples/Scaleform Examples/Assets/TouchScript.meta deleted file mode 100644 index 821a122f8..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 57e9e18a0d26f8247b26acdbb6b76d6d diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Editor.meta b/Examples/Scaleform Examples/Assets/TouchScript/Editor.meta deleted file mode 100644 index c97d8da56..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Editor.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: f436f518569eeab46ac01cdaaac3b02f diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Editor/KeyWindow.cs b/Examples/Scaleform Examples/Assets/TouchScript/Editor/KeyWindow.cs deleted file mode 100644 index e6e073ee4..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Editor/KeyWindow.cs +++ /dev/null @@ -1,29 +0,0 @@ -using UnityEditor; -using UnityEngine; - -public class KeyWindow : EditorWindow -{ - - public SerializedProperty Property; - - private string key = ""; - - private void OnEnable() - { - title = "Set New Key"; - } - - public void OnGUI() - { - EditorGUILayout.BeginVertical(); - EditorGUILayout.LabelField("Set New Key:"); - key = EditorGUILayout.TextField(key); - if (GUILayout.Button("Set Key")) - { - Property.FindPropertyRelative("Key").stringValue = key; - Property.serializedObject.ApplyModifiedProperties(); - Close(); - } - EditorGUILayout.EndVertical(); - } -} \ No newline at end of file diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Editor/KeyWindow.cs.meta b/Examples/Scaleform Examples/Assets/TouchScript/Editor/KeyWindow.cs.meta deleted file mode 100644 index df90c06dc..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Editor/KeyWindow.cs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4c6812e77a37caf468392420bbe27ea3 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Editor/ScaleformKeyDrawer.cs b/Examples/Scaleform Examples/Assets/TouchScript/Editor/ScaleformKeyDrawer.cs deleted file mode 100644 index d323d5617..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Editor/ScaleformKeyDrawer.cs +++ /dev/null @@ -1,23 +0,0 @@ -using UnityEditor; -using UnityEngine; - -[CustomPropertyDrawer(typeof(ScaleformKey))] -public class ScaleformKeyDrawer : PropertyDrawer { - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return 16; - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - if (GUI.Button(position, "Set Key")) - { - var window = ScriptableObject.CreateInstance(); - window.Property = property; - //window.position = new Rect(Screen.width / 2, Screen.height / 2, 250, 50); - window.ShowAuxWindow(); - } - } -} - - diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Editor/ScaleformKeyDrawer.cs.meta b/Examples/Scaleform Examples/Assets/TouchScript/Editor/ScaleformKeyDrawer.cs.meta deleted file mode 100644 index 1dae5465f..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Editor/ScaleformKeyDrawer.cs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: fe843a83d3b62a74a8cd9cbfc2b06697 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll b/Examples/Scaleform Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll deleted file mode 100644 index f2a362ead..000000000 Binary files a/Examples/Scaleform Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll and /dev/null differ diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll.meta b/Examples/Scaleform Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll.meta deleted file mode 100644 index 0890360a1..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Editor/TouchScript.Editor.dll.meta +++ /dev/null @@ -1,6 +0,0 @@ -fileFormatVersion: 2 -guid: aa83d1ea05edf8748af6cae5aed422e4 -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: {} diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Examples.meta b/Examples/Scaleform Examples/Assets/TouchScript/Examples.meta deleted file mode 100644 index 7d411cce7..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Examples.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 4ad839071a4838c41be7c74e4860391f diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Examples/Basic Scaleform.meta b/Examples/Scaleform Examples/Assets/TouchScript/Examples/Basic Scaleform.meta deleted file mode 100644 index 3bcdf9ada..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Examples/Basic Scaleform.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 82e6b6d2adb02c24ea64811f2ccd53d5 diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Examples/Basic Scaleform/Basic Scaleform Example.unity b/Examples/Scaleform Examples/Assets/TouchScript/Examples/Basic Scaleform/Basic Scaleform Example.unity deleted file mode 100644 index 64063ee39..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Examples/Basic Scaleform/Basic Scaleform Example.unity +++ /dev/null @@ -1,297 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -SceneSettings: - m_ObjectHideFlags: 0 - m_PVSData: - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: .25 - backfaceThreshold: 100 ---- !u!104 &2 -RenderSettings: - m_Fog: 0 - m_FogColor: {r: .5, g: .5, b: .5, a: 1} - m_FogMode: 3 - m_FogDensity: .00999999978 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: .5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 0} - m_ObjectHideFlags: 0 ---- !u!127 &3 -LevelGameManager: - m_ObjectHideFlags: 0 ---- !u!157 &4 -LightmapSettings: - m_ObjectHideFlags: 0 - m_LightProbes: {fileID: 0} - m_Lightmaps: [] - m_LightmapsMode: 1 - m_BakedColorSpace: 0 - m_UseDualLightmapsInForward: 0 - m_LightmapEditorSettings: - m_Resolution: 50 - m_LastUsedResolution: 0 - m_TextureWidth: 1024 - m_TextureHeight: 1024 - m_BounceBoost: 1 - m_BounceIntensity: 1 - m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} - m_SkyLightIntensity: 0 - m_Quality: 0 - m_Bounces: 1 - m_FinalGatherRays: 1000 - m_FinalGatherContrastThreshold: .0500000007 - m_FinalGatherGradientThreshold: 0 - m_FinalGatherInterpolationPoints: 15 - m_AOAmount: 0 - m_AOMaxDistance: .100000001 - m_AOContrast: 1 - m_LODSurfaceMappingDistance: 1 - m_Padding: 0 - m_TextureCompression: 0 - m_LockAtlas: 0 ---- !u!196 &5 -NavMeshSettings: - m_ObjectHideFlags: 0 - m_BuildSettings: - agentRadius: .5 - agentHeight: 2 - agentSlope: 45 - agentClimb: .400000006 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - accuratePlacement: 0 - minRegionArea: 2 - widthInaccuracy: 16.666666 - heightInaccuracy: 10 - m_NavMesh: {fileID: 0} ---- !u!1 &542320026 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 542320027} - - 20: {fileID: 542320028} - - 92: {fileID: 542320030} - - 124: {fileID: 542320031} - - 81: {fileID: 542320029} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &542320027 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 542320026} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!20 &542320028 -Camera: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 542320026} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 100 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_HDR: 0 - m_OcclusionCulling: 1 ---- !u!81 &542320029 -AudioListener: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 542320026} - m_Enabled: 1 ---- !u!92 &542320030 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 542320026} - m_Enabled: 1 ---- !u!124 &542320031 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 542320026} - m_Enabled: 1 ---- !u!1 &955994189 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 955994190} - - 114: {fileID: 955994191} - m_Layer: 0 - m_Name: Scaleform - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &955994190 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 955994189} - m_LocalRotation: {x: 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} ---- !u!114 &955994191 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 955994189} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bacbba0db8fc7b04ba9521c693523f51, type: 3} - m_Name: - m_EditorClassIdentifier: - Name: Scaleform Layer - FlashMovieFile: TestScaleformProject.swf - ScaleMode: 0 - Key: - Key: - WhenToRender: 0 - Initialized: 0 - RenderableTexture: {fileID: 0} - UseBackgroundColor: 0 - BackgroundColor: - serializedVersion: 2 - rgba: 4278190080 - InitParams: - TheASVersion: 1 - InitVideo: 0 - InitSound: 1 - TheVideoSoundSystem: 0 - IsInitIME: 0 - IsProgLoading: 0 - ProgLoading: 0 - TheFontCacheConfig: - TextureHeight: 1024 - TextureWidth: 512 - MaxNumTextures: 1 - MaxSlotHeight: 48 - SetFontCacheParams: 1 - IsEnableDynamicCache: 1 - TheFontPackParams: - NominalSize: 32 - PadPixels: 2 - TextureWidth: 512 - TextureHeight: 512 - SetFontPackParams: 1 - GlyphCountLimit: 1000 - SoundVolume: 10 - IsMute: 0 ---- !u!1 &1958858705 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1958858706} - - 114: {fileID: 1958858707} - - 114: {fileID: 1958858708} - - 114: {fileID: 1958858709} - m_Layer: 0 - m_Name: TouchScript - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1958858706 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1958858705} - m_LocalRotation: {x: 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} ---- !u!114 &1958858707 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1958858705} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -409488130, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: - liveDpi: 72 - editorDpi: 72 - layers: [] ---- !u!114 &1958858708 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1958858705} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1254801617, guid: 059153ab8995a424d965759f3c6b1d6e, type: 3} - m_Name: - m_EditorClassIdentifier: - TuioPort: 3333 - MovementThreshold: .100000001 ---- !u!114 &1958858709 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1958858705} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -102971247, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Examples/Basic Scaleform/Basic Scaleform Example.unity.meta b/Examples/Scaleform Examples/Assets/TouchScript/Examples/Basic Scaleform/Basic Scaleform Example.unity.meta deleted file mode 100644 index c4ce62343..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Examples/Basic Scaleform/Basic Scaleform Example.unity.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: d8ae9a50955afeb48b9fb61c3baa883b diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins.meta b/Examples/Scaleform Examples/Assets/TouchScript/Plugins.meta deleted file mode 100644 index b909ecd35..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Plugins.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 2c0399605434412489023ed07eb471c6 diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/OSCsharp.dll b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/OSCsharp.dll deleted file mode 100644 index 6d9386c27..000000000 Binary files a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/OSCsharp.dll and /dev/null differ diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/OSCsharp.dll.meta b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/OSCsharp.dll.meta deleted file mode 100644 index 72abbfcce..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/OSCsharp.dll.meta +++ /dev/null @@ -1,6 +0,0 @@ -fileFormatVersion: 2 -guid: 710b2da019022fc49a1e7fbdf009cd6c -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: {} diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TUIOsharp.dll b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TUIOsharp.dll deleted file mode 100644 index 5c2732346..000000000 Binary files a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TUIOsharp.dll and /dev/null differ diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TUIOsharp.dll.meta b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TUIOsharp.dll.meta deleted file mode 100644 index 225b099eb..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TUIOsharp.dll.meta +++ /dev/null @@ -1,6 +0,0 @@ -fileFormatVersion: 2 -guid: 79a4d43786071994f99fd36708a4fbb9 -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: {} diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll deleted file mode 100644 index c494f45b5..000000000 Binary files a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll and /dev/null differ diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll.meta b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll.meta deleted file mode 100644 index 932a8ea2b..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Pro.dll.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 059153ab8995a424d965759f3c6b1d6e -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: - TouchScript.InputSources.TuioInput: -1300 diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll deleted file mode 100644 index 72d2b6bb1..000000000 Binary files a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll and /dev/null differ diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll.meta b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll.meta deleted file mode 100644 index e89378db9..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.Windows.dll.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: d2a8dbf4b1f6dbb45879dedc8f1bb951 -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: {} - userData: diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.dll b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.dll deleted file mode 100644 index 88616848b..000000000 Binary files a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.dll and /dev/null differ diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.dll.meta b/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.dll.meta deleted file mode 100644 index 604ecb792..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Plugins/TouchScript.dll.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 20c2a163775f09b4cafa29b19d0c9204 -MonoAssemblyImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: - TouchScript.InputSources.MobileInput: -1200 - TouchScript.InputSources.MouseInput: -1003 - TouchScript.InputSources.TuioInput: -1002 - TouchScript.InputSources.WMTouchInput: -1001 - TouchScript.InputSources.Win7TouchInput: -1100 - TouchScript.TouchManager: -1000 diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Prefabs.meta b/Examples/Scaleform Examples/Assets/TouchScript/Prefabs.meta deleted file mode 100644 index e75d22844..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Prefabs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 311faee9abf6e594f8f28c9efef101bf diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Prefabs/Debug Camera.prefab b/Examples/Scaleform Examples/Assets/TouchScript/Prefabs/Debug Camera.prefab deleted file mode 100644 index a2125625f..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Prefabs/Debug Camera.prefab +++ /dev/null @@ -1,130 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &100000 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 3 - m_Component: - - 4: {fileID: 400000} - - 20: {fileID: 2000000} - - 124: {fileID: 12400000} - - 92: {fileID: 9200000} - - 81: {fileID: 8100000} - - 114: {fileID: 11400000} - m_Layer: 0 - m_Name: Debug Camera - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!1002 &100001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!4 &400000 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -1.62920685e-07} - m_LocalPosition: {x: 1000, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} ---- !u!1002 &400001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!20 &2000000 -Camera: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 0 - serializedVersion: 2 - m_ClearFlags: 3 - m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 100 - m_Depth: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_HDR: 0 ---- !u!1002 &2000001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!81 &8100000 -AudioListener: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 0 ---- !u!1002 &8100001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!92 &9200000 -Behaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 ---- !u!1002 &9200001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 923107734, guid: 20c2a163775f09b4cafa29b19d0c9204, type: 1} - m_Name: - TouchTexture: {fileID: 2800000, guid: a782b8a3584ec5d4bb85a19fd8354d2d, type: 1} - FontColor: {r: 0, g: .958217144, b: 1, a: 1} ---- !u!1002 &11400001 -EditorExtensionImpl: - serializedVersion: 6 ---- !u!124 &12400000 -Behaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 100000} - m_Enabled: 0 ---- !u!1002 &12400001 -EditorExtensionImpl: - serializedVersion: 6 ---- !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: 100000} - m_IsPrefabParent: 1 - m_IsExploded: 1 ---- !u!1002 &100100001 -EditorExtensionImpl: - serializedVersion: 6 diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Prefabs/Debug Camera.prefab.meta b/Examples/Scaleform Examples/Assets/TouchScript/Prefabs/Debug Camera.prefab.meta deleted file mode 100644 index dace82ba4..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Prefabs/Debug Camera.prefab.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: c0dc5781cae4a6348b42ea6b818a3f9c diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Scripts.meta b/Examples/Scaleform Examples/Assets/TouchScript/Scripts.meta deleted file mode 100644 index d6c08e78a..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Scripts.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 114459c5f63c24544ad84f7ad0317bd6 diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform.meta b/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform.meta deleted file mode 100644 index c16f5bbec..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: c8f5dd27ffbb85c4a893f7995162b109 diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformKey.cs b/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformKey.cs deleted file mode 100644 index fb6b363a1..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformKey.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -[Serializable] -public class ScaleformKey -{ - - public string Key = ""; - -} diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformKey.cs.meta b/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformKey.cs.meta deleted file mode 100644 index 5513580bb..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformKey.cs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9b79317e6da12b54494ea511a6b82bb1 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformLayer.cs b/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformLayer.cs deleted file mode 100644 index b5c656df0..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformLayer.cs +++ /dev/null @@ -1,264 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using Scaleform; -using Scaleform.GFx; -using TouchScript; -using UnityEngine; -using System.Collections; -using TouchScript.Layers; - -public class ScaleformLayer : TouchLayer -{ - public enum RenderTime - { - EndOfFrame = 0, - PreCamera, - PostCamera - }; - - public string FlashMovieFile = "main.swf"; - public ScaleModeType ScaleMode = ScaleModeType.SM_NoScale; - public ScaleformKey Key = new ScaleformKey(); - - // When to trigger Scaleform rendering during the frame. - public RenderTime WhenToRender = RenderTime.EndOfFrame; - - // true if the SFCamera has been initialized; false otherwise. - public bool Initialized = false; - public RenderTexture RenderableTexture = null; - public bool UseBackgroundColor = false; - public Color32 BackgroundColor = new Color32(0, 0, 0, 255); - public SFInitParams InitParams; - - public ScaleformMovie FlashInterface - { - get { return Movie; } - } - - public SFManager SFManager - { - get { return SFMgr; } - } - - // Reference to the SFManager that manages all SFMovies. - protected static SFManager SFMgr; - protected static bool InitOnce = false; - protected ScaleformMovie Movie; - - #region Unity - - protected virtual void Start() - { - if (!Application.isPlaying) return; - - SF_SetKey(Key.Key); - - //For GL based platforms - Sets a number to use for Unity specific texture management. Adjust this number if - //you start to experience black and/or missing textures. - SF_SetTextureCount(500); - - DontDestroyOnLoad(this.gameObject); - SFMgr = new SFManager(InitParams); - if (SFMgr.IsSFInitialized()) - { - InitParams.Print(); - GL.IssuePluginEvent(0); - GL.InvalidateState(); - } - - Movie = createMovie(); - - if (WhenToRender == RenderTime.EndOfFrame) StartCoroutine("CallPluginAtEndOfFrame"); - } - - protected virtual void Update() - { - if (!Application.isPlaying) return; - - if (SFMgr != null) - { - SFMgr.ProcessCommands(); - SFMgr.Update(); - SFMgr.Advance(Time.deltaTime); - } - } - - // Used with PreCamera render layers, pumps Scaleform once prior to the Camera instance rendering its contents - protected virtual void OnPreRender() - { - if (!Application.isPlaying) return; - if (WhenToRender != RenderTime.PreCamera) return; - - PumpPluginRender(); - } - - // Used with PostCamera render layers, pumps Scaleform once after the Camera instance renders its contents - protected virtual void OnPostRender() - { - if (!Application.isPlaying) return; - if (WhenToRender != RenderTime.PostCamera) return; - - PumpPluginRender(); - } - - protected override void OnDestroy() - { - base.OnDestroy(); - if (!Application.isPlaying) return; - // This is used to initiate RenderHALShutdown, which must take place on the render thread. - GL.IssuePluginEvent(2); - SF_Uninit(); - } - - protected virtual void OnApplicationQuit() - { - /* - // This is used to initiate RenderHALShutdown, which must take place on the render thread. - #if UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX || UNITY_EDITOR - GL.IssuePluginEvent(2); - #endif - SF_Uninit(); - */ - } - - #endregion - - #region TouchLayer overrides - - protected override void setName() - { - Name = "Scaleform Layer"; - } - - protected override LayerHitResult beginTouch(TouchPoint touch) - { - var result = Movie.BeginTouch(touch.Id, touch.Position.x, touch.Position.y); - return (LayerHitResult)result; - } - - protected override void moveTouch(TouchPoint touch) - { - Movie.MoveTouch(touch.Id, touch.Position.x, touch.Position.y); - } - - protected override void endTouch(TouchPoint touch) - { - Movie.EndTouch(touch.Id); - } - - protected override void cancelTouch(TouchPoint touch) - { - Movie.CancelTouch(touch.Id); - } - - #endregion - - // Issues a call to perform Scaleform rendering. Rendering is multithreaded on windows and single threaded on iOS/Android - private void PumpPluginRender() - { - GL.IssuePluginEvent(1); - } - - // Used with EndOfFrame render layers, pumps Scaleform once per frame at the end of the frame - protected IEnumerator CallPluginAtEndOfFrame() - { - while (true) - { - yield return new WaitForEndOfFrame(); - PumpPluginRender(); - } - } - - protected virtual ScaleformMovie createMovie() - { - SFMovieCreationParams creationParams = CreateMovieCreationParams(FlashMovieFile); - creationParams.TheScaleModeType = ScaleMode; - creationParams.IsInitFirstFrame = false; - return new ScaleformMovie(this, SFMgr, creationParams); - } - - public static void GetViewport(ref int ox, ref int oy, ref int width, ref int height) - { - width = Screen.width; - height = Screen.height; - ox = 0; - oy = 0; - // Note that while using D3D renderer, the tool bar (that contains "Maximize on Play" text) is part of - // the viewport, while using GL renderer, it's not. So there should be a further condition here depending on - // what type of renderer is being used, however I couldn't find a macro for achieving that. -#if UNITY_EDITOR - oy = 24; -#endif - } - - public static SFMovieCreationParams CreateRTTMovieCreationParams(string swfName, int depth, int RTToX, int RTToY, RenderTexture texture, Color32 clearColor) - { - // Used for Android only - Int32 length = 0; - IntPtr pDataUnManaged = IntPtr.Zero; - String SwfPath = SFManager.GetScaleformContentPath() + swfName; - - return new SFMovieCreationParams(SwfPath, depth, RTToX, RTToY, texture.width, texture.height, pDataUnManaged, length, false, texture, clearColor, true, ScaleModeType.SM_ShowAll, true); - } - - public static SFMovieCreationParams CreateMovieCreationParams(string swfName, int depth = 1) - { - return CreateMovieCreationParams(swfName, depth, new Color32(0, 0, 0, 0), false); - } - - public static SFMovieCreationParams CreateMovieCreationParams(string swfName, int depth, byte bgAlpha) - { - return CreateMovieCreationParams(swfName, depth, new Color32(0, 0, 0, bgAlpha), false); - } - - public static SFMovieCreationParams CreateMovieCreationParams(string swfName, int depth, Color32 bgColor, bool overrideBackgroundColor) - { - Int32 length = 0; - - int ox = 0; - int oy = 0; - int width = 0; - int height = 0; - - IntPtr pDataUnManaged = IntPtr.Zero; - String swfPath = SFManager.GetScaleformContentPath() + swfName; - GetViewport(ref ox, ref oy, ref width, ref height); - return new SFMovieCreationParams(swfPath, depth, ox, oy, width, height, pDataUnManaged, length, false, bgColor, overrideBackgroundColor, ScaleModeType.SM_ShowAll, true); - } - - public SFMovieCreationParams CreateMovieCreationParams(string swfName, int depth, Byte[] swfBytes, Color32 bgColor, bool overrideBackgroundColor) - { - int ox = 0; - int oy = 0; - int width = 0; - int height = 0; - - GetViewport(ref ox, ref oy, ref width, ref height); - - Int32 length = 0; - IntPtr pDataUnManaged = IntPtr.Zero; - - if (swfBytes != null) - length = swfBytes.Length; - - if (length > 0) - { - pDataUnManaged = new IntPtr(); - pDataUnManaged = Marshal.AllocCoTaskMem((int)length); - Marshal.Copy(swfBytes, 0, pDataUnManaged, (int)length); - } - - String swfPath = SFManager.GetScaleformContentPath() + swfName; - - return new SFMovieCreationParams(swfPath, depth, ox, oy, width, height, pDataUnManaged, length, false, bgColor, overrideBackgroundColor, ScaleModeType.SM_ShowAll, true); - } - - [DllImport("libgfxunity3d")] - private static extern void SF_Uninit(); - - [DllImport("libgfxunity3d")] - public static extern void SF_SetKey(String key); - - [DllImport("libgfxunity3d")] - public static extern void SF_SetTextureCount(int textureCount); -} \ No newline at end of file diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformLayer.cs.meta b/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformLayer.cs.meta deleted file mode 100644 index 88999592f..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformLayer.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: bacbba0db8fc7b04ba9521c693523f51 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformMovie.cs b/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformMovie.cs deleted file mode 100644 index 130c5ddde..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformMovie.cs +++ /dev/null @@ -1,65 +0,0 @@ -using Scaleform; -using Scaleform.GFx; -using UnityEngine; - -public class ScaleformMovie : Movie -{ - - public ScaleformLayer Layer { get; private set; } - public SFManager SFManager { get; private set; } - public Value SWF { get; private set; } - - public ScaleformMovie(ScaleformLayer layer, SFManager sfmgr, SFMovieCreationParams creationParams) : - base(sfmgr, creationParams) - { - Layer = layer; - SFManager = sfmgr; - - SetFocus(true); - } - - public int BeginTouch(int id, float x, float y) - { - var result = Invoke("root.Scaleform_beginTouch", id, x / Screen.width, 1 - y / Screen.height); - if (result != null && result.IsInt()) return result.GetInt(); - return 0; - } - - public void MoveTouch(int id, float x, float y) - { - Invoke("root.Scaleform_moveTouch", id, x / Screen.width, 1 - y / Screen.height); - } - - public void EndTouch(int id) - { - Invoke("root.Scaleform_endTouch", id); - } - - public void CancelTouch(int id) - { - Invoke("root.Scaleform_cancelTouch", id); - } - - public override bool AcceptMouseEvents() - { - // we route all input data from Unity - return false; - } - - public override bool AcceptTouchEvents() - { - // we route all input data from Unity - return false; - } - - #region Scaleform callbacks - - public void RegisterScaleformInput(Value swf) - { - Debug.Log("Got swf reference from Scaleform movie."); - - SWF = swf; - } - - #endregion -} \ No newline at end of file diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformMovie.cs.meta b/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformMovie.cs.meta deleted file mode 100644 index 661fed2ad..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Scripts/Scaleform/ScaleformMovie.cs.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 90aebd58ed0b0c54d97baeaa88d3e090 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Textures.meta b/Examples/Scaleform Examples/Assets/TouchScript/Textures.meta deleted file mode 100644 index d1da8e99d..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Textures.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 70849dd78e6c598468ae02cc30525a37 diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Textures/Touch.png b/Examples/Scaleform Examples/Assets/TouchScript/Textures/Touch.png deleted file mode 100644 index 3224c2dff..000000000 Binary files a/Examples/Scaleform Examples/Assets/TouchScript/Textures/Touch.png and /dev/null differ diff --git a/Examples/Scaleform Examples/Assets/TouchScript/Textures/Touch.png.meta b/Examples/Scaleform Examples/Assets/TouchScript/Textures/Touch.png.meta deleted file mode 100644 index 73e24a02b..000000000 --- a/Examples/Scaleform Examples/Assets/TouchScript/Textures/Touch.png.meta +++ /dev/null @@ -1,33 +0,0 @@ -fileFormatVersion: 2 -guid: f5c75ed8c6bed0f489d9003aa739aff7 -TextureImporter: - 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: .25 - normalMapFilter: 0 - isReadable: 0 - grayScaleToAlpha: 0 - generateCubemap: 0 - textureFormat: -1 - maxTextureSize: 1024 - textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: -1 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - textureType: -1 - buildTargetSettings: [] diff --git a/Examples/Scaleform Examples/ProjectSettings/EditorSettings.asset b/Examples/Scaleform Examples/ProjectSettings/EditorSettings.asset deleted file mode 100644 index be6d391a1..000000000 --- a/Examples/Scaleform Examples/ProjectSettings/EditorSettings.asset +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!159 &1 -EditorSettings: - m_ObjectHideFlags: 0 - serializedVersion: 1 - m_ExternalVersionControlSupport: 1 - m_SerializationMode: 2 - m_WebSecurityEmulationEnabled: 0 - m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d diff --git a/Examples/Scaleform Examples/ProjectSettings/GraphicsSettings.asset b/Examples/Scaleform Examples/ProjectSettings/GraphicsSettings.asset deleted file mode 100644 index 553f97d4b..000000000 --- a/Examples/Scaleform Examples/ProjectSettings/GraphicsSettings.asset +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!30 &1 -GraphicsSettings: - m_ObjectHideFlags: 0 - m_AlwaysIncludedShaders: - - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} diff --git a/Examples/Scaleform Examples/ProjectSettings/ProjectSettings.asset b/Examples/Scaleform Examples/ProjectSettings/ProjectSettings.asset deleted file mode 100644 index 834ae7470..000000000 --- a/Examples/Scaleform Examples/ProjectSettings/ProjectSettings.asset +++ /dev/null @@ -1,204 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!129 &1 -PlayerSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - AndroidProfiler: 0 - defaultScreenOrientation: 0 - targetDevice: 2 - targetGlesGraphics: 1 - targetResolution: 0 - accelerometerFrequency: 60 - companyName: valyard - productName: General Examples - defaultCursor: {fileID: 0} - cursorHotspot: {x: 0, y: 0} - defaultScreenWidth: 1280 - defaultScreenHeight: 800 - defaultScreenWidthWeb: 960 - defaultScreenHeightWeb: 600 - m_RenderingPath: 1 - m_MobileRenderingPath: 1 - m_ActiveColorSpace: 0 - m_MTRendering: 1 - m_MobileMTRendering: 0 - m_UseDX11: 0 - iosShowActivityIndicatorOnLoading: -1 - androidShowActivityIndicatorOnLoading: -1 - displayResolutionDialog: 1 - allowedAutorotateToPortrait: 1 - allowedAutorotateToPortraitUpsideDown: 1 - allowedAutorotateToLandscapeRight: 1 - allowedAutorotateToLandscapeLeft: 1 - useOSAutorotation: 1 - use32BitDisplayBuffer: 0 - use24BitDepthBuffer: 0 - defaultIsFullScreen: 0 - defaultIsNativeResolution: 1 - runInBackground: 1 - captureSingleScreen: 0 - Override IPod Music: 0 - Prepare IOS For Recording: 0 - enableHWStatistics: 1 - usePlayerLog: 1 - stripPhysics: 0 - forceSingleInstance: 0 - resizableWindow: 0 - useMacAppStoreValidation: 0 - gpuSkinning: 1 - xboxPIXTextureCapture: 0 - xboxEnableAvatar: 0 - xboxEnableKinect: 0 - xboxEnableKinectAutoTracking: 0 - xboxEnableFitness: 0 - macFullscreenMode: 2 - xboxSpeechDB: 0 - xboxEnableHeadOrientation: 0 - xboxEnableGuest: 0 - wiiHio2Usage: -1 - wiiLoadingScreenRectPlacement: 0 - wiiLoadingScreenBackground: {r: 1, g: 1, b: 1, a: 1} - wiiLoadingScreenPeriod: 1000 - wiiLoadingScreenFileName: - wiiLoadingScreenRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_SupportedAspectRatios: - 4:3: 1 - 5:4: 1 - 16:10: 1 - 16:9: 1 - Others: 1 - iPhoneBundleIdentifier: com.Company.ProductName - productGUID: edb53ce9aeae28242bacfb54ef4b30dc - iPhoneBundleVersion: 1.0 - AndroidBundleVersionCode: 1 - AndroidMinSdkVersion: 9 - AndroidPreferredInstallLocation: 1 - aotOptions: - apiCompatibilityLevel: 2 - iPhoneStrippingLevel: 0 - iPhoneScriptCallOptimization: 0 - ForceInternetPermission: 0 - ForceSDCardPermission: 0 - CreateWallpaper: 0 - APKExpansionFiles: 0 - StripUnusedMeshComponents: 0 - iPhoneSdkVersion: 988 - iPhoneTargetOSVersion: 10 - uIPrerenderedIcon: 0 - uIRequiresPersistentWiFi: 0 - uIStatusBarHidden: 1 - uIExitOnSuspend: 0 - uIStatusBarStyle: 0 - iPhoneSplashScreen: {fileID: 0} - iPhoneHighResSplashScreen: {fileID: 0} - iPhoneTallHighResSplashScreen: {fileID: 0} - iPadPortraitSplashScreen: {fileID: 0} - iPadHighResPortraitSplashScreen: {fileID: 0} - iPadLandscapeSplashScreen: {fileID: 0} - iPadHighResLandscapeSplashScreen: {fileID: 0} - AndroidTargetDevice: 0 - AndroidSplashScreenScale: 0 - AndroidKeystoreName: - AndroidKeyaliasName: - resolutionDialogBanner: {fileID: 0} - m_BuildTargetIcons: - - m_BuildTarget: - m_Icons: - - m_Icon: {fileID: 0} - m_Size: 128 - m_BuildTargetBatching: [] - webPlayerTemplate: APPLICATION:Default - m_TemplateCustomTags: {} - wiiRegion: 1 - wiiGameCode: RABA - wiiGameVersion: - wiiCompanyCode: ZZ - wiiSupportsNunchuk: 0 - wiiSupportsClassicController: 0 - wiiSupportsBalanceBoard: 0 - wiiSupportsMotionPlus: 0 - wiiControllerCount: 1 - wiiFloatingPointExceptions: 0 - wiiScreenCrashDumps: 1 - XboxTitleId: - XboxImageXexPath: - XboxSpaPath: - XboxGenerateSpa: 0 - XboxDeployKinectResources: 0 - XboxSplashScreen: {fileID: 0} - xboxEnableSpeech: 0 - xboxAdditionalTitleMemorySize: 0 - xboxDeployKinectHeadOrientation: 0 - xboxDeployKinectHeadPosition: 0 - ps3TitleConfigPath: - ps3DLCConfigPath: - ps3ThumbnailPath: - ps3BackgroundPath: - ps3SoundPath: - ps3TrophyCommId: - ps3NpCommunicationPassphrase: - ps3TrophyPackagePath: - ps3BootCheckMaxSaveGameSizeKB: 128 - ps3TrophyCommSig: - ps3SaveGameSlots: 1 - ps3TrialMode: 0 - flashStrippingLevel: 2 - spritePackerPolicy: - scriptingDefineSymbols: {} - metroPackageName: Scaleform Examples - metroPackageLogo: - metroPackageVersion: - metroCertificatePath: - metroCertificatePassword: - metroCertificateSubject: - metroCertificateIssuer: - metroCertificateNotAfter: 0000000000000000 - metroApplicationDescription: Scaleform Examples - metroTileLogo: - metroTileWideLogo: - metroTileSmallLogo: - metroTileShortName: - metroCommandLineArgsFile: - metroTileShowName: 0 - metroTileForegroundText: 1 - metroTileBackgroundColor: {r: 0, g: 0, b: 0, a: 1} - metroSplashScreenImage: - metroSplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1} - metroSplashScreenUseBackgroundColor: 0 - metroCapabilities: {} - metroCompilationOverrides: 1 - blackberryDeviceAddress: - blackberryDevicePassword: - blackberryTokenPath: - blackberryTokenExires: - blackberryTokenAuthor: - blackberryTokenAuthorId: - blackberryAuthorId: - blackberryCskPassword: - blackberrySaveLogPath: - blackberryAuthorIdOveride: 0 - blackberrySharedPermissions: 0 - blackberryCameraPermissions: 0 - blackberryGPSPermissions: 0 - blackberryDeviceIDPermissions: 0 - blackberryMicrophonePermissions: 0 - blackberryGamepadSupport: 0 - blackberryBuildId: 0 - blackberryLandscapeSplashScreen: {fileID: 0} - blackberryPortraitSplashScreen: {fileID: 0} - blackberrySquareSplashScreen: {fileID: 0} - tizenProductDescription: - tizenProductURL: - tizenCertificatePath: - tizenCertificatePassword: - tizenSaveLogPath: - firstStreamedLevelWithResources: 0 - unityRebuildLibraryVersion: 9 - unityForwardCompatibleVersion: 39 - unityStandardAssetsVersion: 0 diff --git a/Examples/Scaleform Examples/ProjectSettings/QualitySettings.asset b/Examples/Scaleform Examples/ProjectSettings/QualitySettings.asset deleted file mode 100644 index bc273ce15..000000000 --- a/Examples/Scaleform Examples/ProjectSettings/QualitySettings.asset +++ /dev/null @@ -1,123 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!47 &1 -QualitySettings: - m_ObjectHideFlags: 0 - serializedVersion: 5 - m_CurrentQuality: 3 - m_QualitySettings: - - serializedVersion: 2 - name: Fastest - pixelLightCount: 0 - shadows: 0 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 15 - blendWeights: 1 - textureQuality: 1 - anisotropicTextures: 0 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - vSyncCount: 0 - lodBias: .300000012 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Fast - pixelLightCount: 0 - shadows: 0 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 20 - blendWeights: 2 - textureQuality: 0 - anisotropicTextures: 0 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - vSyncCount: 0 - lodBias: .400000006 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Simple - pixelLightCount: 1 - shadows: 1 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 20 - blendWeights: 2 - textureQuality: 0 - anisotropicTextures: 1 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - vSyncCount: 0 - lodBias: .699999988 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Good - pixelLightCount: 2 - shadows: 2 - shadowResolution: 1 - shadowProjection: 1 - shadowCascades: 2 - shadowDistance: 40 - blendWeights: 2 - textureQuality: 0 - anisotropicTextures: 1 - antiAliasing: 0 - softParticles: 0 - softVegetation: 1 - vSyncCount: 1 - lodBias: 1 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Beautiful - pixelLightCount: 3 - shadows: 2 - shadowResolution: 2 - shadowProjection: 1 - shadowCascades: 2 - shadowDistance: 70 - blendWeights: 4 - textureQuality: 0 - anisotropicTextures: 2 - antiAliasing: 2 - softParticles: 1 - softVegetation: 1 - vSyncCount: 1 - lodBias: 1.5 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Fantastic - pixelLightCount: 4 - shadows: 2 - shadowResolution: 2 - shadowProjection: 1 - shadowCascades: 4 - shadowDistance: 150 - blendWeights: 4 - textureQuality: 0 - anisotropicTextures: 2 - antiAliasing: 2 - softParticles: 1 - softVegetation: 1 - vSyncCount: 1 - lodBias: 2 - maximumLODLevel: 0 - particleRaycastBudget: 4 - excludedTargetPlatforms: [] - m_PerPlatformDefaultQuality: {} diff --git a/Examples/Scaleform Examples/README.txt b/Examples/Scaleform Examples/README.txt deleted file mode 100644 index 0a259a737..000000000 --- a/Examples/Scaleform Examples/README.txt +++ /dev/null @@ -1,2 +0,0 @@ -To run Scaleform examples you must have a licensed Scaleform runtime. -Put DLLs and c# scripts in Plugins folder. \ No newline at end of file diff --git a/External/.gitignore b/External/.gitignore new file mode 100644 index 000000000..0ba588594 --- /dev/null +++ b/External/.gitignore @@ -0,0 +1 @@ +/*.unitypackage \ No newline at end of file diff --git a/External/TUIO/Build/build.sh b/External/TUIO/Build/build.sh new file mode 100755 index 000000000..08d1c87df --- /dev/null +++ b/External/TUIO/Build/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +printf "\n\e[1;36mBuilding External/TUIOsharp.\e[0;39m\n" + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT=$(cd "$DIR/../TUIOsharp" && pwd) +LIBS=$(cd "$DIR/../../../Source/Assets/TouchScript/Modules/TUIO/Libraries/" && pwd) +SLN="$PROJECT/TUIOsharp.sln" + +"$DIR/../../../Build/utils/build_solution.sh" $SLN "Any CPU" +cp "$PROJECT/TUIOsharp/bin/Release/TUIOsharp.dll" "$LIBS" +cp "$PROJECT/TUIOsharp/bin/Release/OSCsharp.dll" "$LIBS" \ No newline at end of file diff --git a/External/TUIO/TUIOsharp b/External/TUIO/TUIOsharp new file mode 160000 index 000000000..533d66591 --- /dev/null +++ b/External/TUIO/TUIOsharp @@ -0,0 +1 @@ +Subproject commit 533d665911b0485048f025bb8fcb815256e6616d diff --git a/External/WindowsTouch/.gitignore b/External/WindowsTouch/.gitignore new file mode 100644 index 000000000..ca07639e2 --- /dev/null +++ b/External/WindowsTouch/.gitignore @@ -0,0 +1,250 @@ +#OS junk files +[Tt]humbs.db +*.DS_Store + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +*.VC.db \ No newline at end of file diff --git a/External/WindowsTouch/Build/build.sh b/External/WindowsTouch/Build/build.sh new file mode 100755 index 000000000..84795c22d --- /dev/null +++ b/External/WindowsTouch/Build/build.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +printf "\n\e[1;36mBuilding External/WindowsTouch.\e[0;39m\n" + +UNAME=$(uname -s) +if [ "${UNAME:0:10}" != "MINGW32_NT" ] && [ "${UNAME:0:10}" != "MINGW64_NT" ]; then + printf "\e[31mNeed to build WindowsTouch.dll on Windows!\e[39m\n" + exit 0 +fi + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT=$(cd "$DIR/../" && pwd) +SLN="$PROJECT/WindowsTouch.sln" + +"$DIR/../../../Build/utils/build_solution.sh" $SLN x86 +"$DIR/../../../Build/utils/build_solution.sh" $SLN x64 \ No newline at end of file diff --git a/External/WindowsTouch/WindowsTouch.cpp b/External/WindowsTouch/WindowsTouch.cpp new file mode 100644 index 000000000..9bc7fc95f --- /dev/null +++ b/External/WindowsTouch/WindowsTouch.cpp @@ -0,0 +1,190 @@ +/* +* @author Valentin Simonov / http://va.lent.in/ +*/ + +#include "WindowsTouch.h" + +extern "C" +{ + + void __stdcall Init(TOUCH_API api, LogFuncPtr logFunc, PointerDelegatePtr delegate) + { + _log = logFunc; + _delegate = delegate; + _api = api; + + _currentWindow = FindWindowA("UnityWndClass", NULL); + if (api == WIN8) + { + HINSTANCE h = LoadLibrary(TEXT("user32.dll")); + GetPointerInfo = (GET_POINTER_INFO) GetProcAddress(h, "GetPointerInfo"); + GetPointerTouchInfo = (GET_POINTER_TOUCH_INFO) GetProcAddress(h, "GetPointerTouchInfo"); + GetPointerPenInfo = (GET_POINTER_PEN_INFO)GetProcAddress(h, "GetPointerPenInfo"); + + _oldWindowProc = SetWindowLongPtr(_currentWindow, GWLP_WNDPROC, (LONG_PTR)wndProc8); + log(L"Initialized WIN8 input."); + } + else + { + RegisterTouchWindow(_currentWindow, 0); + _oldWindowProc = SetWindowLongPtr(_currentWindow, GWLP_WNDPROC, (LONG_PTR)wndProc7); + log(L"Initialized WIN7 input."); + } + } + + void __stdcall Dispose() + { + if (_oldWindowProc) + { + SetWindowLongPtr(_currentWindow, GWLP_WNDPROC, (LONG_PTR)_oldWindowProc); + _oldWindowProc = 0; + if (_api == WIN7) + { + UnregisterTouchWindow(_currentWindow); + } + } + } + + void __stdcall SetScreenParams(int width, int height, float offsetX, float offsetY, float scaleX, float scaleY) + { + _screenWidth = width; + _screenHeight = height; + _offsetX = offsetX; + _offsetY = offsetY; + _scaleX = scaleX; + _scaleY = scaleY; + } + +} + +LRESULT CALLBACK wndProc8(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) + { + case WM_TOUCH: + CloseTouchInputHandle((HTOUCHINPUT)lParam); + break; + case WM_POINTERENTER: + case WM_POINTERLEAVE: + case WM_POINTERDOWN: + case WM_POINTERUP: + case WM_POINTERUPDATE: + case WM_POINTERCAPTURECHANGED: + decodeWin8Touches(msg, wParam, lParam); + break; + default: + return CallWindowProc((WNDPROC)_oldWindowProc, hwnd, msg, wParam, lParam); + } + return 0; +} + +LRESULT CALLBACK wndProc7(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) + { + case WM_TOUCH: + decodeWin7Touches(msg, wParam, lParam); + break; + default: + return CallWindowProc((WNDPROC)_oldWindowProc, hwnd, msg, wParam, lParam); + } + return 0; +} + +void decodeWin8Touches(UINT msg, WPARAM wParam, LPARAM lParam) +{ + int pointerId = GET_POINTERID_WPARAM(wParam); + + POINTER_INFO pointerInfo; + if (!GetPointerInfo(pointerId, &pointerInfo)) return; + + POINT p; + p.x = pointerInfo.ptPixelLocation.x; + p.y = pointerInfo.ptPixelLocation.y; + ScreenToClient(_currentWindow, &p); + + Vector2 position = Vector2(((float)p.x - _offsetX) * _scaleX, _screenHeight - ((float)p.y - _offsetY) * _scaleY); + PointerData data {}; + data.pointerFlags = pointerInfo.pointerFlags; + data.changedButtons = pointerInfo.ButtonChangeType; + + if ((pointerInfo.pointerFlags & POINTER_FLAG_CANCELED) != 0 + || msg == WM_POINTERCAPTURECHANGED) msg = POINTER_CANCELLED; + + switch (pointerInfo.pointerType) + { + case PT_MOUSE: + break; + case PT_TOUCH: + POINTER_TOUCH_INFO touchInfo; + GetPointerTouchInfo(pointerId, &touchInfo); + data.flags = touchInfo.touchFlags; + data.mask = touchInfo.touchMask; + data.rotation = touchInfo.orientation; + data.pressure = touchInfo.pressure; + break; + case PT_PEN: + POINTER_PEN_INFO penInfo; + GetPointerPenInfo(pointerId, &penInfo); + data.flags = penInfo.penFlags; + data.mask = penInfo.penMask; + data.rotation = penInfo.rotation; + data.pressure = penInfo.pressure; + data.tiltX = penInfo.tiltX; + data.tiltY = penInfo.tiltY; + break; + } + + _delegate(pointerId, msg, pointerInfo.pointerType, position, data); +} + +void decodeWin7Touches(UINT msg, WPARAM wParam, LPARAM lParam) +{ + UINT cInputs = LOWORD(wParam); + PTOUCHINPUT pInputs = new TOUCHINPUT[cInputs]; + + if (!pInputs) return; + if (!GetTouchInputInfo((HTOUCHINPUT)lParam, cInputs, pInputs, sizeof(TOUCHINPUT))) return; + + for (UINT i = 0; i < cInputs; i++) + { + TOUCHINPUT touch = pInputs[i]; + + POINT p; + p.x = touch.x / 100; + p.y = touch.y / 100; + ScreenToClient(_currentWindow, &p); + + Vector2 position = Vector2(((float)p.x - _offsetX) * _scaleX, _screenHeight - ((float)p.y - _offsetY) * _scaleY); + PointerData data {}; + + if ((touch.dwFlags & TOUCHEVENTF_DOWN) != 0) + { + msg = WM_POINTERDOWN; + data.changedButtons = POINTER_CHANGE_FIRSTBUTTON_DOWN; + } + else if ((touch.dwFlags & TOUCHEVENTF_UP) != 0) + { + msg = WM_POINTERLEAVE; + data.changedButtons = POINTER_CHANGE_FIRSTBUTTON_UP; + } + else if ((touch.dwFlags & TOUCHEVENTF_MOVE) != 0) + { + msg = WM_POINTERUPDATE; + } + + _delegate(touch.dwID, msg, PT_TOUCH, position, data); + } + + CloseTouchInputHandle((HTOUCHINPUT)lParam); + delete[] pInputs; +} + +void log(const wchar_t* str) +{ +#if _DEBUG + BSTR bstr = SysAllocString(str); + _log(bstr); + SysFreeString(bstr); +#endif +} \ No newline at end of file diff --git a/External/WindowsTouch/WindowsTouch.h b/External/WindowsTouch/WindowsTouch.h new file mode 100644 index 000000000..1a6d15976 --- /dev/null +++ b/External/WindowsTouch/WindowsTouch.h @@ -0,0 +1,198 @@ +/* +* @author Valentin Simonov / http://va.lent.in/ +*/ + +#define WINVER _WIN32_WINNT_WIN7 +#define _WIN32_WINNT _WIN32_WINNT_WIN7 + +#include + +#define EXPORT_API __declspec(dllexport) + +typedef enum +{ + WIN7, + WIN8 +} TOUCH_API; + +// + +#define WM_POINTERENTER 0x0249 +#define WM_POINTERLEAVE 0x024A +#define WM_POINTERUPDATE 0x0245 +#define WM_POINTERDOWN 0x0246 +#define WM_POINTERUP 0x0247 +#define WM_POINTERCAPTURECHANGED 0x024C +#define POINTER_CANCELLED 0x1000 + +#define GET_POINTERID_WPARAM(wParam) (LOWORD(wParam)) + +typedef enum { + PT_POINTER = 0x00000001, + PT_TOUCH = 0x00000002, + PT_PEN = 0x00000003, + PT_MOUSE = 0x00000004, + PT_TOUCHPAD = 0x00000005 +} POINTER_INPUT_TYPE; + +typedef enum { + POINTER_FLAG_NONE = 0x00000000, + POINTER_FLAG_NEW = 0x00000001, + POINTER_FLAG_INRANGE = 0x00000002, + POINTER_FLAG_INCONTACT = 0x00000004, + POINTER_FLAG_FIRSTBUTTON = 0x00000010, + POINTER_FLAG_SECONDBUTTON = 0x00000020, + POINTER_FLAG_THIRDBUTTON = 0x00000040, + POINTER_FLAG_FOURTHBUTTON = 0x00000080, + POINTER_FLAG_FIFTHBUTTON = 0x00000100, + POINTER_FLAG_PRIMARY = 0x00002000, + POINTER_FLAG_CONFIDENCE = 0x00004000, + POINTER_FLAG_CANCELED = 0x00008000, + POINTER_FLAG_DOWN = 0x00010000, + POINTER_FLAG_UPDATE = 0x00020000, + POINTER_FLAG_UP = 0x00040000, + POINTER_FLAG_WHEEL = 0x00080000, + POINTER_FLAG_HWHEEL = 0x00100000, + POINTER_FLAG_CAPTURECHANGED = 0x00200000, + POINTER_FLAG_HASTRANSFORM = 0x00400000 +} POINTER_FLAGS; + +typedef enum { + POINTER_CHANGE_NONE, + POINTER_CHANGE_FIRSTBUTTON_DOWN, + POINTER_CHANGE_FIRSTBUTTON_UP, + POINTER_CHANGE_SECONDBUTTON_DOWN, + POINTER_CHANGE_SECONDBUTTON_UP, + POINTER_CHANGE_THIRDBUTTON_DOWN, + POINTER_CHANGE_THIRDBUTTON_UP, + POINTER_CHANGE_FOURTHBUTTON_DOWN, + POINTER_CHANGE_FOURTHBUTTON_UP, + POINTER_CHANGE_FIFTHBUTTON_DOWN, + POINTER_CHANGE_FIFTHBUTTON_UP, +} POINTER_BUTTON_CHANGE_TYPE; + +typedef enum { + TOUCH_FLAG_NONE = 0x00000000 +} TOUCH_FLAGS; + +typedef enum { + TOUCH_MASK_NONE = 0x00000000, + TOUCH_MASK_CONTACTAREA = 0x00000001, + TOUCH_MASK_ORIENTATION = 0x00000002, + TOUCH_MASK_PRESSURE = 0x00000004 +} TOUCH_MASK; + +typedef enum { + PEN_FLAG_NONE = 0x00000000, + PEN_FLAG_BARREL = 0x00000001, + PEN_FLAG_INVERTED = 0x00000002, + PEN_FLAG_ERASER = 0x00000004 +} PEN_FLAGS; + +typedef enum { + PEN_MASK_NONE = 0x00000000, + PEN_MASK_PRESSURE = 0x00000001, + PEN_MASK_ROTATION = 0x00000002, + PEN_MASK_TILT_X = 0x00000004, + PEN_MASK_TILT_Y = 0x00000008 +} PEN_MASK; + +typedef struct { + POINTER_INPUT_TYPE pointerType; + UINT32 pointerId; + UINT32 frameId; + POINTER_FLAGS pointerFlags; + HANDLE sourceDevice; + HWND hwndTarget; + POINT ptPixelLocation; + POINT ptHimetricLocation; + POINT ptPixelLocationRaw; + POINT ptHimetricLocationRaw; + DWORD dwTime; + UINT32 historyCount; + INT32 InputData; + DWORD dwKeyStates; + UINT64 PerformanceCount; + POINTER_BUTTON_CHANGE_TYPE ButtonChangeType; +} POINTER_INFO; + +typedef struct { + POINTER_INFO pointerInfo; + TOUCH_FLAGS touchFlags; + TOUCH_MASK touchMask; + RECT rcContact; + RECT rcContactRaw; + UINT32 orientation; + UINT32 pressure; +} POINTER_TOUCH_INFO; + +typedef struct { + POINTER_INFO pointerInfo; + PEN_FLAGS penFlags; + PEN_MASK penMask; + UINT32 pressure; + UINT32 rotation; + INT32 tiltX; + INT32 tiltY; +} POINTER_PEN_INFO; + +typedef BOOL (WINAPI *GET_POINTER_INFO)(UINT32 pointerId, POINTER_INFO *pointerInfo); +typedef BOOL (WINAPI *GET_POINTER_TOUCH_INFO)(UINT32 pointerId, POINTER_TOUCH_INFO *pointerInfo); +typedef BOOL (WINAPI *GET_POINTER_PEN_INFO)(UINT32 pointerId, POINTER_PEN_INFO *pointerInfo); + +GET_POINTER_INFO GetPointerInfo; +GET_POINTER_TOUCH_INFO GetPointerTouchInfo; +GET_POINTER_PEN_INFO GetPointerPenInfo; + +// + +struct Vector2 +{ + float x, y; + + Vector2(float x, float y) + { + this->x = x; + this->y = y; + } +}; + +struct PointerData +{ + POINTER_FLAGS pointerFlags; + UINT32 flags; + UINT32 mask; + POINTER_BUTTON_CHANGE_TYPE changedButtons; + UINT32 rotation; + UINT32 pressure; + INT32 tiltX; + INT32 tiltY; +}; + +typedef void(__stdcall * PointerDelegatePtr)(int id, UINT32 event, POINTER_INPUT_TYPE type, Vector2 position, PointerData data); +typedef void(__stdcall * LogFuncPtr)(BSTR log); + +PointerDelegatePtr _delegate; +LogFuncPtr _log; +HWND _currentWindow; +int _screenWidth; +int _screenHeight; +float _offsetX = 0; +float _offsetY = 0; +float _scaleX = 1; +float _scaleY = 1; +TOUCH_API _api; +LONG_PTR _oldWindowProc; + +extern "C" +{ + EXPORT_API void __stdcall Init(TOUCH_API api, LogFuncPtr logFunc, PointerDelegatePtr delegate); + EXPORT_API void __stdcall SetScreenParams(int width, int height, float offsetX, float offsetY, float scaleX, float scaleY); + EXPORT_API void __stdcall Dispose(); +} + +void log(const wchar_t* str); +LRESULT CALLBACK wndProc8(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); +LRESULT CALLBACK wndProc7(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); +void decodeWin8Touches(UINT msg, WPARAM wParam, LPARAM lParam); +void decodeWin7Touches(UINT msg, WPARAM wParam, LPARAM lParam); \ No newline at end of file diff --git a/External/WindowsTouch/WindowsTouch.sln b/External/WindowsTouch/WindowsTouch.sln new file mode 100644 index 000000000..845b40d24 --- /dev/null +++ b/External/WindowsTouch/WindowsTouch.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WindowsTouch", "WindowsTouch.vcxproj", "{6E671F43-5721-4EE9-9FCD-FD53202B4B43}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6E671F43-5721-4EE9-9FCD-FD53202B4B43}.Debug|x64.ActiveCfg = Debug|x64 + {6E671F43-5721-4EE9-9FCD-FD53202B4B43}.Debug|x64.Build.0 = Debug|x64 + {6E671F43-5721-4EE9-9FCD-FD53202B4B43}.Debug|x86.ActiveCfg = Debug|Win32 + {6E671F43-5721-4EE9-9FCD-FD53202B4B43}.Debug|x86.Build.0 = Debug|Win32 + {6E671F43-5721-4EE9-9FCD-FD53202B4B43}.Release|x64.ActiveCfg = Release|x64 + {6E671F43-5721-4EE9-9FCD-FD53202B4B43}.Release|x64.Build.0 = Release|x64 + {6E671F43-5721-4EE9-9FCD-FD53202B4B43}.Release|x86.ActiveCfg = Release|Win32 + {6E671F43-5721-4EE9-9FCD-FD53202B4B43}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/External/WindowsTouch/WindowsTouch.vcxproj b/External/WindowsTouch/WindowsTouch.vcxproj new file mode 100644 index 000000000..42ac710b2 --- /dev/null +++ b/External/WindowsTouch/WindowsTouch.vcxproj @@ -0,0 +1,183 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {6E671F43-5721-4EE9-9FCD-FD53202B4B43} + Win32Proj + WindowsTouch + 8.1 + WindowsTouch + + + + DynamicLibrary + true + v140 + Unicode + + + DynamicLibrary + true + v140 + Unicode + + + DynamicLibrary + false + v140 + true + Unicode + + + DynamicLibrary + false + v140 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + ..\..\Source\Assets\TouchScript\Plugins\WindowsTouch\$(Platform)\ + $(ProjectName) + + + $(ProjectName) + true + ..\..\Source\Assets\TouchScript\Plugins\WindowsTouch\ + + + false + ..\..\Source\Assets\TouchScript\Plugins\WindowsTouch\$(Platform)\ + $(ProjectName) + $(Configuration)\ + false + + + $(ProjectName) + false + ..\..\Source\Assets\TouchScript\Plugins\WindowsTouch\ + + + + + + Level3 + Disabled + _DEBUG;_WINDOWS;_USRDLL;WINDOWSTOUCH_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDebug + + + Windows + true + + + + + + + Level3 + Disabled + _DEBUG;_WINDOWS;_USRDLL;WINDOWSTOUCH_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDebug + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_WINDOWS;_USRDLL;WINDOWSTOUCH_EXPORTS;%(PreprocessorDefinitions) + true + None + MultiThreaded + + + Windows + true + true + false + UseLinkTimeCodeGeneration + $(Configuration)\$(TargetName).lib + + + + + + + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_WINDOWS;_USRDLL;WINDOWSTOUCH_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreaded + + + Windows + true + true + false + $(Configuration)\$(TargetName).lib + UseLinkTimeCodeGeneration + + + + + + + + + + + + \ No newline at end of file diff --git a/External/WindowsTouch/WindowsTouch.vcxproj.filters b/External/WindowsTouch/WindowsTouch.vcxproj.filters new file mode 100644 index 000000000..776ab0ebb --- /dev/null +++ b/External/WindowsTouch/WindowsTouch.vcxproj.filters @@ -0,0 +1,27 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/Lib/put unity dlls here.txt b/Modules/.gitignore similarity index 100% rename from Lib/put unity dlls here.txt rename to Modules/.gitignore diff --git a/README.md b/README.md index d5e2b1d76..5a13dc27b 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,63 @@ -## TouchScript — multitouch framework for Unity3d -TouchScript was developed by Valentin Simonov at [Interactive Lab](http://interactivelab.ru) to: - - Provide a reliable way to code multitouch interfaces on large touch surfaces. - - Handle complex interactions between gestures. - - Support different input methods. - - Take into account differences between a large touch surface and an iPad. - -TouchScript is much more than a handful of routines to receive touch events from different sources. Inspired by iOS, TouchScript makes handling complex gesture interactions on large touch surfaces much easier. Unity3d and Flash implementations are developed to work together in Scaleform environment. - -## Features - - Easy and intuitive API. - - Works on PC (Windows 7 and Windows 8), Mac, iOS, Android and Windows RT. - - Doesn't require Unity Pro. - - Supported input sources: TUIO, mouse, mobile (iOS, Android, WinRT) and native Windows touch. - - Groups touch points into clusters on big touch surfaces. - - **Manages simultaneous gesture recognition within scene hierarchy (inspired by iOS).** - - Comes with many commonly used gestures. Easy to write custom ones. - - Easy to test multitouch gestures without actual multitouch device using built-in second touch simulator (activated with Alt+click), [TUIOPad on iOS](https://itunes.apple.com/us/app/tuiopad/id412446962) or [TUIODroid on Android](https://play.google.com/store/apps/details?id=tuioDroid.impl&hl=en"). - - **It's free and open-source. Licensed under MIT license.** - - [And more...](http://interactivelab.github.io/TouchScript/tutorials.internals.html) - -Check out official docs at [interactivelab.github.com/TouchScript/](http://interactivelab.github.com/TouchScript/). \ No newline at end of file +![](https://raw.github.com/wiki/TouchScript/TouchScript/images/dvfu.jpg) + +## TouchScript — multi-touch library for Unity + +When working on a project for mobile devices or PCs with touch input you will soon require basic gestures like tap, pan, pinch and zoom — they are not hard to implement manually using Unity API or using a package from Asset Store. The hard part is to make these gestures work together, e.g. to have a button with a tap gesture placed on a zoomable window. This is where you will need **TouchScript** — it makes handling complex gesture interactions on any touch surface an effortless job. + +## Why TouchScript? +- TouchScript abstracts touch and gesture logic from input methods and platforms. Your touch-related code will be the same everywhere. +- TouchScript supports many touch input methods starting from smartphones to giant touch surfaces: mouse, Windows 7/8 touch, mobile (iOS, Android, Windows Store/Windows Phone), TUIO. +- TouchScript includes common gesture implementations: press, release, tap, long press, flick, pinch/scale/rotate. +- TouchScript allows you to write your own gestures and custom pointer input logic. +- TouchScript manages gestures in transform hierarchy and makes sure that the most relevant gesture will receive touch input. +- TouchScript comes with many examples and is extensively documented. +- TouchScript makes it easy to test multi-touch gestures without an actual multi-touch device using built-in second touch simulator (activated with Alt + click), [TUIOPad on iOS](https://itunes.apple.com/us/app/tuiopad/id412446962) or [TUIODroid on Android](https://play.google.com/store/apps/details?id=tuioDroid.impl&hl=en"). [Read more](Testing-multitouch-on-a-PC). +- It's free and open-source. Licensed under MIT license. + +Developed by Valentin Simonov. + +## Getting started +### Downloading the package +To use **TouchScript** in your project you either need to +* download the [latest release from Github](https://github.com/TouchScript/TouchScript/releases), +* or get it from [Asset Store](https://www.assetstore.unity3d.com/en/#!/content/7394), +* or clone the [repository](https://github.com/TouchScript/TouchScript) and use the source ([more info on how to do it](https://github.com/TouchScript/TouchScript/wiki/How-to-Contribute)). + +### Your first TouchScript project +To test how TouchScript works, create an empty scene and drag two prefabs from `TouchScript/Prefabs` folder to the scene: `TouchManager` and `Cursors`. Press Play and click or touch (if your PC supports touch input) the Game View — you will see colored circles, pointer cursors. + +> Note: to simulate a second pointer you can hold Alt and click anywhere within the Game View. + +You can make any GameObject react to touch input — just attach one of the scripts called Gestures to it. TouchScript ships with a few built-in Gestures which you can find in `Component/TouchScript/Gestures` menu. It is also possible to write your own gestures. + +To test how built-in Gestures work, create an empty cube in the scene and attach a `TransformGesture` to it either from `Component` menu or `Add Component` button. Make the cube large enough to be able to touch it with two fingers. Attach another component called `Transformer` to the cube — this component listens to events from `TransformGesture` and applies translation, rotation and scaling to the GameObject. + +Press Play. Note how you can drag the object with one touch and scale or rotate it with two touches. Don't forget that you can use Alt + click to simulate a second pointer ([read more more about testing multi-touch gestures](https://github.com/TouchScript/TouchScript/wiki/Testing-multitouch-on-a-PC)). + +### Examples +TouchScript comes with many examples in `TouchScript/Examples` folder. Open `Examples.unity` scene and read description for every example to find out what it is about. + +[All examples are explaned here.](https://github.com/TouchScript/TouchScript/wiki/Examples) + +### What to read next +- [How to receive a pointer.](https://github.com/TouchScript/TouchScript/wiki/Pointer-Input) +- [What is a Gesture and how to work with it.](https://github.com/TouchScript/TouchScript/wiki/Gestures) +- [What is an Input Source and why it is needed.](https://github.com/TouchScript/TouchScript/wiki/Input-Sources) +- [What is a Layer and why it is needed.](https://github.com/TouchScript/TouchScript/wiki/Layers) +- [Some info on how TouchScript works internally.](https://github.com/TouchScript/TouchScript/wiki/Main-Ideas-Behind-TouchScript) +- [How to affect which objects can be touched.](https://github.com/TouchScript/TouchScript/wiki/Modifying-Hits) +- [How to change touch coordinates from an input device.](https://github.com/TouchScript/TouchScript/wiki/Remapping-Coordinates-From-an-Input-Source) +- [How to write a custom Gesture.](https://github.com/TouchScript/TouchScript/wiki/Tutorial.-Writing-a-Custom-Gesture.) +- [How you can help.](https://github.com/TouchScript/TouchScript/wiki/How-to-Contribute) + +## Need help? +> If you have a problem using TouchScript or running examples please check the [FAQ](FAQ) before submitting issues. + + - [FAQ](FAQ) +_Some of the questions have been already asked multiple times. Check if yours is in the list._ + - [Documentation](http://touchscript.github.io/docs/) +_Complete up-to-date generated docs with all public API annotated._ + - [Official Forum](http://touchprefab.com/index.php) +_Want to ask a question about TouchScript? Use the official Forum._ + - [Issues](https://github.com/TouchScript/TouchScript/issues) +_Found a bug? Got a feature request? Feel free to post it in Issues._ diff --git a/Resources/Icons/Axes/Axes.xfl b/Resources/Icons/Axes/Axes.xfl new file mode 100644 index 000000000..860a820ec --- /dev/null +++ b/Resources/Icons/Axes/Axes.xfl @@ -0,0 +1 @@ +PROXY-CS5 \ No newline at end of file diff --git a/Resources/Icons/Axes/DOMDocument.xml b/Resources/Icons/Axes/DOMDocument.xml new file mode 100644 index 000000000..4c20f7dd3 --- /dev/null +++ b/Resources/Icons/Axes/DOMDocument.xml @@ -0,0 +1,656 @@ + + + + + + + + + + + + + + + + + + + + X + + + + + + Z + + + + + + + + + + + + + + + + + X + + + + + + Z + + + + + + + + + + + + + + + + + Y + + + + + + Z + + + + + + + + + + + + + + + + + X + + + + + + Y + + + + + + + + + + + + + + + + + + + + + + + ?? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Resources/Icons/Axes/LIBRARY/Arrow.xml b/Resources/Icons/Axes/LIBRARY/Arrow.xml new file mode 100644 index 000000000..8b36b0679 --- /dev/null +++ b/Resources/Icons/Axes/LIBRARY/Arrow.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Resources/Icons/Axes/LIBRARY/Line.xml b/Resources/Icons/Axes/LIBRARY/Line.xml new file mode 100644 index 000000000..a4a6db0ad --- /dev/null +++ b/Resources/Icons/Axes/LIBRARY/Line.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Resources/Icons/Axes/META-INF/metadata.xml b/Resources/Icons/Axes/META-INF/metadata.xml new file mode 100644 index 000000000..e69de29bb diff --git a/Resources/Icons/Axes/MobileSettings.xml b/Resources/Icons/Axes/MobileSettings.xml new file mode 100644 index 000000000..e69de29bb diff --git a/Resources/Icons/Axes/PublishSettings.xml b/Resources/Icons/Axes/PublishSettings.xml new file mode 100644 index 000000000..8258315df --- /dev/null +++ b/Resources/Icons/Axes/PublishSettings.xml @@ -0,0 +1,175 @@ + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + axes.swf + axes.exe + axes.app + axes.html + axes.gif + axes.jpg + axes.png + axes.swc + axes.oam + 0 + 0 + 0 + 0 + + + 0 + 25,0,0,0;23,0,0,0;21,0,0,0;20,0,0,0;19,0,0,0;18,0,0,0;17,0,0,0;16,0,0,0;14,0,0,0;13,0,0,0;12,0,0,0;11,9,0,0;11,8,0,0;11,7,0,0;11,6,0,0;11,5,0,0;11,4,0,0;11,3,0,0;11,2,0,0;11,1,0,0;10,3,0,0;10,2,153,0;10,1,52,0;9,0,124,0;8,0,24,0;7,0,14,0;6,0,79,0;5,0,58,0;4,0,32,0;3,0,8,0;2,0,1,12;1,0,0,1; + 1 + 1 + axes_content.html + axes_alternate.html + 0 + + 550 + 400 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 4 + 0 + 0 + 1 + 0 + /Users/valyard/Library/Application Support/Adobe/Animate CC 2017/en_US/Configuration/HTML/Default.html + 1 + + + + + 0 + 0 + 0 + 80 + 0 + 0 + 7 + 0 + 7 + 0 + 36 + FlashPlayer25.0 + 3 + 1 + + . + CONFIG::FLASH_AUTHORING="true"; + 0 + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + 2 + 4 + 4096 + AS3 + 1 + 1 + 0 + 15 + 1 + 0 + 4102 + rsl + wrap + $(AppConfig)/ActionScript 3.0/rsls/loader_animation.swf + + + $(AppConfig)/ActionScript 3.0/libs + merge + + + + + 0 + + + + 550 + 400 + 0 + 4718592 + 0 + 80 + 1 + + + 550 + 400 + 0 + 1 + 1 + + 1 + 255 + + + 550 + 400 + 1 + 1 + 24-bit with Alpha + 255 + + + 550 + 400 + 1 + 0 + + 0 + + + true + axes.zip + + + true + true + false + Untitled-1.svg + images + true + 0.1 + + + true + Untitled-1.app + + + true + Untitled-1.exe + + + \ No newline at end of file diff --git a/Resources/Icons/Axes/bin/SymDepend.cache b/Resources/Icons/Axes/bin/SymDepend.cache new file mode 100644 index 000000000..cf9bc671e Binary files /dev/null and b/Resources/Icons/Axes/bin/SymDepend.cache differ diff --git a/Resources/SettingsWindow/Header.psd b/Resources/SettingsWindow/Header.psd new file mode 100644 index 000000000..3c6f8dc1c Binary files /dev/null and b/Resources/SettingsWindow/Header.psd differ diff --git a/Resources/UI/Touch Point/DOMDocument.xml b/Resources/UI/Touch Point/DOMDocument.xml new file mode 100644 index 000000000..5c96d912e --- /dev/null +++ b/Resources/UI/Touch Point/DOMDocument.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Resources/UI/Touch Point/LIBRARY/Symbol 1.xml b/Resources/UI/Touch Point/LIBRARY/Symbol 1.xml new file mode 100644 index 000000000..1e9e15215 --- /dev/null +++ b/Resources/UI/Touch Point/LIBRARY/Symbol 1.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Resources/UI/Touch Point/META-INF/metadata.xml b/Resources/UI/Touch Point/META-INF/metadata.xml new file mode 100644 index 000000000..08ef61419 --- /dev/null +++ b/Resources/UI/Touch Point/META-INF/metadata.xml @@ -0,0 +1,74 @@ + + + + + Adobe Flash Professional CS6 - build 481 + 2014-02-22T18:58:24+04:00 + 2014-03-25T20:24:57+04:00 + 2014-03-25T20:24:57+04:00 + + + application/vnd.adobe.fla + + + xmp.iid:8ED30D013AB4E3119DA4E2A0DAA059F3 + xmp.did:8ED30D013AB4E3119DA4E2A0DAA059F3 + xmp.did:90807A2DD39BE311B88AD8EC62276915 + + + + created + xmp.iid:90807A2DD39BE311B88AD8EC62276915 + 2014-02-22T18:58:24+04:00 + Adobe Flash Professional CS6 - build 481 + + + saved + xmp.iid:91807A2DD39BE311B88AD8EC62276915 + 2014-02-23T00:06:07+04:00 + Adobe Flash Professional CS6 - build 481 + / + + + created + xmp.iid:8ED30D013AB4E3119DA4E2A0DAA059F3 + 2014-02-22T18:58:24+04:00 + Adobe Flash Professional CS6 - build 481 + + + + + xmp.iid:91807A2DD39BE311B88AD8EC62276915 + xmp.did:91807A2DD39BE311B88AD8EC62276915 + xmp.did:90807A2DD39BE311B88AD8EC62276915 + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Resources/UI/Touch Point/MobileSettings.xml b/Resources/UI/Touch Point/MobileSettings.xml new file mode 100644 index 000000000..e69de29bb diff --git a/Resources/UI/Touch Point/PublishSettings.xml b/Resources/UI/Touch Point/PublishSettings.xml new file mode 100644 index 000000000..c711df5d4 --- /dev/null +++ b/Resources/UI/Touch Point/PublishSettings.xml @@ -0,0 +1,206 @@ + + + + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + Touch Point.swf + Touch Point.exe + Touch Point.app + Touch Point.html + Touch Point.gif + Touch Point.jpg + Touch Point.png + Touch Point.mov + Touch Point.smil + Touch Point.swc + + + 0 + 12,0,0,0;11,2,0,0;11,1,0,0;10,3,0,0;10,2,153,0;10,1,52,0;9,0,124,0;8,0,24,0;7,0,14,0;6,0,79,0;5,0,58,0;4,0,32,0;3,0,8,0;2,0,1,12;1,0,0,1; + 1 + 1 + Touch Point_content.html + Touch Point_alternate.html + 0 + + 256 + 256 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 4 + 0 + 0 + 1 + 0 + C:\Users\valyard\AppData\Local\Adobe\Flash CS6\en_US\Configuration\HTML\Default.html + 1 + + + + + 0 + 0 + 0 + 80 + 0 + 0 + 7 + 0 + 7 + 0 + 15 + FlashPlayer11.2 + 3 + 1 + + . + CONFIG::FLASH_AUTHORING="true"; + 0 + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + 2 + 4 + 4096 + AS3 + 1 + 1 + 0 + 15 + 1 + 0 + 4102 + rsl + wrap + $(AppConfig)/ActionScript 3.0/rsls/loader_animation.swf + + + $(AppConfig)/ActionScript 3.0/libs + merge + + + $(AppConfig)/ActionScript 3.0/libs/11.0/textLayout.swc + rsl + http://fpdownload.adobe.com/pub/swz/tlf/2.0.0.232/textLayout_2.0.0.232.swz + http://fpdownload.adobe.com/pub/swz/crossdomain.xml + textLayout_2.0.0.232.swz + + + + + $(AppConfig)/ActionScript 3.0/libs/11.0/textLayout.swc + + http://fpdownload.adobe.com/pub/swz/tlf/2.0.0.232/textLayout_2.0.0.232.swz + http://fpdownload.adobe.com/pub/swz/crossdomain.xml + textLayout_2.0.0.232.swz + + + + + 256 + 256 + 0 + 4718592 + 0 + 80 + 1 + + + 1 + 0 + 1 + 0 + 0 + 100000 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + + + 256 + 256 + 0 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + + 128 + + + 255 + + + + 256 + 256 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + + + + 24-bit with Alpha + 255 + + + + 256 + 256 + 1 + 0 + + + 00000000 + 0 + 0 + 0 + 0 + 1 + + + \ No newline at end of file diff --git a/Resources/UI/Touch Point/Touch Point.xfl b/Resources/UI/Touch Point/Touch Point.xfl new file mode 100644 index 000000000..860a820ec --- /dev/null +++ b/Resources/UI/Touch Point/Touch Point.xfl @@ -0,0 +1 @@ +PROXY-CS5 \ No newline at end of file diff --git a/Source/.gitignore b/Source/.gitignore new file mode 100644 index 000000000..69a627838 --- /dev/null +++ b/Source/.gitignore @@ -0,0 +1,34 @@ +*.DS_Store +.Spotlight-V100 +.Trashes +[Tt]humbs.db + +/Temp/ +/Obj/ +/UnityGenerated/ +/Library/ +/Build*/ + +ExportedObj/ +*.svd +*.userprefs +*.csproj +*.pidb +*.suo +*.sln +*.user +*.unityproj +*.booproj +*.pdb +*.mdb + +_ReSharper* +/Assets/UnityVS* +/.vscode +/Assets/VSCode* + +*.pdb* +*.mdb* +pdb2mdb.bat* + +/Assets/Tests* \ No newline at end of file diff --git a/Source/Assets/Test.meta b/Source/Assets/Test.meta new file mode 100644 index 000000000..ed78c8085 --- /dev/null +++ b/Source/Assets/Test.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7e1fcc64fde35914b886872755292f44 +folderAsset: yes +timeCreated: 1490462516 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Examples/General Examples/Assets/TouchScript.meta b/Source/Assets/TouchScript.meta similarity index 100% rename from Examples/General Examples/Assets/TouchScript.meta rename to Source/Assets/TouchScript.meta diff --git a/Source/Assets/TouchScript/Devices.meta b/Source/Assets/TouchScript/Devices.meta new file mode 100644 index 000000000..1dd111b13 --- /dev/null +++ b/Source/Assets/TouchScript/Devices.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 015a75a52390cb54ab243c58b777d403 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Devices/Display.meta b/Source/Assets/TouchScript/Devices/Display.meta new file mode 100644 index 000000000..eb63521cb --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 7c4da54dcaf9ffd4a98ed42a83468d18 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Devices/Display/TVs.meta b/Source/Assets/TouchScript/Devices/Display/TVs.meta new file mode 100644 index 000000000..8934572b8 --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display/TVs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: f7b5954ec2c32ac43a8f9fda75eed03f +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 42.asset b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 42.asset new file mode 100644 index 000000000..cc53ace5a --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 42.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3bb766ec5aebe4332b86a7b9b50eb01d, type: 3} + m_Name: FullHD TV 42 + m_EditorClassIdentifier: + name: FullHD TV 42 + dpi: 52 + nativeDPI: 52 + nativeResolution: {x: 1920, y: 1080} diff --git a/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 42.asset.meta b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 42.asset.meta new file mode 100644 index 000000000..b006cddf5 --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 42.asset.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cce7a04b5eb9d024899e39e60d27db64 +timeCreated: 1500668483 +licenseType: Pro +NativeFormatImporter: + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 50.asset b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 50.asset new file mode 100644 index 000000000..9ec9303da --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 50.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3bb766ec5aebe4332b86a7b9b50eb01d, type: 3} + m_Name: FullHD TV 50 + m_EditorClassIdentifier: + name: FullHD TV 50 + dpi: 44 + nativeDPI: 44 + nativeResolution: {x: 1920, y: 1080} diff --git a/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 50.asset.meta b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 50.asset.meta new file mode 100644 index 000000000..fd9eaaf68 --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 50.asset.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ee9d224e766697b43a3bbc68ff230c15 +timeCreated: 1500668483 +licenseType: Pro +NativeFormatImporter: + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 55.asset b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 55.asset new file mode 100644 index 000000000..bc9b0012f --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 55.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3bb766ec5aebe4332b86a7b9b50eb01d, type: 3} + m_Name: FullHD TV 55 + m_EditorClassIdentifier: + name: FullHD TV 55 + dpi: 40 + nativeDPI: 40 + nativeResolution: {x: 1920, y: 1080} diff --git a/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 55.asset.meta b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 55.asset.meta new file mode 100644 index 000000000..cacb12051 --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display/TVs/FullHD TV 55.asset.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: ea50697f98d711e4cab6011e03728770 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Devices/Display/Unknown Device.asset b/Source/Assets/TouchScript/Devices/Display/Unknown Device.asset new file mode 100644 index 000000000..0dc3fff25 --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display/Unknown Device.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3bb766ec5aebe4332b86a7b9b50eb01d, type: 3} + m_Name: Unknown Device + m_EditorClassIdentifier: + name: Unknown Device + dpi: 96 + nativeDPI: 96 + nativeResolution: {x: 1920, y: 1080} diff --git a/Source/Assets/TouchScript/Devices/Display/Unknown Device.asset.meta b/Source/Assets/TouchScript/Devices/Display/Unknown Device.asset.meta new file mode 100644 index 000000000..899c0af80 --- /dev/null +++ b/Source/Assets/TouchScript/Devices/Display/Unknown Device.asset.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1d1252c9bfc58b44293c994720c07f5e +timeCreated: 1500668483 +licenseType: Pro +NativeFormatImporter: + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Examples/General Examples/Assets/TouchScript/Editor.meta b/Source/Assets/TouchScript/Editor.meta similarity index 100% rename from Examples/General Examples/Assets/TouchScript/Editor.meta rename to Source/Assets/TouchScript/Editor.meta diff --git a/Source/Assets/TouchScript/Editor/Behaviors.meta b/Source/Assets/TouchScript/Editor/Behaviors.meta new file mode 100644 index 000000000..d1e30b650 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Behaviors.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 82e3535dbc9db444daee5b467c58629b +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Behaviors/Cursors.meta b/Source/Assets/TouchScript/Editor/Behaviors/Cursors.meta new file mode 100644 index 000000000..097e03a63 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Behaviors/Cursors.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fdd753f8a85824d71a36d9076cb2e2fb +folderAsset: yes +timeCreated: 1448654861 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Behaviors/Cursors/CursorManagerEditor.cs b/Source/Assets/TouchScript/Editor/Behaviors/Cursors/CursorManagerEditor.cs new file mode 100644 index 000000000..9e1a4a1e0 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Behaviors/Cursors/CursorManagerEditor.cs @@ -0,0 +1,68 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Behaviors.Cursors; +using UnityEditor; +using UnityEngine; +using TouchScript.Editor.EditorUI; + +namespace TouchScript.Editor.Behaviors.Visualizer +{ + [CustomEditor(typeof(CursorManager))] + internal sealed class CursorManagerEditor : UnityEditor.Editor + { + public static readonly GUIContent TEXT_DPI_HEADER = new GUIContent("Use DPI", "Scale touch pointer based on DPI."); + public static readonly GUIContent TEXT_CURSORS_HEADER = new GUIContent("Cursors", "Cursor prefabs used for different pointer types."); + public static readonly GUIContent TEXT_POINTER_SIZE = new GUIContent("Pointer size (cm)", "Pointer size in cm based on current DPI."); + public static readonly GUIContent TEXT_POINTER_PIXEL_SIZE = new GUIContent("Pointer size (px)", "Pointer size in pixels."); + + private SerializedProperty mousePointerProxy, touchPointerProxy, penPointerProxy, objectPointerProxy; + private SerializedProperty useDPI, cursorSize, cursorPixelSize; + private SerializedProperty cursorsProps; + + private void OnEnable() + { + mousePointerProxy = serializedObject.FindProperty("mouseCursor"); + touchPointerProxy = serializedObject.FindProperty("touchCursor"); + penPointerProxy = serializedObject.FindProperty("penCursor"); + objectPointerProxy = serializedObject.FindProperty("objectCursor"); + + useDPI = serializedObject.FindProperty("useDPI"); + cursorSize = serializedObject.FindProperty("cursorSize"); + cursorPixelSize = serializedObject.FindProperty("cursorPixelSize"); + + cursorsProps = serializedObject.FindProperty("cursorsProps"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + GUILayout.Space(5); + + EditorGUILayout.PropertyField(useDPI, TEXT_DPI_HEADER); + if (useDPI.boolValue) + { + EditorGUILayout.PropertyField(cursorSize, TEXT_POINTER_SIZE); + } + else + { + EditorGUILayout.PropertyField(cursorPixelSize, TEXT_POINTER_PIXEL_SIZE); + } + + var display = GUIElements.Header(TEXT_CURSORS_HEADER, cursorsProps); + if (display) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(mousePointerProxy, new GUIContent("Mouse Pointer Proxy")); + EditorGUILayout.PropertyField(touchPointerProxy, new GUIContent("Touch Pointer Proxy")); + EditorGUILayout.PropertyField(penPointerProxy, new GUIContent("Pen Pointer Proxy")); + EditorGUILayout.PropertyField(objectPointerProxy, new GUIContent("Object Pointer Proxy")); + EditorGUI.indentLevel--; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Behaviors/Cursors/CursorManagerEditor.cs.meta b/Source/Assets/TouchScript/Editor/Behaviors/Cursors/CursorManagerEditor.cs.meta new file mode 100644 index 000000000..0a91081c1 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Behaviors/Cursors/CursorManagerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 77945c600a4314a6bb5c7cc758b42194 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Behaviors/TransformerEditor.cs b/Source/Assets/TouchScript/Editor/Behaviors/TransformerEditor.cs new file mode 100644 index 000000000..9ab5068d0 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Behaviors/TransformerEditor.cs @@ -0,0 +1,72 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Behaviors; +using UnityEditor; +using UnityEngine; +using System.Reflection; +using TouchScript.Editor.EditorUI; + +namespace TouchScript.Editor.Behaviors +{ + [CustomEditor(typeof(Transformer), true)] + internal class TransformerEditor : UnityEditor.Editor + { + public static readonly GUIContent TEXT_SMOOTHING_HEADER = new GUIContent("Smoothing", "Applies smoothing to transform actions. This allows to reduce jagged movements but adds some visual lag."); + public static readonly GUIContent TEXT_SMOOTHING_FACTOR = new GUIContent("Factor", "Indicates how much smoothing to apply. 0 - no smoothing, 100000 - maximum."); + public static readonly GUIContent TEXT_POSITION_THRESHOLD = new GUIContent("Position Threshold", "Minimum distance between target position and smoothed position when to stop automatic movement."); + public static readonly GUIContent TEXT_ROTATION_THRESHOLD = new GUIContent("Rotation Threshold", "Minimum angle between target rotation and smoothed rotation when to stop automatic movement."); + public static readonly GUIContent TEXT_SCALE_THRESHOLD = new GUIContent("Scale Threshold", "Minimum difference between target scale and smoothed scale when to stop automatic movement."); + public static readonly GUIContent TEXT_ALLOW_CHANGING = new GUIContent("Allow Changing From Outside", "Indicates if this transform can be changed from another script."); + public static readonly GUIContent TEXT_SMOOTHING_FACTOR_DESC = new GUIContent("Indicates how much smoothing to apply. \n0 - no smoothing, 100000 - maximum."); + + public static readonly GUIContent TEXT_HELP = new GUIContent("This component receives transform data from Transform Gestures and applies changes to the GameObject."); + + private Transformer instance; + + private SerializedProperty enableSmoothing, allowChangingFromOutside; + private PropertyInfo enableSmoothing_prop; + + protected virtual void OnEnable() + { + enableSmoothing = serializedObject.FindProperty("enableSmoothing"); + allowChangingFromOutside = serializedObject.FindProperty("allowChangingFromOutside"); + + instance = target as Transformer; + + var type = instance.GetType(); + enableSmoothing_prop = type.GetProperty("EnableSmoothing", BindingFlags.Instance | BindingFlags.Public); + } + + public override void OnInspectorGUI() + { +#if UNITY_5_6_OR_NEWER + serializedObject.UpdateIfRequiredOrScript(); +#else + serializedObject.UpdateIfDirtyOrScript(); +#endif + + GUILayout.Space(5); + + var display = GUIElements.Header(TEXT_SMOOTHING_HEADER, enableSmoothing, enableSmoothing, enableSmoothing_prop); + if (display) + { + EditorGUI.indentLevel++; + using (new EditorGUI.DisabledGroupScope(!enableSmoothing.boolValue)) + { + instance.SmoothingFactor = EditorGUILayout.FloatField(TEXT_SMOOTHING_FACTOR, instance.SmoothingFactor); + EditorGUILayout.LabelField(TEXT_SMOOTHING_FACTOR_DESC, GUIElements.HelpBox); + instance.PositionThreshold = EditorGUILayout.FloatField(TEXT_POSITION_THRESHOLD, instance.PositionThreshold); + instance.RotationThreshold = EditorGUILayout.FloatField(TEXT_ROTATION_THRESHOLD, instance.RotationThreshold); + instance.ScaleThreshold = EditorGUILayout.FloatField(TEXT_SCALE_THRESHOLD, instance.ScaleThreshold); + EditorGUILayout.PropertyField(allowChangingFromOutside, TEXT_ALLOW_CHANGING); + } + EditorGUI.indentLevel--; + } + EditorGUILayout.LabelField(TEXT_HELP, GUIElements.HelpBox); + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Behaviors/TransformerEditor.cs.meta b/Source/Assets/TouchScript/Editor/Behaviors/TransformerEditor.cs.meta new file mode 100644 index 000000000..d59c686ae --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Behaviors/TransformerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2b3b3cedc8dd446d991e87f97e19fdbc +timeCreated: 1477969520 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Debugging.meta b/Source/Assets/TouchScript/Editor/Debugging.meta new file mode 100644 index 000000000..8c2b9493d --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Debugging.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 81e4112b0ec1b439595cbb4384be9b70 +folderAsset: yes +timeCreated: 1500410739 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Debugging/PointerDebuggerWindow.cs b/Source/Assets/TouchScript/Editor/Debugging/PointerDebuggerWindow.cs new file mode 100644 index 000000000..a35b1a8c3 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Debugging/PointerDebuggerWindow.cs @@ -0,0 +1,709 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using System; +using System.Collections.Generic; +using System.IO; +using TouchScript.Debugging; +using TouchScript.Debugging.Filters; +using TouchScript.Debugging.GL; +using TouchScript.Debugging.Loggers; +using TouchScript.Editor.EditorUI; +using TouchScript.Utils; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Debugging +{ + public class PointerDebuggerWindow : EditorWindow + { + private class Styles : IDisposable + { + public Texture2D BG; + + public int Padding = 5; + public int GlobalPadding = 10; + + public int TabHeight = 20; + public int TabWidth = 80; + public int TabPadding = 10; + + public int TopWindowHeight = 240; + public int RefreshHeight = 30; + + public int PointerItemHeight = 22; + public Color PointerItemSelected = new Color(.86f, .86f, .86f, 1f); + public Color PointerItemEmpty = new Color(.7f, .7f, .7f, .2f); + + public GUIStyle PointerItemStyle; + public GUIStyle EnterPlayModeText; + public GUIStyle SmallText; + public GUIStyle SmallButton; + public GUIStyle FilterToggle; + + public Styles() + { + BG = CreateColorTexture(new Color(0, 0, 0, 0.05f)); + + PointerItemStyle = new GUIStyle("ShurikenModuleTitle") + { + font = (new GUIStyle("Label")).font, + border = new RectOffset(15, 7, 4, 4), + fixedHeight = 22, + contentOffset = new Vector2(20f, -2f), + }; + + EnterPlayModeText = new GUIStyle("miniLabel") + { + alignment = TextAnchor.MiddleCenter, + }; + + SmallText = new GUIStyle("miniLabel") + { + alignment = TextAnchor.UpperLeft, + }; + + SmallButton = new GUIStyle("Button") + { + fontSize = SmallText.fontSize, + fontStyle = SmallText.fontStyle, + font = SmallText.font, + }; + + FilterToggle = new GUIStyle("ShurikenToggle") + { + fontSize = SmallText.fontSize, + fontStyle = SmallText.fontStyle, + font = SmallText.font, + }; + FilterToggle.normal.textColor = SmallText.normal.textColor; + FilterToggle.onNormal.textColor = SmallText.normal.textColor; + } + + public void Dispose() + { + DestroyImmediate(BG); + } + + public static Texture2D CreateColorTexture(Color color) + { + var texture = new Texture2D(1, 1); + texture.hideFlags = HideFlags.HideAndDontSave; + texture.name = "Color " + color; + texture.SetPixel(0, 0, color); + texture.Apply(); + return texture; + } + } + + public enum LogType + { + Editor, + File + } + + // sec + private const float UPDATE_INTERVAL = 1f; + + private enum Tab + { + Pointers, + Event, + Filters + } + + [MenuItem("Window/TouchScript/Debug", false, 0)] + static void createWindow() + { + EditorWindow window = GetWindow(false, "TSDebugger", true); + window.minSize = new Vector2(300, 600); + + window.Show(); + } + + private Styles styles; + + private LogType logType; + private IPointerLogger pLogger; + private PointerVisualizer pointerVisualizer; + private PagedList pointerList; + private PagedList eventList; + + [NonSerialized] + private Tab activeTab; + + [NonSerialized] + private int pointerDataCount = 0; + + [NonSerialized] + private List pointerData = new List(); + + [NonSerialized] + private List pointerStrings = new List(); + + [NonSerialized] + private List pointerEvents = new List(); + + [NonSerialized] + private PointerLog selectedEvent; + + [NonSerialized] + private int selectedEventId = -1; + + [NonSerialized] + private Dictionary pointerEventStrings = new Dictionary(); + + [NonSerialized] + private PointerLogFilter logFilter; + + private FilterState filterState; + //private Vector2 filterScroll; + + private bool autoRefresh = true; + + [NonSerialized] + private float refreshTime; + + private void OnEnable() + { + setupLogging(); + if (EditorApplication.isPlayingOrWillChangePlaymode) + setupPlaymodeLogging(); + + if (filterState == null) + { + filterState = new FilterState(); + filterState.Load(); + } + + EditorApplication.update += updateHandler; + } + + private void OnDisable() + { + if (styles != null) styles.Dispose(); + + EditorApplication.update -= updateHandler; + } + + private void updateHandler() + { + if (pLogger == null) return; + + if (pLogger.PointerCount != pointerDataCount) + { + updatePointers(); + } + if (autoRefresh) + { + var time = Time.unscaledTime; + if (time > refreshTime) + { + refreshTime = time + UPDATE_INTERVAL; + updateEventList(); + } + } + } + + #region Init + + private void setupPlaymodeLogging() + { + TouchScriptDebugger.Instance.PointerLogger = pLogger = new PointerLogger(); + } + + private void setupLogging() + { + pointerVisualizer = new PointerVisualizer(); + pointerList = new PagedList(22, drawPointerItem, pointerSelectionChangeHandler); + eventList = new PagedList(22, drawEventItem, eventSelectionChangeHandler); + logFilter = new PointerLogFilter(); + } + + private void loadLogFile() + { + var path = EditorUtility.OpenFilePanel("Load log data", Application.dataPath, "bin"); + if (string.IsNullOrEmpty(path)) return; + pLogger = new FileReaderLogger(path); + updatePointers(); + } + + private void updateLogType(LogType type) + { + logType = type; + + if (type == LogType.Editor) + { + if (pLogger != null) pLogger.Dispose(); + if (EditorApplication.isPlayingOrWillChangePlaymode) setupPlaymodeLogging(); + } + else + { + TouchScriptDebugger.Instance.ClearPointerLogger(); + } + } + + #endregion + + #region Update + + private void updatePointers() + { + pointerData = pLogger.GetFilteredPointerData(); + pointerList.Count = pointerData.Count; + pointerDataCount = pointerData.Count; + + pointerStrings.Clear(); + foreach (var data in pointerData) + { + pointerStrings.Add(string.Format("{0} (id: {1})", data.Type, data.Id)); + } + + Repaint(); + } + + private void updateEventList() + { + if (pointerList.SelectedId == -1) + { + pointerEvents.Clear(); + eventList.Count = 0; + } + else + { + var id = pointerData[pointerList.SelectedId].Id; + syncFilter(); + pointerEvents = pLogger.GetFilteredLogsForPointer(id, logFilter); + eventList.Count = pointerEvents.Count; + } + + Repaint(); + } + + private void selectPointer() + { + updateEventList(); + pointerVisualizer.Hide(); + } + + private void selectEvent() + { + if (eventList.SelectedId == -1) + { + pointerVisualizer.Hide(); + selectedEventId = -1; + return; + } + + selectedEventId = eventList.SelectedId; + selectedEvent = pointerEvents[selectedEventId]; + pointerVisualizer.Show(selectedEvent.State.Position); + switchTab(Tab.Event); + } + + private void syncFilter() + { + logFilter.EventMask = filterState.PointerEventMask; + } + + private string getEventString(int id) + { + var evt = pointerEvents[id]; + string str = null; + if (!pointerEventStrings.TryGetValue(evt.Id, out str)) + { + DateTime time = new DateTime(evt.Tick); + str = string.Format("{0} > {1}", time.ToString("HH:mm:ss.ffffff"), evt.Event); + pointerEventStrings.Add(evt.Id, str); + } + return str; + } + + #endregion + + #region Misc + + private void switchTab(Tab newTab) + { + activeTab = newTab; + + //if (activeTab == Tab.Filters) + //{ + // filterScroll = Vector2.zero; + //} + + Repaint(); + } + + #endregion + + #region Drawing + + private void OnGUI() + { + if (styles == null) styles = new Styles(); + + int height = styles.TopWindowHeight; + //int height = pointerList.FitHeight(10); + + var rect = GUIUtils.GetPaddedRect(height + styles.GlobalPadding * 2, styles.Padding); + + GUI.DrawTexture(rect, styles.BG); + GUIUtils.ContractRect(ref rect, styles.GlobalPadding); + + switch (activeTab) + { + case Tab.Pointers: + if (pointerData.Count == 0) + drawNoData(rect); + else + pointerList.Draw(rect); + break; + case Tab.Event: + if (selectedEventId == -1) + drawNoData(rect); + else + drawSelectedEvent(rect); + break; + case Tab.Filters: + drawFilters(rect); + break; + } + + drawTabs(); + drawRefresh(); + + //eventList.Count = 100; + rect = GUIUtils.GetPaddedRect(0, styles.Padding, true); + + GUI.DrawTexture(rect, styles.BG); + GUIUtils.ContractRect(ref rect, styles.GlobalPadding); + + if (pointerEvents.Count == 0) + drawNoData(rect); + else + eventList.Draw(rect); + } + + private void drawFilters(Rect rect) + { + //GUI.Toggle(rect, true, " Test", styles.FilterToggle); + + GUI.Label(rect, "Show pointer events:"); + + rect.y += 20; + rect.height -= 20; + var scrollRect = new Rect(rect); + scrollRect.height *= 2; + scrollRect.width -= 40; + //scrollRect.x = 0; + //scrollRect.y = 0; + + //using (var scope = new GUI.ScrollViewScope(rect, filterScroll, scrollRect)) + //{ + scrollRect.height = 14; + var names = Enum.GetNames(typeof (PointerEvent)); + using (var changeScope = new EditorGUI.ChangeCheckScope()) + { + for (var i = 1; i < names.Length; i++) + { + var evt = (PointerEvent) i; + filterState.SetEventValue(evt, + GUI.Toggle(scrollRect, filterState.IsEventEnabled(evt), " " + names[i], styles.FilterToggle)); + scrollRect.y += scrollRect.height; + } + if (changeScope.changed) filterState.Save(); + } + // filterScroll = scope.scrollPosition; + //} + + scrollRect.y += 4; + scrollRect.height = 20; + using (var scope = new EditorGUI.DisabledScope(pointerList.SelectedId == -1)) + { + if (GUI.Button(scrollRect, "Apply filter")) + { + updateEventList(); + } + } + } + + private void drawTabs() + { + var rect = GUILayoutUtility.GetRect(0, styles.TabHeight, GUILayout.ExpandWidth(true)); + rect.x += styles.Padding; + rect.y -= styles.Padding; + + rect.width = styles.TabWidth; + if (drawTab(rect, "Pointers", activeTab == Tab.Pointers)) + activeTab = Tab.Pointers; + rect.x += rect.width; + if (drawTab(rect, "Event", activeTab == Tab.Event)) + activeTab = Tab.Event; + rect.x += rect.width; + if (drawTab(rect, "Filters", activeTab == Tab.Filters)) + activeTab = Tab.Filters; + } + + private void drawRefresh() + { + var rect = GUILayoutUtility.GetRect(0, styles.RefreshHeight, GUILayout.ExpandWidth(true)); + GUIUtils.ContractRect(ref rect, styles.Padding); + + var sourceRect = new Rect(rect); + sourceRect.width = 50; + GUI.Label(sourceRect, " Source", styles.SmallText); + sourceRect.x += sourceRect.width; + using (var scope = new EditorGUI.ChangeCheckScope()) + { + logType = (LogType) EditorGUI.EnumPopup(sourceRect, "", logType); + if (scope.changed) updateLogType(logType); + } + + if (logType == LogType.File) + { + sourceRect.x += sourceRect.width + 2; + sourceRect.width = 40; + sourceRect.height = 15; + if (GUI.Button(sourceRect, "Load", styles.SmallButton)) + { + loadLogFile(); + } + } + + var refreshRect = new Rect(rect); + refreshRect.x = refreshRect.width - 50 - 60; + refreshRect.width = 50; + autoRefresh = GUI.Toggle(refreshRect, autoRefresh, " Auto", styles.FilterToggle); + + using (var scope = new EditorGUI.DisabledScope(autoRefresh)) + { + rect.x = rect.width - 60; + rect.width = 60; + rect.height = 15; + rect.y -= 1; + if (GUI.Button(rect, "Refresh", styles.SmallButton)) + { + updateEventList(); + } + } + } + + private void drawSelectedEvent(Rect rect) + { + if (selectedEvent.Id == -1) + { + GUI.Label(rect, "No event selected.", styles.EnterPlayModeText); + return; + } + + var transform = selectedEvent.State.Target; + var path = selectedEvent.State.TargetPath; + + GUI.Label(rect, string.Format("{0}\nPosition: {1}\nPrevious: {2}\nFlags: {3}, Buttons: {4}", + getEventString(selectedEventId), selectedEvent.State.Position, + selectedEvent.State.PreviousPosition, selectedEvent.State.Flags, + PointerUtils.ButtonsToString(selectedEvent.State.Buttons))); + rect.y += 64; + rect.height = 20; + GUI.Label(rect, "Target: "); + using (var scope = new EditorGUI.DisabledScope(true)) + { + var fieldRect = new Rect(rect); + fieldRect.x += 50; + fieldRect.width -= 50; + EditorGUI.ObjectField(fieldRect, transform, typeof (Transform), true); + } + + if (path != null) + { + rect.y += 20; + rect.height = 16; + GUI.Label(rect, path, styles.SmallText); + } + } + + private bool drawTab(Rect rect, string content, bool selected) + { + switch (Event.current.type) + { + case EventType.MouseDown: + if (rect.Contains(Event.current.mousePosition)) + { + Event.current.Use(); + return true; + } + break; + case EventType.Layout: + case EventType.Repaint: + if (selected) GUI.DrawTexture(rect, styles.BG); + rect.x += styles.TabPadding; + GUI.Label(rect, content); + break; + } + + return false; + } + + private void drawNoData(Rect rect) + { + GUI.Label(rect, "No data available.", styles.EnterPlayModeText); + } + + private void drawPlaymodeText(Rect rect) + { + GUI.Label(rect, "Data is only available in Play Mode.", styles.EnterPlayModeText); + } + + private void drawPointerItem(int id, Rect rect, bool selected) + { + var bg = GUI.backgroundColor; + if (id == -1) + { + GUI.backgroundColor = styles.PointerItemEmpty; + GUI.Box(rect, "", styles.PointerItemStyle); + GUI.backgroundColor = bg; + return; + } + + if (selected) + { + GUI.backgroundColor = styles.PointerItemSelected; + } + + GUI.Box(rect, pointerStrings[id], styles.PointerItemStyle); + GUI.backgroundColor = bg; + } + + private void drawEventItem(int id, Rect rect, bool selected) + { + var bg = GUI.backgroundColor; + if (id == -1) + { + GUI.backgroundColor = styles.PointerItemEmpty; + GUI.Box(rect, "", styles.PointerItemStyle); + GUI.backgroundColor = bg; + return; + } + + if (selected) + { + GUI.backgroundColor = styles.PointerItemSelected; + } + + GUI.Box(rect, getEventString(id), styles.PointerItemStyle); + GUI.backgroundColor = bg; + } + + #endregion + + #region List handlers + + private void pointerSelectionChangeHandler(int id) + { + selectPointer(); + } + + private void eventSelectionChangeHandler(int id) + { + selectEvent(); + } + + #endregion + + private class PointerVisualizer + { + private int currentDebugId = -1; + + public PointerVisualizer() {} + + public void Show(Vector2 position) + { + if (!Application.isPlaying) return; + + if (currentDebugId != -1) Hide(); + currentDebugId = GLDebug.DrawSquareScreenSpace(position, 0, Vector2.one * 20, GLDebug.MULTIPLY, float.MaxValue); + } + + public void Hide() + { + if (!Application.isPlaying) return; + + GLDebug.RemoveFigure(currentDebugId); + currentDebugId = -1; + } + } + + [Serializable] + private class FilterState : ISerializationCallbackReceiver + { + private const string KEY = "TouchScript:Debugger:FilterState"; + + [SerializeField] + private List pointerEvents; + + public uint PointerEventMask + { + get { return BinaryUtils.ToBinaryMask(pointerEvents); } + } + + public FilterState() + { + var eventsCount = Enum.GetValues(typeof (PointerEvent)).Length; + pointerEvents = new List(eventsCount); + syncPointerEvents(eventsCount); + } + + public bool IsEventEnabled(PointerEvent evt) + { + var id = (int) evt; + if (id >= pointerEvents.Count) return false; + return pointerEvents[id]; + } + + public void SetEventValue(PointerEvent evt, bool value) + { + pointerEvents[(int) evt] = value; + } + + public void Save() + { + var json = JsonUtility.ToJson(this); + EditorPrefs.SetString(KEY, json); + } + + public void Load() + { + if (!EditorPrefs.HasKey(KEY)) return; + var json = EditorPrefs.GetString(KEY); + JsonUtility.FromJsonOverwrite(json, this); + } + + private void syncPointerEvents(int count) + { + for (var i = pointerEvents.Count; i < count; i++) pointerEvents.Add(true); + } + + public void OnBeforeSerialize() {} + + public void OnAfterDeserialize() + { + var eventsCount = Enum.GetValues(typeof (PointerEvent)).Length; + if (pointerEvents.Count != eventsCount) + { + Debug.Log("FilterState serialization error!"); + if (pointerEvents.Count > eventsCount) + { + pointerEvents = new List(eventsCount); + } + syncPointerEvents(eventsCount); + } + } + } + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Debugging/PointerDebuggerWindow.cs.meta b/Source/Assets/TouchScript/Editor/Debugging/PointerDebuggerWindow.cs.meta new file mode 100644 index 000000000..f147fa5be --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Debugging/PointerDebuggerWindow.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1684ac3d3422e4b458a73b6955a0cae3 +timeCreated: 1500410762 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources.cs b/Source/Assets/TouchScript/Editor/EditorResources.cs new file mode 100644 index 000000000..41f15a5a0 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources.cs @@ -0,0 +1,64 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + * Adapted from https://github.com/Unity-Technologies/PostProcessing + */ + +using System; +using UnityEditor; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace TouchScript.Editor +{ + static class EditorResources + { + static string editorResourcesPath = string.Empty; + + internal static string EditorResourcesPath + { + get + { + if (string.IsNullOrEmpty(editorResourcesPath)) + { + string path; + + if (searchForEditorResourcesPath(out path)) + editorResourcesPath = path; + else + Debug.LogError("Unable to locate editor resources. Make sure the TouchScript package has been installed correctly."); + } + + return editorResourcesPath; + } + } + + internal static T Load(string name) + where T : Object + { + return AssetDatabase.LoadAssetAtPath(EditorResourcesPath + name); + } + + static bool searchForEditorResourcesPath(out string path) + { + path = string.Empty; + + string searchStr = "/TouchScript/Editor/EditorResources/"; + string str = null; + + foreach (var assetPath in AssetDatabase.GetAllAssetPaths()) + { + if (assetPath.Contains(searchStr)) + { + str = assetPath; + break; + } + } + + if (str == null) + return false; + + path = str.Substring(0, str.LastIndexOf(searchStr, StringComparison.Ordinal) + searchStr.Length); + return true; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/EditorResources.cs.meta b/Source/Assets/TouchScript/Editor/EditorResources.cs.meta new file mode 100644 index 000000000..9999498ee --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c529b7b5fb8104246a705de628148fcc +timeCreated: 1478409234 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources.meta b/Source/Assets/TouchScript/Editor/EditorResources.meta new file mode 100644 index 000000000..290e2b4a0 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d6a9095b435fc49be88fbe81cebedfa0 +folderAsset: yes +timeCreated: 1478315757 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons.meta b/Source/Assets/TouchScript/Editor/EditorResources/Icons.meta new file mode 100644 index 000000000..acc16807b --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources/Icons.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 375fcf571e23249898d00c0d11ffbf93 +folderAsset: yes +timeCreated: 1500984768 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/selector.png b/Source/Assets/TouchScript/Editor/EditorResources/Icons/selector.png new file mode 100644 index 000000000..3eb285fa8 Binary files /dev/null and b/Source/Assets/TouchScript/Editor/EditorResources/Icons/selector.png differ diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/selector.png.meta b/Source/Assets/TouchScript/Editor/EditorResources/Icons/selector.png.meta new file mode 100644 index 000000000..5f8eac14d --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources/Icons/selector.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: e0afdfca204fe4cd3a260d4df23e6a6a +timeCreated: 1500986715 +licenseType: Pro +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: 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: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/unknown.png b/Source/Assets/TouchScript/Editor/EditorResources/Icons/unknown.png new file mode 100644 index 000000000..7d9ded74d Binary files /dev/null and b/Source/Assets/TouchScript/Editor/EditorResources/Icons/unknown.png differ diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/unknown.png.meta b/Source/Assets/TouchScript/Editor/EditorResources/Icons/unknown.png.meta new file mode 100644 index 000000000..cc814c2da --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources/Icons/unknown.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 29c2d4978005b4ea68d2f3ecbd258ffd +timeCreated: 1500987331 +licenseType: Pro +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: 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: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/xy.png b/Source/Assets/TouchScript/Editor/EditorResources/Icons/xy.png new file mode 100644 index 000000000..e0ee77109 Binary files /dev/null and b/Source/Assets/TouchScript/Editor/EditorResources/Icons/xy.png differ diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/xy.png.meta b/Source/Assets/TouchScript/Editor/EditorResources/Icons/xy.png.meta new file mode 100644 index 000000000..ee0057901 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources/Icons/xy.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 88423ab2c1d7b4ad18b422f1405bf312 +timeCreated: 1500984768 +licenseType: Pro +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: 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: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/xz.png b/Source/Assets/TouchScript/Editor/EditorResources/Icons/xz.png new file mode 100644 index 000000000..55c91abdc Binary files /dev/null and b/Source/Assets/TouchScript/Editor/EditorResources/Icons/xz.png differ diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/xz.png.meta b/Source/Assets/TouchScript/Editor/EditorResources/Icons/xz.png.meta new file mode 100644 index 000000000..747e5b64b --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources/Icons/xz.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: a8bb65c0cb8d14e93baa4c3403e83181 +timeCreated: 1500984768 +licenseType: Pro +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: 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: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/yz.png b/Source/Assets/TouchScript/Editor/EditorResources/Icons/yz.png new file mode 100644 index 000000000..b38c8a412 Binary files /dev/null and b/Source/Assets/TouchScript/Editor/EditorResources/Icons/yz.png differ diff --git a/Source/Assets/TouchScript/Editor/EditorResources/Icons/yz.png.meta b/Source/Assets/TouchScript/Editor/EditorResources/Icons/yz.png.meta new file mode 100644 index 000000000..3ea117e2c --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources/Icons/yz.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 5b7a913101fce4f3589a24ca1780a607 +timeCreated: 1500984768 +licenseType: Pro +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: 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: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources/SettingsWindow.meta b/Source/Assets/TouchScript/Editor/EditorResources/SettingsWindow.meta new file mode 100644 index 000000000..e69e637c0 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources/SettingsWindow.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7a59b8419df174664a1744ef6715d004 +folderAsset: yes +timeCreated: 1478315757 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources/SettingsWindow/Header.png b/Source/Assets/TouchScript/Editor/EditorResources/SettingsWindow/Header.png new file mode 100644 index 000000000..6deee1470 Binary files /dev/null and b/Source/Assets/TouchScript/Editor/EditorResources/SettingsWindow/Header.png differ diff --git a/Source/Assets/TouchScript/Editor/EditorResources/SettingsWindow/Header.png.meta b/Source/Assets/TouchScript/Editor/EditorResources/SettingsWindow/Header.png.meta new file mode 100644 index 000000000..7177b7bb7 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources/SettingsWindow/Header.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: d72972e5e15a842c4a98ee0025f9d9aa +timeCreated: 1478315757 +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: -3 + maxTextureSize: 2048 + textureSettings: + filterMode: 0 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 0 + 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: 5 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorResources/TouchScript Component Icon.dds b/Source/Assets/TouchScript/Editor/EditorResources/TouchScript Component Icon.dds new file mode 100644 index 000000000..82ead2ebe Binary files /dev/null and b/Source/Assets/TouchScript/Editor/EditorResources/TouchScript Component Icon.dds differ diff --git a/Source/Assets/TouchScript/Editor/EditorResources/TouchScript Component Icon.dds.meta b/Source/Assets/TouchScript/Editor/EditorResources/TouchScript Component Icon.dds.meta new file mode 100644 index 000000000..8dafd3a9b --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorResources/TouchScript Component Icon.dds.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: e1e5ef31262d242ce8efe2020a27425e +timeCreated: 1501325322 +licenseType: Pro +IHVImageFormatImporter: + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 0 + isReadable: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorUI.meta b/Source/Assets/TouchScript/Editor/EditorUI.meta new file mode 100644 index 000000000..f8c1b5255 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorUI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3b24d098c65af4192a812e7d9e2862ef +folderAsset: yes +timeCreated: 1500501530 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorUI/GUIElements.cs b/Source/Assets/TouchScript/Editor/EditorUI/GUIElements.cs new file mode 100644 index 000000000..0fdeaab5b --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorUI/GUIElements.cs @@ -0,0 +1,137 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using UnityEditor; +using System.Reflection; + +namespace TouchScript.Editor.EditorUI +{ + internal static class GUIElements + { + public static GUIStyle Box; + public static GUIStyle BoxLabel; + + public static GUIStyle HelpBox; + public static GUIStyle HeaderBox; + public static GUIStyle HeaderCheckbox; + public static GUIStyle HeaderFoldout; + public static GUIStyle SmallText; + public static GUIStyle SmallTextRight; + public static GUIStyle SmallButton; + + public static Texture2D PaneOptionsIcon; + + static GUIElements() + { + Box = new GUIStyle(GUI.skin.box) + { + margin = new RectOffset(0, 0, 1, 0), + padding = new RectOffset(0, 0, 0, 0), + contentOffset = new Vector2(0, 0), + alignment = TextAnchor.MiddleCenter, + }; + Box.normal.textColor = GUI.skin.label.normal.textColor; + + BoxLabel = new GUIStyle(GUI.skin.label) + { + fontSize = 9, + padding = new RectOffset(0, 0, 5, 0), + }; + + HelpBox = new GUIStyle("HelpBox") + { + wordWrap = true, + }; + + HeaderBox = new GUIStyle("ShurikenModuleTitle") + { + font = (new GUIStyle("Label")).font, + border = new RectOffset(15, 7, 4, 4), + fixedHeight = 22, + contentOffset = new Vector2(20f, -2f), + }; + + HeaderCheckbox = new GUIStyle("ShurikenCheckMark"); + HeaderFoldout = new GUIStyle("Foldout"); + + SmallText = new GUIStyle("miniLabel") + { + alignment = TextAnchor.UpperLeft, + }; + + SmallTextRight = new GUIStyle("miniLabel") + { + alignment = TextAnchor.UpperRight, + }; + + SmallButton = new GUIStyle("Button") + { + fontSize = SmallText.fontSize, + fontStyle = SmallText.fontStyle, + font = SmallText.font, + }; + + if (EditorGUIUtility.isProSkin) + PaneOptionsIcon = (Texture2D) EditorGUIUtility.LoadRequired("Builtin Skins/DarkSkin/Images/pane options.png"); + else + PaneOptionsIcon = (Texture2D) EditorGUIUtility.LoadRequired("Builtin Skins/LightSkin/Images/pane options.png"); + } + + public static bool Header(GUIContent title, SerializedProperty expanded, SerializedProperty enabled = null, PropertyInfo enabledProp = null) + { + var rect = GUILayoutUtility.GetRect(16f, 22f, HeaderBox); + GUI.Box(rect, title, HeaderBox); + + var display = expanded == null || expanded.isExpanded; + + var foldoutRect = new Rect(rect.x + 4f, rect.y + 3f, 13f, 13f); + var e = Event.current; + + if (e.type == EventType.Repaint) + { + if (enabled == null) HeaderFoldout.Draw(foldoutRect, false, false, display, false); + else HeaderCheckbox.Draw(foldoutRect, false, false, enabled.boolValue, false); + } + + if (e.type == EventType.MouseDown) + { + if (enabled != null) + { + const float kOffset = 2f; + foldoutRect.x -= kOffset; + foldoutRect.y -= kOffset; + foldoutRect.width += kOffset * 2f; + foldoutRect.height += kOffset * 2f; + + if (foldoutRect.Contains(e.mousePosition)) + { + enabled.boolValue = !enabled.boolValue; + if (enabledProp != null) enabledProp.SetValue(enabled.serializedObject.targetObject, enabled.boolValue, null); + e.Use(); + return display; + } + } + if (rect.Contains(e.mousePosition)) + { + display = !display; + expanded.isExpanded = !expanded.isExpanded; + e.Use(); + } + } + + return display; + } + + public static bool BasicHelpBox(GUIContent text) + { + EditorGUILayout.LabelField(text, HelpBox); + var rect = GUILayoutUtility.GetRect(10, 22, GUILayout.ExpandWidth(true)); + rect.x = rect.width - 86; + rect.width = 100; + rect.height = 14; + return GUI.Button(rect, "Switch to Advanced", SmallButton); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/EditorUI/GUIElements.cs.meta b/Source/Assets/TouchScript/Editor/EditorUI/GUIElements.cs.meta new file mode 100644 index 000000000..96963eaa6 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorUI/GUIElements.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 41044f63d9ffc4867a0cab8a7a893dbe +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorUI/GUIUtils.cs b/Source/Assets/TouchScript/Editor/EditorUI/GUIUtils.cs new file mode 100644 index 000000000..db12ed199 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorUI/GUIUtils.cs @@ -0,0 +1,30 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Editor.EditorUI +{ + public static class GUIUtils + { + public static Rect GetPaddedRect(int minHeight, int padding, bool expandHeight = false) + { + Rect rect; + if (expandHeight) + rect = GUILayoutUtility.GetRect(padding * 2, minHeight + padding * 2, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)); + else + rect = GUILayoutUtility.GetRect(padding * 2, minHeight + padding * 2, GUILayout.ExpandWidth(true)); + ContractRect(ref rect, padding); + return rect; + } + + public static void ContractRect(ref Rect rect, int delta) + { + rect.x += delta; + rect.y += delta; + rect.width -= delta * 2; + rect.height -= delta * 2; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/EditorUI/GUIUtils.cs.meta b/Source/Assets/TouchScript/Editor/EditorUI/GUIUtils.cs.meta new file mode 100644 index 000000000..79a3041ab --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorUI/GUIUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e4af8ab947e1c4b959f59dba2bce9dc3 +timeCreated: 1500502342 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/EditorUI/PagedList.cs b/Source/Assets/TouchScript/Editor/EditorUI/PagedList.cs new file mode 100644 index 000000000..5ebd45c7b --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorUI/PagedList.cs @@ -0,0 +1,190 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.EditorUI +{ + public class PagedList + { + private class Styles + { + public int HeaderHeight = 0; + public int FooterHeight = 20; + + public int FooterButtonWidth = 60; + public int FooterButtonHeight = 20; + public int FooterButtonSpace = 10; + public int FooterTextWidth = 8; + + public GUIContent TextPrev = new GUIContent("< Prev"); + public GUIContent TextNext = new GUIContent("Next >"); + + public int GetIntFieldSize(int value) + { + if (value < 10) return FooterTextWidth + 8; + if (value < 100) return 2 * FooterTextWidth + 8; + if (value < 1000) return 3 * FooterTextWidth + 8; + return 4; + } + } + + public int ItemHeight { get; set; } + + public int Count + { + get { return count; } + set + { + if (count == value) return; + count = value; + reset(); + } + } + + public int PagesTotal + { + get { return pagesTotal; } + } + + public int SelectedId + { + get { return selectedId; } + } + + private static Styles styles; + + private Action onSelectionChange; + private Action drawItem; + + private int count = 0; + // Starts from 1 + private int page = 1; + private int pagesTotal = 1; + private int itemsPerPage = 1; + + private int selectedId = -1; + private int oldSelectedId = -1; + + public PagedList(int itemHeight, Action drawItem, Action onSelectionChange) + { + if (styles == null) styles = new Styles(); + + ItemHeight = itemHeight; + this.onSelectionChange = onSelectionChange; + this.drawItem = drawItem; + } + + public int FitHeight(int numberOfItems) + { + return ItemHeight * numberOfItems + styles.FooterHeight + styles.HeaderHeight; + } + + public void Draw(Rect rect) + { + var h = rect.height; + h -= styles.HeaderHeight + styles.FooterHeight; + if (h < 0) return; + rect.y += styles.HeaderHeight; + rect.height = ItemHeight; + + itemsPerPage = Mathf.FloorToInt(h / 22f); + pagesTotal = Mathf.CeilToInt((float) count / itemsPerPage); + + int start = (Count - 1) - (page - 1) * itemsPerPage; + if (start < 0) return; + + var i = start; + var t = 0; + while (t < itemsPerPage) + { + if (i < 0) draw(-1, rect); + else draw(i, rect); + rect.y += ItemHeight; + i--; + t++; + } + + rect.height = styles.FooterHeight; + drawFooter(rect); + + if (oldSelectedId != selectedId) + { + oldSelectedId = selectedId; + onSelectionChange(selectedId); + } + } + + private void drawFooter(Rect parentRect) + { + parentRect.y += 5; + parentRect.height -= 5; + + var rect = new Rect(parentRect.x, parentRect.y, styles.FooterButtonWidth, styles.FooterButtonHeight); + if (GUI.Button(rect, styles.TextPrev)) + { + setPage(page - 1); + } + + rect.x += rect.width + styles.FooterButtonSpace; + rect.width = styles.GetIntFieldSize(page); + var newPage = EditorGUI.DelayedIntField(rect, page); + if (page != newPage) setPage(newPage); + + rect.x += rect.width + styles.FooterButtonSpace; + rect.width = 16; + GUI.Label(rect, "of"); + + rect.x += rect.width + styles.FooterButtonSpace; + rect.width = styles.GetIntFieldSize(page); + + using (var scope = new EditorGUI.DisabledScope(true)) + { + EditorGUI.IntField(rect, PagesTotal); + } + + rect.x += rect.width + styles.FooterButtonSpace; + rect.width = styles.FooterButtonWidth; + if (GUI.Button(rect, styles.TextNext)) + { + setPage(page + 1); + } + } + + private void draw(int id, Rect rect) + { + switch (Event.current.type) + { + case EventType.Repaint: + case EventType.Layout: + drawItem(id, rect, selectedId == id); + break; + case EventType.MouseDown: + if (rect.Contains(Event.current.mousePosition)) + { + selectedId = id; + Event.current.Use(); + //GUI.changed = true; + } + break; + } + } + + private void setPage(int newPage) + { + if (newPage < 1) newPage = 1; + else if (newPage > PagesTotal) newPage = PagesTotal; + page = newPage; + } + + private void reset() + { + page = 1; + selectedId = -1; + oldSelectedId = -1; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/EditorUI/PagedList.cs.meta b/Source/Assets/TouchScript/Editor/EditorUI/PagedList.cs.meta new file mode 100644 index 000000000..5d52de706 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/EditorUI/PagedList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 52832a1748b2b4dfaae6bcec7cf1721e +timeCreated: 1500501497 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures.meta b/Source/Assets/TouchScript/Editor/Gestures.meta new file mode 100644 index 000000000..7b45d582f --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4475ec4f99bf244e081e98be8e0f24be +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/FlickGestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/FlickGestureEditor.cs new file mode 100644 index 000000000..971c6ba11 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/FlickGestureEditor.cs @@ -0,0 +1,55 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures +{ + [CustomEditor(typeof(FlickGesture), true)] + internal sealed class FlickGestureEditor : GestureEditor + { + public static readonly GUIContent DIRECTION = new GUIContent("Direction", "Flick direction."); + public static readonly GUIContent MOVEMENT_THRESHOLD = new GUIContent("Movement Threshold (cm)", "Minimum distance in cm pointers must move for the gesture to begin."); + public static readonly GUIContent FLICK_TIME = new GUIContent("Flick Time (sec)", "Time interval in seconds during which pointers must move by for the gesture to be recognized."); + public static readonly GUIContent MIN_DISTANCE = new GUIContent("Minimum Distance (cm)", "Minimum distance in cm pointers must move in seconds for the gesture to be recognized."); + + public static readonly GUIContent TEXT_HELP = new GUIContent("This component a fast flick gesture started over the GameObject."); + + private SerializedProperty direction; + private SerializedProperty flickTime; + private SerializedProperty minDistance; + private SerializedProperty movementThreshold; + + protected override void OnEnable() + { + base.OnEnable(); + + flickTime = serializedObject.FindProperty("flickTime"); + minDistance = serializedObject.FindProperty("minDistance"); + movementThreshold = serializedObject.FindProperty("movementThreshold"); + direction = serializedObject.FindProperty("direction"); + } + + protected override void drawBasic() + { + EditorGUILayout.PropertyField(direction, DIRECTION); + } + + protected override void drawGeneral() + { + EditorGUIUtility.labelWidth = 180; + EditorGUILayout.PropertyField(direction, DIRECTION); + EditorGUILayout.PropertyField(movementThreshold, MOVEMENT_THRESHOLD); + EditorGUILayout.PropertyField(flickTime, FLICK_TIME); + EditorGUILayout.PropertyField(minDistance, MIN_DISTANCE); + } + + protected override GUIContent getHelpText() + { + return TEXT_HELP; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/FlickGestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/FlickGestureEditor.cs.meta new file mode 100644 index 000000000..6414b1201 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/FlickGestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d390813d043714f6a84f7cf00f65f612 +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/GestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/GestureEditor.cs new file mode 100644 index 000000000..1232e8a97 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/GestureEditor.cs @@ -0,0 +1,411 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Editor.EditorUI; +using TouchScript.Gestures; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; +using System.Reflection; + +namespace TouchScript.Editor.Gestures +{ + [CustomEditor(typeof(Gesture), true)] + internal class GestureEditor : UnityEditor.Editor + { + private const string FRIENDLY_GESTURES_PROP = "friendlyGestures"; + + public static readonly GUIContent TEXT_GENERAL_HEADER = new GUIContent("General settings", "General settings."); + public static readonly GUIContent TEXT_LIMITS_HEADER = new GUIContent("Limits", "Properties that limit the gesture."); + public static readonly GUIContent TEXT_GESTURES_HEADER = new GUIContent("Interaction with other Gestures", "Settings which allow this gesture to interact with other gestures."); + public static readonly GUIContent TEXT_ADVANCED_HEADER = new GUIContent("Advanced", "Advanced properties."); + public static readonly GUIContent TEXT_USE_SEND_MESSAGE_HEADER = new GUIContent("Use SendMessage", "Enables sending events through SendMessage. Warnning: this method is slow!"); + public static readonly GUIContent TEXT_USE_UNITY_EVENTS_HEADER = new GUIContent("Use Unity Events", "Enables sending events through Unity Events."); + + public static readonly GUIContent TEXT_FRIENDLY = new GUIContent("Friendly Gestures", "List of gestures which can work together with this gesture."); + public static readonly GUIContent TEXT_DEBUG_MODE = new GUIContent("Debug", "Turns on gesture debug mode."); + public static readonly GUIContent TEXT_SEND_STATE_CHANGE_MESSAGES = new GUIContent("Send State Change Messages", "If checked, the gesture will send a message for every state change. Gestures usually have their own more specific messages, so you should keep this toggle unchecked unless you really want state change messages."); + public static readonly GUIContent TEXT_SEND_MESSAGE_TARGET = new GUIContent("Target", "The GameObject target of Unity Messages. If null, host GameObject is used."); + public static readonly GUIContent TEXT_SEND_STATE_CHANGE_EVENTS = new GUIContent("Send State Change Events", "If checked, the gesture will send a events for every state change. Gestures usually have their own more specific messages, so you should keep this toggle unchecked unless you really want state change events."); + public static readonly GUIContent TEXT_REQUIRE_GESTURE_TO_FAIL = new GUIContent("Require Other Gesture to Fail", "Another gesture must fail for this gesture to start."); + public static readonly GUIContent TEXT_LIMIT_POINTERS = new GUIContent(" Limit Pointers", ""); + + protected bool shouldDrawAdvanced = false; + protected bool shouldDrawGeneral = true; + + private Gesture instance; + + private SerializedProperty basicEditor; + + private SerializedProperty debugMode, friendlyGestures, requireGestureToFail, + minPointers, maxPointers, + useSendMessage, sendMessageTarget, sendStateChangeMessages, + useUnityEvents, sendStateChangeEvents; + + private SerializedProperty OnStateChange; + private SerializedProperty advancedProps, limitsProps, generalProps; + private PropertyInfo useUnityEvents_prop, useSendMessage_prop; + + private ReorderableList friendlyGesturesList; + private int indexToRemove = -1; + private float minPointersFloat, maxPointersFloat; + + protected virtual void OnEnable() + { + instance = target as Gesture; + + advancedProps = serializedObject.FindProperty("advancedProps"); + limitsProps = serializedObject.FindProperty("limitsProps"); + generalProps = serializedObject.FindProperty("generalProps"); + basicEditor = serializedObject.FindProperty("basicEditor"); + + debugMode = serializedObject.FindProperty("debugMode"); + friendlyGestures = serializedObject.FindProperty("friendlyGestures"); + requireGestureToFail = serializedObject.FindProperty("requireGestureToFail"); + useSendMessage = serializedObject.FindProperty("useSendMessage"); + sendMessageTarget = serializedObject.FindProperty("sendMessageTarget"); + sendStateChangeMessages = serializedObject.FindProperty("sendStateChangeMessages"); + useUnityEvents = serializedObject.FindProperty("useUnityEvents"); + sendStateChangeEvents = serializedObject.FindProperty("sendStateChangeEvents"); + minPointers = serializedObject.FindProperty("minPointers"); + maxPointers = serializedObject.FindProperty("maxPointers"); + + OnStateChange = serializedObject.FindProperty("OnStateChange"); + + var type = instance.GetType(); + useUnityEvents_prop = type.GetProperty("UseUnityEvents", BindingFlags.Instance | BindingFlags.Public); + useSendMessage_prop = type.GetProperty("UseSendMessage", BindingFlags.Instance | BindingFlags.Public); + + minPointersFloat = minPointers.intValue; + maxPointersFloat = maxPointers.intValue; + + friendlyGesturesList = new ReorderableList(serializedObject, friendlyGestures, false, true, false, true); + friendlyGesturesList.drawHeaderCallback += (rect) => GUI.Label(rect, TEXT_FRIENDLY); + friendlyGesturesList.drawElementCallback += (rect, index, active, focused) => + { + rect.height = 16; + var gesture = friendlyGestures.GetArrayElementAtIndex(index).objectReferenceValue as Gesture; + if (gesture == null) + { + // Killing null elements. + indexToRemove = index; + EditorGUI.LabelField(rect, GUIContent.none); + return; + } + EditorGUI.LabelField(rect, string.Format("{0} @ {1}", gesture.GetType().Name, gesture.name), GUIElements.BoxLabel); + }; + friendlyGesturesList.onRemoveCallback += list => { indexToRemove = list.index; }; + } + + public override void OnInspectorGUI() + { +#if UNITY_5_6_OR_NEWER + serializedObject.UpdateIfRequiredOrScript(); +#else + serializedObject.UpdateIfDirtyOrScript(); +#endif + + GUILayout.Space(5); + bool display; + + if (basicEditor.boolValue) + { + drawBasic(); + if (GUIElements.BasicHelpBox(getHelpText())) + { + basicEditor.boolValue = false; + Repaint(); + } + } + else + { + if (shouldDrawGeneral) + { + display = GUIElements.Header(TEXT_GENERAL_HEADER, generalProps); + if (display) + { + EditorGUI.indentLevel++; + drawGeneral(); + EditorGUI.indentLevel--; + } + } + + drawOtherGUI(); + + display = GUIElements.Header(TEXT_LIMITS_HEADER, limitsProps); + if (display) + { + EditorGUI.indentLevel++; + drawLimits(); + EditorGUI.indentLevel--; + } + + display = GUIElements.Header(TEXT_GESTURES_HEADER, friendlyGestures); + if (display) + { + EditorGUI.indentLevel++; + drawFriendlyGestures(); + drawRequireToFail(); + GUILayout.Space(5); + EditorGUI.indentLevel--; + } + + display = GUIElements.Header(TEXT_USE_UNITY_EVENTS_HEADER, useUnityEvents, useUnityEvents, useUnityEvents_prop); + if (display) + { + EditorGUI.indentLevel++; + using (new EditorGUI.DisabledGroupScope(!useUnityEvents.boolValue)) + { + drawUnityEvents(); + } + EditorGUI.indentLevel--; + } + + display = GUIElements.Header(TEXT_USE_SEND_MESSAGE_HEADER, useSendMessage, useSendMessage, useSendMessage_prop); + if (display) + { + EditorGUI.indentLevel++; + using (new EditorGUI.DisabledGroupScope(!useSendMessage.boolValue)) + { + drawSendMessage(); + } + EditorGUI.indentLevel--; + } + + if (shouldDrawAdvanced) + { + display = GUIElements.Header(TEXT_ADVANCED_HEADER, advancedProps); + if (display) + { + EditorGUI.indentLevel++; + drawAdvanced(); + EditorGUI.indentLevel--; + } + } + + drawDebug(); + } + + serializedObject.ApplyModifiedProperties(); + } + + protected virtual void drawBasic() {} + + protected virtual GUIContent getHelpText() + { + return new GUIContent(""); + } + + protected virtual void drawOtherGUI() {} + + protected virtual void drawGeneral() {} + + protected virtual void drawLimits() + { + var limitPointers = (minPointers.intValue > 0) || (maxPointers.intValue > 0); + var newLimitPointers = EditorGUILayout.ToggleLeft(TEXT_LIMIT_POINTERS, limitPointers); + if (newLimitPointers) + { + if (!limitPointers) + { + minPointersFloat = 0; + maxPointersFloat = 10; + } + else + { + minPointersFloat = (float) minPointers.intValue; + maxPointersFloat = (float) maxPointers.intValue; + } + //or this values doesn't change from script properly + EditorGUI.indentLevel++; + EditorGUILayout.LabelField("Min: " + (int) minPointersFloat + ", Max: " + (int) maxPointersFloat); + EditorGUILayout.MinMaxSlider(ref minPointersFloat, ref maxPointersFloat, 0, 10, GUILayout.MaxWidth(150)); + EditorGUI.indentLevel--; + } + else + { + if (limitPointers) + { + minPointersFloat = 0; + maxPointersFloat = 0; + } + } + + minPointers.intValue = (int) minPointersFloat; + maxPointers.intValue = (int) maxPointersFloat; + } + + protected virtual void drawFriendlyGestures() + { + GUILayout.Space(5); + drawGestureList(friendlyGestures, addFriendlyGesture); + GUILayout.Space(5); + } + + protected virtual void drawUnityEvents() + { + EditorGUILayout.PropertyField(OnStateChange); + EditorGUILayout.PropertyField(sendStateChangeEvents, TEXT_SEND_STATE_CHANGE_EVENTS); + } + + protected virtual void drawSendMessage() + { + EditorGUILayout.PropertyField(sendMessageTarget, TEXT_SEND_MESSAGE_TARGET); + EditorGUILayout.PropertyField(sendStateChangeMessages, TEXT_SEND_STATE_CHANGE_MESSAGES); + } + + protected virtual void drawAdvanced() {} + + protected virtual void drawDebug() + { + if (debugMode == null) return; + EditorGUILayout.PropertyField(debugMode, TEXT_DEBUG_MODE); + } + + protected virtual void drawRequireToFail() + { + EditorGUILayout.PropertyField(requireGestureToFail, TEXT_REQUIRE_GESTURE_TO_FAIL); + } + + #region Gesture List + + private void drawGestureList(SerializedProperty prop, Action addGesture) + { + indexToRemove = -1; + +// Rect listRect = EditorGUI.IndentedRect(GUILayoutUtility.GetRect(0.0f, (prop.arraySize == 0 ? 0 : prop.arraySize - 1) * 16 + 60, GUILayout.ExpandWidth(true))); +// friendlyGesturesList.DoList(listRect); + friendlyGesturesList.DoLayoutList(); + + GUILayout.Space(9); + + Rect dropArea = GUILayoutUtility.GetRect(0.0f, 50.0f, GUIElements.Box, GUILayout.ExpandWidth(true)); + GUI.Box(dropArea, "Drag a Gesture Here", GUIElements.Box); + switch (Event.current.type) + { + case EventType.DragUpdated: + if (dropArea.Contains(Event.current.mousePosition)) + DragAndDrop.visualMode = DragAndDropVisualMode.Copy; + break; + case EventType.DragPerform: + if (dropArea.Contains(Event.current.mousePosition)) + { + DragAndDrop.visualMode = DragAndDropVisualMode.Copy; + DragAndDrop.AcceptDrag(); + + foreach (UnityEngine.Object obj in DragAndDrop.objectReferences) + { + if (obj is GameObject) + { + var go = obj as GameObject; + Gesture[] gestures = go.GetComponents(); + foreach (Gesture gesture in gestures) + { + addGesture(prop, gesture); + } + } + else if (obj is Gesture) + { + addGesture(prop, obj as Gesture); + } + } + + Event.current.Use(); + } + break; + } + + if (indexToRemove > -1) + { + removeFriendlyGestureAt(prop, indexToRemove); + } + } + + private void addFriendlyGesture(SerializedProperty prop, Gesture value) + { + if (value == null || value == target) return; + + // Adding that gesture to this gesture. + var shouldAdd = true; + for (int i = 0; i < prop.arraySize; i++) + { + if (prop.GetArrayElementAtIndex(i).objectReferenceValue == value) + { + shouldAdd = false; + break; + } + } + + if (shouldAdd) + { + prop.arraySize++; + prop.GetArrayElementAtIndex(prop.arraySize - 1).objectReferenceValue = value; + } + + // Adding this gesture to that gesture. + shouldAdd = true; + var so = new SerializedObject(value); + so.Update(); + SerializedProperty p = so.FindProperty(FRIENDLY_GESTURES_PROP); + for (int i = 0; i < p.arraySize; i++) + { + if (p.GetArrayElementAtIndex(i).objectReferenceValue == target) + { + shouldAdd = false; + break; + } + } + + if (shouldAdd) + { + p.arraySize++; + p.GetArrayElementAtIndex(p.arraySize - 1).objectReferenceValue = target; + so.ApplyModifiedProperties(); + EditorUtility.SetDirty(value); + } + } + + private Gesture removeFriendlyGestureAt(SerializedProperty prop, int index) + { + // Removing that gesture from this gesture. + var gesture = prop.GetArrayElementAtIndex(index).objectReferenceValue as Gesture; + removeFromArray(prop, index); + + if (gesture == null) return null; + + // Removing this gesture from that gesture. + var so = new SerializedObject(gesture); + so.Update(); + SerializedProperty p = so.FindProperty(FRIENDLY_GESTURES_PROP); + for (int j = 0; j < p.arraySize; j++) + { + if (p.GetArrayElementAtIndex(j).objectReferenceValue == target) + { + removeFromArray(p, j); + break; + } + } + + so.ApplyModifiedProperties(); + EditorUtility.SetDirty(gesture); + + return gesture; + } + + // A hack to remove a gesture from a list. + // Was needed because array.DeleteArrayElementAtIndex() wasn't actually deleting an item. + private void removeFromArray(SerializedProperty array, int index) + { + if (index != array.arraySize - 1) + { + array.GetArrayElementAtIndex(index).objectReferenceValue = + array.GetArrayElementAtIndex(array.arraySize - 1).objectReferenceValue; + } + array.arraySize--; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/GestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/GestureEditor.cs.meta new file mode 100644 index 000000000..97d2effca --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/GestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ae4469bb607a64842a4d00aee505e8ec +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/LongPressGestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/LongPressGestureEditor.cs new file mode 100644 index 000000000..dc2f49fe3 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/LongPressGestureEditor.cs @@ -0,0 +1,62 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures +{ + [CustomEditor(typeof(LongPressGesture), true)] + internal sealed class LongPressGestureEditor : GestureEditor + { + public static readonly GUIContent TEXT_TIME_TO_PRESS = new GUIContent("Time to Press (sec)", "Limit maximum number of simultaneous pointers."); + public static readonly GUIContent TEXT_DISTANCE_LIMIT = new GUIContent("Limit Movement (cm)", "Gesture fails if fingers move more than cm."); + + public static readonly GUIContent TEXT_HELP = new GUIContent("This component recognizes a gesture when this GameObject is being pressed for seconds."); + + private SerializedProperty distanceLimit, timeToPress; + private SerializedProperty OnLongPress; + + protected override void OnEnable() + { + timeToPress = serializedObject.FindProperty("timeToPress"); + distanceLimit = serializedObject.FindProperty("distanceLimit"); + OnLongPress = serializedObject.FindProperty("OnLongPress"); + + base.OnEnable(); + } + + protected override void drawBasic() + { + EditorGUILayout.PropertyField(timeToPress, TEXT_TIME_TO_PRESS); + } + + protected override GUIContent getHelpText() + { + return TEXT_HELP; + } + + protected override void drawGeneral() + { + EditorGUILayout.PropertyField(timeToPress, TEXT_TIME_TO_PRESS); + + base.drawGeneral(); + } + + protected override void drawLimits() + { + EditorGUILayout.PropertyField(distanceLimit, TEXT_DISTANCE_LIMIT); + + base.drawLimits(); + } + + protected override void drawUnityEvents() + { + EditorGUILayout.PropertyField(OnLongPress); + + base.drawUnityEvents(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/LongPressGestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/LongPressGestureEditor.cs.meta new file mode 100644 index 000000000..b82f0da38 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/LongPressGestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 36027325105764b7b978c0b8e8059eaf +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/MetaGestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/MetaGestureEditor.cs new file mode 100644 index 000000000..1d50c7784 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/MetaGestureEditor.cs @@ -0,0 +1,28 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures +{ + [CustomEditor(typeof(MetaGesture), true)] + internal sealed class MetaGestureEditor : GestureEditor + { + public static readonly GUIContent TEXT_HELP = new GUIContent("This component serves as a proxy from TouchScript gesture recognition logic to C# events. It catches pointers like a normal event and dispatches events for every event of caught pointers."); + + protected override void OnEnable() + { + base.OnEnable(); + + shouldDrawGeneral = false; + } + + protected override GUIContent getHelpText() + { + return TEXT_HELP; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/MetaGestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/MetaGestureEditor.cs.meta new file mode 100644 index 000000000..e0ebd396d --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/MetaGestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1526de045810e4fd49854b9fda413e2a +timeCreated: 1500968297 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/PressGestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/PressGestureEditor.cs new file mode 100644 index 000000000..5c00da861 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/PressGestureEditor.cs @@ -0,0 +1,48 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures +{ + [CustomEditor(typeof(PressGesture), true)] + internal sealed class PressGestureEditor : GestureEditor + { + public static readonly GUIContent TEXT_IGNORE_CHILDREN = new GUIContent("Ignore Children", "If selected this gesture ignores pointers from children."); + + public static readonly GUIContent TEXT_HELP = new GUIContent("This component recognizes a gesture when at least one pointer is pressed over this GameObject."); + + private SerializedProperty ignoreChildren; + private SerializedProperty OnPress; + + protected override void OnEnable() + { + ignoreChildren = serializedObject.FindProperty("ignoreChildren"); + OnPress = serializedObject.FindProperty("OnPress"); + + base.OnEnable(); + } + + protected override GUIContent getHelpText() + { + return TEXT_HELP; + } + + protected override void drawGeneral() + { + EditorGUILayout.PropertyField(ignoreChildren, TEXT_IGNORE_CHILDREN); + + base.drawGeneral(); + } + + protected override void drawUnityEvents() + { + EditorGUILayout.PropertyField(OnPress); + + base.drawUnityEvents(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/PressGestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/PressGestureEditor.cs.meta new file mode 100644 index 000000000..dfed44842 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/PressGestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 195a64932cddb476d903543a759d786e +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/ReleaseGestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/ReleaseGestureEditor.cs new file mode 100644 index 000000000..ff2b1ec22 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/ReleaseGestureEditor.cs @@ -0,0 +1,48 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures +{ + [CustomEditor(typeof(ReleaseGesture), true)] + internal sealed class ReleaseGestureEditor : GestureEditor + { + public static readonly GUIContent TEXT_IGNORE_CHILDREN = new GUIContent("Ignore Children", "If selected this gesture ignores pointers from children."); + + public static readonly GUIContent TEXT_HELP = new GUIContent("This component recognizes a gesture when all pointers are lifted off from this GameObject."); + + private SerializedProperty ignoreChildren; + private SerializedProperty OnRelease; + + protected override void OnEnable() + { + ignoreChildren = serializedObject.FindProperty("ignoreChildren"); + OnRelease = serializedObject.FindProperty("OnRelease"); + + base.OnEnable(); + } + + protected override GUIContent getHelpText() + { + return TEXT_HELP; + } + + protected override void drawGeneral() + { + EditorGUILayout.PropertyField(ignoreChildren, TEXT_IGNORE_CHILDREN); + + base.drawGeneral(); + } + + protected override void drawUnityEvents() + { + EditorGUILayout.PropertyField(OnRelease); + + base.drawUnityEvents(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/ReleaseGestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/ReleaseGestureEditor.cs.meta new file mode 100644 index 000000000..fc2aa5873 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/ReleaseGestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c7e1387ffe85a4cdda62de924d7ab0be +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/TapGestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/TapGestureEditor.cs new file mode 100644 index 000000000..eacfcc60b --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TapGestureEditor.cs @@ -0,0 +1,82 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures +{ + [CustomEditor(typeof(TapGesture), true)] + internal sealed class TapGestureEditor : GestureEditor + { + public static readonly GUIContent TEXT_TIME_LIMIT = new GUIContent("Limit Time (sec)", "Gesture fails if in seconds user didn't do the required number of taps."); + public static readonly GUIContent TEXT_DISTANCE_LIMIT = new GUIContent("Limit Movement (cm)", "Gesture fails if taps are made more than cm away from the first pointer position."); + public static readonly GUIContent TEXT_NUMBER_OF_TAPS_REQUIRED = new GUIContent("Number of Taps Required", "Number of taps required for this gesture to be recognized."); + public static readonly GUIContent TEXT_COMBINE_POINTERS = new GUIContent("Combine Pointers", "When several fingers are used to perform a tap, pointers released not earlier than seconds ago are used to calculate gesture's final screen position."); + public static readonly GUIContent TEXT_COMBINE_TOUCH_POINTERS = new GUIContent("Combine Interval (sec)", TEXT_COMBINE_POINTERS.tooltip); + + public static readonly GUIContent TEXT_HELP = new GUIContent("This component recognizes a gesture when this GameObject is tapped."); + + private SerializedProperty numberOfTapsRequired, distanceLimit, timeLimit, combinePointers, combinePointersInterval; + private SerializedProperty OnTap; + + protected override void OnEnable() + { + numberOfTapsRequired = serializedObject.FindProperty("numberOfTapsRequired"); + timeLimit = serializedObject.FindProperty("timeLimit"); + distanceLimit = serializedObject.FindProperty("distanceLimit"); + combinePointers = serializedObject.FindProperty("combinePointers"); + combinePointersInterval = serializedObject.FindProperty("combinePointersInterval"); + + OnTap = serializedObject.FindProperty("OnTap"); + + base.OnEnable(); + } + + protected override void drawBasic() + { + EditorGUIUtility.labelWidth = 180; + EditorGUILayout.IntPopup(numberOfTapsRequired, new[] {new GUIContent("One"), new GUIContent("Two"), new GUIContent("Three")}, new[] {1, 2, 3}, TEXT_NUMBER_OF_TAPS_REQUIRED, GUILayout.ExpandWidth(true)); + } + + protected override GUIContent getHelpText() + { + return TEXT_HELP; + } + + protected override void drawGeneral() + { + EditorGUIUtility.labelWidth = 180; + EditorGUILayout.IntPopup(numberOfTapsRequired, new[] {new GUIContent("One"), new GUIContent("Two"), new GUIContent("Three")}, new[] {1, 2, 3}, TEXT_NUMBER_OF_TAPS_REQUIRED, GUILayout.ExpandWidth(true)); + EditorGUILayout.PropertyField(combinePointers, TEXT_COMBINE_POINTERS); + if (combinePointers.boolValue) + { + EditorGUIUtility.labelWidth = 160; + EditorGUILayout.BeginHorizontal(); + GUILayout.Label(GUIContent.none, GUILayout.Width(10)); + EditorGUILayout.BeginVertical(GUILayout.ExpandWidth(true)); + EditorGUILayout.PropertyField(combinePointersInterval, TEXT_COMBINE_TOUCH_POINTERS); + EditorGUILayout.EndVertical(); + EditorGUILayout.EndHorizontal(); + } + base.drawGeneral(); + } + + protected override void drawLimits() + { + EditorGUILayout.PropertyField(timeLimit, TEXT_TIME_LIMIT); + EditorGUILayout.PropertyField(distanceLimit, TEXT_DISTANCE_LIMIT); + + base.drawLimits(); + } + + protected override void drawUnityEvents() + { + EditorGUILayout.PropertyField(OnTap); + + base.drawUnityEvents(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/TapGestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/TapGestureEditor.cs.meta new file mode 100644 index 000000000..3da0a2daa --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TapGestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5629e2a1e89ae402f81a9453febcbdd9 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures.meta b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures.meta new file mode 100644 index 000000000..32d8f6cfa --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5a173685f455645ce85f70ce30426f30 +folderAsset: yes +timeCreated: 1477923463 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base.meta b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base.meta new file mode 100644 index 000000000..b2477e5dc --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dd13e80fa4ff84072bc1c78063b54d99 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/OnePointTransformGestureBaseEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/OnePointTransformGestureBaseEditor.cs new file mode 100644 index 000000000..b2016ecfd --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/OnePointTransformGestureBaseEditor.cs @@ -0,0 +1,58 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures.TransformGestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures.TransformGestures.Base +{ + internal class OnePointTransformGestureBaseEditor : TransformGestureBaseEditor + { + protected override void drawBasic() + { + var typeValue = type.intValue; + int newType = 0; + EditorGUILayout.LabelField(TEXT_TYPE); + + var rect = GUILayoutUtility.GetRect(0, 20, GUILayout.ExpandWidth(true)); + rect.x += 10; + rect.width = 70; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_ROTATION, + (typeValue & (int) TransformGesture.TransformType.Rotation) != 0)) + newType |= (int) TransformGesture.TransformType.Rotation; + rect.x += rect.width; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_SCALING, + (typeValue & (int) TransformGesture.TransformType.Scaling) != 0)) + newType |= (int) TransformGesture.TransformType.Scaling; + type.intValue = newType; + } + + protected override void drawGeneral() + { + var typeValue = type.intValue; + int newType = 0; + EditorGUILayout.LabelField(TEXT_TYPE); + + EditorGUI.indentLevel--; + var rect = GUILayoutUtility.GetRect(0, 20, GUILayout.ExpandWidth(true)); + rect.x += 26; + rect.width = 70; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_ROTATION, + (typeValue & (int) TransformGesture.TransformType.Rotation) != 0)) + newType |= (int) TransformGesture.TransformType.Rotation; + rect.x += rect.width; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_SCALING, + (typeValue & (int) TransformGesture.TransformType.Scaling) != 0)) + newType |= (int) TransformGesture.TransformType.Scaling; + type.intValue = newType; + EditorGUI.indentLevel++; + + EditorGUIUtility.labelWidth = 160; + EditorGUILayout.PropertyField(screenTransformThreshold, TEXT_SCREEN_TRANSFORM_THRESHOLD); + + base.drawGeneral(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/OnePointTransformGestureBaseEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/OnePointTransformGestureBaseEditor.cs.meta new file mode 100644 index 000000000..9ae64c84c --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/OnePointTransformGestureBaseEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 02b15da66d6e24de79d6f41a4323f422 +timeCreated: 1478434727 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TransformGestureBaseEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TransformGestureBaseEditor.cs new file mode 100644 index 000000000..fec57b9a4 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TransformGestureBaseEditor.cs @@ -0,0 +1,148 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Editor.EditorUI; +using TouchScript.Gestures.TransformGestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures.TransformGestures.Base +{ + internal class TransformGestureBaseEditor : GestureEditor + { + public static readonly GUIContent TEXT_PROJECTION_HEADER = new GUIContent("Projection", "Screen to 3D object projection parameters."); + + public static readonly GUIContent TEXT_TYPE = new GUIContent("Transform Type", "Specifies what gestures should be detected: Translation, Rotation, Scaling."); + public static readonly GUIContent TEXT_TYPE_TRANSLATION = new GUIContent("Translation", "Dragging with one ore more fingers."); + public static readonly GUIContent TEXT_TYPE_ROTATION = new GUIContent("Rotation", "Rotating with two or more fingers."); + public static readonly GUIContent TEXT_TYPE_SCALING = new GUIContent("Scaling", "Scaling with two or more fingers."); + public static readonly GUIContent TEXT_MIN_SCREEN_POINTS_DISTANCE = new GUIContent("Min Points Distance (cm)", "Minimum distance between two pointers (clusters) in cm to consider this gesture started. Used to prevent fake pointers spawned near real ones on cheap multitouch hardware to mess everything up."); + public static readonly GUIContent TEXT_SCREEN_TRANSFORM_THRESHOLD = new GUIContent("Movement Threshold (cm)", "Minimum distance in cm pointers must move for the gesture to begin."); + + public static readonly GUIContent TEXT_PROJECTION = new GUIContent("Projection Type", "Method used to project 2d screen positions of pointers into 3d space."); + public static readonly GUIContent TEXT_PROJECTION_LAYER = new GUIContent("Transform plane is parallel to the camera."); + public static readonly GUIContent TEXT_PROJECTION_OBJECT = new GUIContent("Transform plane is relative to the object."); + public static readonly GUIContent TEXT_PROJECTION_GLOBAL = new GUIContent("Transform plane is relative to the world."); + public static readonly GUIContent TEXT_PROJECTION_NORMAL = new GUIContent("Projection Normal", "Normal of the plane in 3d space where pointers' positions are projected."); + + + protected SerializedProperty type, minScreenPointsDistance, screenTransformThreshold; + protected SerializedProperty OnTransformStart, OnTransform, OnTransformComplete; + + public SerializedProperty projection, projectionPlaneNormal; + public SerializedProperty projectionProps; + + private Texture2D xy, xz, yz, unknown, selector; + private Color selectorColor = new Color(1, 1, 1, .05f); + private Color selectorColorSelected = new Color(1, 1, 1, .9f); + protected bool customProjection = false; + + protected override void OnEnable() + { + type = serializedObject.FindProperty("type"); + minScreenPointsDistance = serializedObject.FindProperty("minScreenPointsDistance"); + screenTransformThreshold = serializedObject.FindProperty("screenTransformThreshold"); + OnTransformStart = serializedObject.FindProperty("OnTransformStart"); + OnTransform = serializedObject.FindProperty("OnTransform"); + OnTransformComplete = serializedObject.FindProperty("OnTransformComplete"); + + projection = serializedObject.FindProperty("projection"); + projectionPlaneNormal = serializedObject.FindProperty("projectionPlaneNormal"); + projectionProps = serializedObject.FindProperty("projectionProps"); + + xy = EditorResources.Load("Icons/xy.png"); + xz = EditorResources.Load("Icons/xz.png"); + yz = EditorResources.Load("Icons/yz.png"); + unknown = EditorResources.Load("Icons/unknown.png"); + selector = EditorResources.Load("Icons/selector.png"); + + base.OnEnable(); + } + + protected override void drawUnityEvents() + { + EditorGUILayout.PropertyField(OnTransformStart); + EditorGUILayout.PropertyField(OnTransform); + EditorGUILayout.PropertyField(OnTransformComplete); + + base.drawUnityEvents(); + } + + protected void initCustomProjection() + { + var v = projectionPlaneNormal.vector3Value; + customProjection = !(v == Vector3.up || v == Vector3.right || v == Vector3.forward); + } + + protected bool drawProjection(bool custom) + { + EditorGUILayout.PropertyField(projection, TEXT_PROJECTION); + switch (projection.enumValueIndex) + { + case (int) TransformGesture.ProjectionType.Layer: + EditorGUILayout.LabelField(TEXT_PROJECTION_LAYER, GUIElements.HelpBox); + break; + case (int) TransformGesture.ProjectionType.Object: + EditorGUILayout.LabelField(TEXT_PROJECTION_OBJECT, GUIElements.HelpBox); + break; + case (int) TransformGesture.ProjectionType.Global: + EditorGUILayout.LabelField(TEXT_PROJECTION_GLOBAL, GUIElements.HelpBox); + break; + } + + if (projection.enumValueIndex != (int) TransformGesture.ProjectionType.Layer) + { + var v = projectionPlaneNormal.vector3Value; + var rect = GUILayoutUtility.GetRect(0, 35, GUILayout.ExpandWidth(true)); + + rect.width = 44; + rect.x += 10; + GUI.DrawTexture(rect, yz); + if (drawSelector(rect, !custom && v == Vector3.right)) + { + projectionPlaneNormal.vector3Value = Vector3.right; + custom = false; + } + + rect.x += rect.width + 5; + GUI.DrawTexture(rect, xz); + if (drawSelector(rect, !custom && v == Vector3.up)) + { + projectionPlaneNormal.vector3Value = Vector3.up; + custom = false; + } + + rect.x += rect.width + 5; + GUI.DrawTexture(rect, xy); + if (drawSelector(rect, !custom && v == Vector3.forward)) + { + projectionPlaneNormal.vector3Value = Vector3.forward; + custom = false; + } + + rect.x += rect.width + 10; + GUI.DrawTexture(rect, unknown); + if (drawSelector(rect, custom)) custom = true; + + if (custom) EditorGUILayout.PropertyField(projectionPlaneNormal, TEXT_PROJECTION_NORMAL); + } + + return custom; + } + + protected bool drawSelector(Rect rect, bool selected) + { + GUI.color = selected ? selectorColorSelected : selectorColor; + GUI.DrawTexture(rect, selector); + GUI.color = Color.white; + + if (Event.current.type == EventType.MouseUp && rect.Contains(Event.current.mousePosition)) + { + Event.current.Use(); + return true; + } + return false; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TransformGestureBaseEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TransformGestureBaseEditor.cs.meta new file mode 100644 index 000000000..1f7eaa1c6 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TransformGestureBaseEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0a7d71b067ae746e6b8c6f6adb9a455a +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TwoPointTransformGestureBaseEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TwoPointTransformGestureBaseEditor.cs new file mode 100644 index 000000000..4cb6492f4 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TwoPointTransformGestureBaseEditor.cs @@ -0,0 +1,70 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures.TransformGestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures.TransformGestures.Base +{ + internal class TwoPointTransformGestureBaseEditor : TransformGestureBaseEditor + { + protected override void drawBasic() + { + var typeValue = type.intValue; + int newType = 0; + EditorGUILayout.LabelField(TEXT_TYPE); + + var rect = GUILayoutUtility.GetRect(0, 20, GUILayout.ExpandWidth(true)); + rect.x += 10; + rect.width = 90; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_TRANSLATION, + (typeValue & (int) TransformGesture.TransformType.Translation) != 0)) + newType |= (int) TransformGesture.TransformType.Translation; + rect.x += rect.width; + rect.width = 70; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_ROTATION, + (typeValue & (int) TransformGesture.TransformType.Rotation) != 0)) + newType |= (int) TransformGesture.TransformType.Rotation; + rect.x += rect.width; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_SCALING, + (typeValue & (int) TransformGesture.TransformType.Scaling) != 0)) + newType |= (int) TransformGesture.TransformType.Scaling; + type.intValue = newType; + } + + protected override void drawGeneral() + { + var typeValue = type.intValue; + int newType = 0; + EditorGUILayout.LabelField(TEXT_TYPE); + EditorGUI.indentLevel--; + + var rect = GUILayoutUtility.GetRect(0, 20, GUILayout.ExpandWidth(true)); + rect.x += 26; + rect.width = 90; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_TRANSLATION, + (typeValue & (int) TransformGesture.TransformType.Translation) != 0)) + newType |= (int) TransformGesture.TransformType.Translation; + rect.x += rect.width; + rect.width = 70; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_ROTATION, + (typeValue & (int) TransformGesture.TransformType.Rotation) != 0)) + newType |= (int) TransformGesture.TransformType.Rotation; + rect.x += rect.width; + if (EditorGUI.ToggleLeft(rect, TEXT_TYPE_SCALING, + (typeValue & (int) TransformGesture.TransformType.Scaling) != 0)) + newType |= (int) TransformGesture.TransformType.Scaling; + type.intValue = newType; + + EditorGUI.indentLevel++; + + EditorGUIUtility.labelWidth = 160; + EditorGUILayout.PropertyField(minScreenPointsDistance, TEXT_MIN_SCREEN_POINTS_DISTANCE); + EditorGUILayout.PropertyField(screenTransformThreshold, TEXT_SCREEN_TRANSFORM_THRESHOLD); + + base.drawGeneral(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TwoPointTransformGestureBaseEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TwoPointTransformGestureBaseEditor.cs.meta new file mode 100644 index 000000000..ff8dcc5d9 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/Base/TwoPointTransformGestureBaseEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a65e2d10701184d48aa913a8ee9ff7e7 +timeCreated: 1478434727 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/PinnedTransformGestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/PinnedTransformGestureEditor.cs new file mode 100644 index 000000000..42a21a75a --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/PinnedTransformGestureEditor.cs @@ -0,0 +1,49 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Editor.Gestures.TransformGestures.Base; +using TouchScript.Gestures.TransformGestures; +using UnityEditor; +using UnityEngine; +using TouchScript.Editor.EditorUI; + +namespace TouchScript.Editor.Gestures.TransformGestures +{ + [CustomEditor(typeof(PinnedTransformGesture), true)] + internal class PinnedTransformGestureEditor : OnePointTransformGestureBaseEditor + { + public static readonly GUIContent TEXT_HELP = new GUIContent("This component recognizes a combination of rotation and scaling gestures on the GameObject if it was pinned to the world position."); + + protected override void OnEnable() + { + base.OnEnable(); + + initCustomProjection(); + } + + protected override void drawBasic() + { + base.drawBasic(); + + customProjection = drawProjection(customProjection); + } + + protected override GUIContent getHelpText() + { + return TEXT_HELP; + } + + protected override void drawOtherGUI() + { + var display = GUIElements.Header(TEXT_PROJECTION_HEADER, projectionProps); + if (display) + { + EditorGUI.indentLevel++; + customProjection = drawProjection(customProjection); + EditorGUILayout.Space(); + EditorGUI.indentLevel--; + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/PinnedTransformGestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/PinnedTransformGestureEditor.cs.meta new file mode 100644 index 000000000..572edf3f3 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/PinnedTransformGestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d721edb9d6d8748549ec079a57b79df0 +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/ScreenTransformGestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/ScreenTransformGestureEditor.cs new file mode 100644 index 000000000..c30fa37f3 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/ScreenTransformGestureEditor.cs @@ -0,0 +1,22 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Editor.Gestures.TransformGestures.Base; +using TouchScript.Gestures.TransformGestures; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Gestures.TransformGestures +{ + [CustomEditor(typeof(ScreenTransformGesture), true)] + internal class ScreenTransformGestureEditor : TwoPointTransformGestureBaseEditor + { + public static readonly GUIContent TEXT_HELP = new GUIContent("This component recognizes a combination of translation, rotation and scaling gestures on the GameObject in screen space."); + + protected override GUIContent getHelpText() + { + return TEXT_HELP; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/ScreenTransformGestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/ScreenTransformGestureEditor.cs.meta new file mode 100644 index 000000000..55916e61b --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/ScreenTransformGestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7078e7b2bcc744db9a94273d4be974a8 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/TransformGestureEditor.cs b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/TransformGestureEditor.cs new file mode 100644 index 000000000..d205e6f0e --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/TransformGestureEditor.cs @@ -0,0 +1,50 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Editor.Gestures.TransformGestures.Base; +using TouchScript.Gestures.TransformGestures; +using UnityEditor; +using TouchScript.Editor.EditorUI; +using UnityEngine; + +namespace TouchScript.Editor.Gestures.TransformGestures +{ + [CustomEditor(typeof(TransformGesture), true)] + internal class TransformGestureEditor : TwoPointTransformGestureBaseEditor + { + public static readonly GUIContent TEXT_HELP = new GUIContent("This component recognizes a combination of translation, rotation and scaling gestures on the GameObject."); + + + protected override void OnEnable() + { + base.OnEnable(); + + initCustomProjection(); + } + + protected override void drawBasic() + { + base.drawBasic(); + + customProjection = drawProjection(customProjection); + } + + protected override GUIContent getHelpText() + { + return TEXT_HELP; + } + + protected override void drawOtherGUI() + { + var display = GUIElements.Header(TEXT_PROJECTION_HEADER, projectionProps); + if (display) + { + EditorGUI.indentLevel++; + customProjection = drawProjection(customProjection); + EditorGUILayout.Space(); + EditorGUI.indentLevel--; + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/TransformGestureEditor.cs.meta b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/TransformGestureEditor.cs.meta new file mode 100644 index 000000000..ab5b67d9a --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Gestures/TransformGestures/TransformGestureEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6395072af0bed4c5c89a6e0481c61e63 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/InputSources.meta b/Source/Assets/TouchScript/Editor/InputSources.meta new file mode 100644 index 000000000..058768d73 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/InputSources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6a7cb655332e94e5ea0b3633c60a3135 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/InputSources/InputSourceEditor.cs b/Source/Assets/TouchScript/Editor/InputSources/InputSourceEditor.cs new file mode 100644 index 000000000..030363f56 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/InputSources/InputSourceEditor.cs @@ -0,0 +1,19 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Editor.Utils; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.InputSources +{ + public class InputSourceEditor : UnityEditor.Editor + { + protected virtual void OnEnable() {} + + public override void OnInspectorGUI() {} + + protected virtual void drawAdvanced() {} + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/InputSources/InputSourceEditor.cs.meta b/Source/Assets/TouchScript/Editor/InputSources/InputSourceEditor.cs.meta new file mode 100644 index 000000000..05be09a07 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/InputSources/InputSourceEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fd4c8249b12754612b72123e5bbada96 +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/InputSources/StandardInputEditor.cs b/Source/Assets/TouchScript/Editor/InputSources/StandardInputEditor.cs new file mode 100644 index 000000000..b6cc02970 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/InputSources/StandardInputEditor.cs @@ -0,0 +1,137 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.InputSources; +using UnityEditor; +using UnityEngine; +using TouchScript.Editor.EditorUI; + +namespace TouchScript.Editor.InputSources +{ + [CustomEditor(typeof(StandardInput), true)] + internal sealed class StandardInputEditor : InputSourceEditor + { + public static readonly GUIContent TEXT_GENERAL_HEADER = new GUIContent("General", "General settings."); + public static readonly GUIContent TEXT_WINDOWS_HEADER = new GUIContent("Windows", "Windows specific settings."); + public static readonly GUIContent TEXT_WEBGL_HEADER = new GUIContent("WebGL", "WebGL specific settings."); + + public static readonly GUIContent TEXT_EMULATE_MOUSE = new GUIContent("Emulate Second Mouse Pointer", "If selected, you can press ALT to make a stationary mouse pointer. This is used to simulate multi-touch."); + + public static readonly GUIContent TEXT_WINDOWS_API = new GUIContent("Select which touch API to use:\n - Windows 8 — new WM_POINTER API,\n - Windows 7 — old WM_TOUCH API,\n - Unity — Unity's WM_TOUCH implementation,\n - None — no touch."); + public static readonly GUIContent TEXT_WINDOWS8 = new GUIContent("Windows 8+ API"); + public static readonly GUIContent TEXT_WINDOWS7 = new GUIContent("Windows 7 API"); + public static readonly GUIContent TEXT_WINDOWS8_MOUSE = new GUIContent("Enable Mouse on Windows 8+"); + public static readonly GUIContent TEXT_WINDOWS7_MOUSE = new GUIContent("Enable Mouse on Windows 7"); + public static readonly GUIContent TEXT_UWP_MOUSE = new GUIContent("Enable Mouse on UWP"); + + public static readonly GUIContent TEXT_HELP = new GUIContent("This component gathers input data from various devices like touch, mouse and pen on all platforms."); + + private SerializedProperty basicEditor; + + private SerializedProperty windows8Touch, windows7Touch, webGLTouch, windows8Mouse, + windows7Mouse, universalWindowsMouse, emulateSecondMousePointer; + + private SerializedProperty generalProps, windowsProps, webglProps; + + private StandardInput instance; + + protected override void OnEnable() + { + base.OnEnable(); + + instance = target as StandardInput; + basicEditor = serializedObject.FindProperty("basicEditor"); + windows8Touch = serializedObject.FindProperty("windows8API"); + windows7Touch = serializedObject.FindProperty("windows7API"); + webGLTouch = serializedObject.FindProperty("webGLTouch"); + windows8Mouse = serializedObject.FindProperty("windows8Mouse"); + windows7Mouse = serializedObject.FindProperty("windows7Mouse"); + universalWindowsMouse = serializedObject.FindProperty("universalWindowsMouse"); + emulateSecondMousePointer = serializedObject.FindProperty("emulateSecondMousePointer"); + + generalProps = serializedObject.FindProperty("generalProps"); + windowsProps = serializedObject.FindProperty("windowsProps"); + webglProps = serializedObject.FindProperty("webglProps"); + } + + public override void OnInspectorGUI() + { +#if UNITY_5_6_OR_NEWER + serializedObject.UpdateIfRequiredOrScript(); +#else + serializedObject.UpdateIfDirtyOrScript(); +#endif + + GUILayout.Space(5); + + if (basicEditor.boolValue) + { + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(emulateSecondMousePointer, TEXT_EMULATE_MOUSE); + if (EditorGUI.EndChangeCheck()) + { + instance.EmulateSecondMousePointer = emulateSecondMousePointer.boolValue; + } + + if (GUIElements.BasicHelpBox(TEXT_HELP)) + { + basicEditor.boolValue = false; + Repaint(); + } + } + else + { + drawGeneral(); + drawWindows(); + drawWebGL(); + } + + serializedObject.ApplyModifiedProperties(); + base.OnInspectorGUI(); + } + + private void drawGeneral() + { + var display = GUIElements.Header(TEXT_GENERAL_HEADER, generalProps); + if (display) + { + EditorGUI.indentLevel++; + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(emulateSecondMousePointer, TEXT_EMULATE_MOUSE); + if (EditorGUI.EndChangeCheck()) + { + instance.EmulateSecondMousePointer = emulateSecondMousePointer.boolValue; + } + EditorGUI.indentLevel--; + } + } + + private void drawWindows() + { + var display = GUIElements.Header(TEXT_WINDOWS_HEADER, windowsProps); + if (display) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(windows8Touch, TEXT_WINDOWS8); + EditorGUILayout.PropertyField(windows7Touch, TEXT_WINDOWS7); + EditorGUILayout.LabelField(TEXT_WINDOWS_API, GUIElements.HelpBox); + EditorGUILayout.PropertyField(windows8Mouse, TEXT_WINDOWS8_MOUSE); + EditorGUILayout.PropertyField(windows7Mouse, TEXT_WINDOWS7_MOUSE); + EditorGUILayout.PropertyField(universalWindowsMouse, TEXT_UWP_MOUSE); + EditorGUI.indentLevel--; + } + } + + private void drawWebGL() + { + var display = GUIElements.Header(TEXT_WEBGL_HEADER, webglProps); + if (display) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(webGLTouch); + EditorGUI.indentLevel--; + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/InputSources/StandardInputEditor.cs.meta b/Source/Assets/TouchScript/Editor/InputSources/StandardInputEditor.cs.meta new file mode 100644 index 000000000..4472171b9 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/InputSources/StandardInputEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8fe4d6210b46c447c85e1c99fb0552ee +timeCreated: 1448668582 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Layers.meta b/Source/Assets/TouchScript/Editor/Layers.meta new file mode 100644 index 000000000..6485280f1 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Layers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2657176f96b684b809538f8c5b749d45 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Layers/FullscreenLayerEditor.cs b/Source/Assets/TouchScript/Editor/Layers/FullscreenLayerEditor.cs new file mode 100644 index 000000000..ed516d04f --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Layers/FullscreenLayerEditor.cs @@ -0,0 +1,52 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Editor.EditorUI; +using TouchScript.Layers; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Layers +{ + [CustomEditor(typeof(FullscreenLayer))] + internal sealed class FullscreenLayerEditor : UnityEditor.Editor + { + public static readonly GUIContent TEXT_HELP = new GUIContent("This component receives all pointers which were not caught by other layers. It sets poitners' Target property to itself, so all fullscreen gestures must be attached to the same GameObject as FullscreenGesture."); + + private SerializedProperty type, camera; + private FullscreenLayer instance; + + private void OnEnable() + { + instance = target as FullscreenLayer; + + type = serializedObject.FindProperty("type"); + camera = serializedObject.FindProperty("_camera"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(type); + if (EditorGUI.EndChangeCheck()) + { + instance.Type = (FullscreenLayer.LayerType) type.enumValueIndex; + } + + if (type.enumValueIndex == (int) FullscreenLayer.LayerType.Camera) + { + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(camera); + if (EditorGUI.EndChangeCheck()) + { + instance.Camera = camera.objectReferenceValue as Camera; + } + } + + EditorGUILayout.LabelField(TEXT_HELP, GUIElements.HelpBox); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Layers/FullscreenLayerEditor.cs.meta b/Source/Assets/TouchScript/Editor/Layers/FullscreenLayerEditor.cs.meta new file mode 100644 index 000000000..99e14132c --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Layers/FullscreenLayerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 342ab20b42be247d3b6df312e1a3607d +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Layers/StandardLayerEditor.cs b/Source/Assets/TouchScript/Editor/Layers/StandardLayerEditor.cs new file mode 100644 index 000000000..37406e88e --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Layers/StandardLayerEditor.cs @@ -0,0 +1,116 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Editor.EditorUI; +using TouchScript.Layers; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Layers +{ + [CustomEditor(typeof(StandardLayer), true)] + internal class StandardLayerEditor : UnityEditor.Editor + { + public static readonly GUIContent TEXT_ADVANCED_HEADER = new GUIContent("Advanced", "Advanced properties."); + public static readonly GUIContent TEXT_HIT_HEADER = new GUIContent("Hit test options", "Options which control what types of objects this layer should search under pointers."); + + public static readonly GUIContent TEXT_3D_OBJECTS = new GUIContent("Hit 3D Objects", "Layer should raycast 3D objects."); + public static readonly GUIContent TEXT_2D_OBJECTS = new GUIContent("Hit 2D Objects", "Layer should raycast 2D objects."); + public static readonly GUIContent TEXT_WORLD_UI = new GUIContent("Hit World UI", "Layer should raycast World Space UI."); + public static readonly GUIContent TEXT_SS_UI = new GUIContent("Hit Screen Space UI", "Layer should raycast Screen Space UI."); + public static readonly GUIContent TEXT_LAYER_MASK = new GUIContent("Layer Mask", "Layer mask."); + public static readonly GUIContent TEXT_HIT_FILTERS = new GUIContent("Use Hit FIlters", "Layer should test for individual HitTest objects."); + + public static readonly GUIContent TEXT_HELP = new GUIContent("This component assigns target GameObjects in the scene for pressed pointers."); + + private SerializedProperty advancedProps, hitProps; + private SerializedProperty basicEditor; + private SerializedProperty hit3DObjects; + private SerializedProperty hit2DObjects; + private SerializedProperty hitWorldSpaceUI; + private SerializedProperty hitScreenSpaceUI; + private SerializedProperty layerMask; + private SerializedProperty useHitFilters; + + protected virtual void OnEnable() + { + hideFlags = HideFlags.HideAndDontSave; + + advancedProps = serializedObject.FindProperty("advancedProps"); + hitProps = serializedObject.FindProperty("hitProps"); + basicEditor = serializedObject.FindProperty("basicEditor"); + hit3DObjects = serializedObject.FindProperty("hit3DObjects"); + hit2DObjects = serializedObject.FindProperty("hit2DObjects"); + hitWorldSpaceUI = serializedObject.FindProperty("hitWorldSpaceUI"); + hitScreenSpaceUI = serializedObject.FindProperty("hitScreenSpaceUI"); + layerMask = serializedObject.FindProperty("layerMask"); + useHitFilters = serializedObject.FindProperty("useHitFilters"); + } + + public override void OnInspectorGUI() + { +#if UNITY_5_6_OR_NEWER + serializedObject.UpdateIfRequiredOrScript(); +#else + serializedObject.UpdateIfDirtyOrScript(); +#endif + + GUILayout.Space(5); + + if (basicEditor.boolValue) + { + drawHit(); + + if (GUIElements.BasicHelpBox(TEXT_HELP)) + { + basicEditor.boolValue = false; + Repaint(); + } + } + else + { + drawHit(); + drawAdvanced(); + } + + serializedObject.ApplyModifiedProperties(); + } + + private void drawHit() + { + var display = GUIElements.Header(TEXT_HIT_HEADER, hitProps); + if (display) + { + EditorGUI.indentLevel++; + doDrawHit(); + EditorGUI.indentLevel--; + } + } + + protected virtual void doDrawHit() + { + EditorGUILayout.PropertyField(hitScreenSpaceUI, TEXT_SS_UI); + EditorGUILayout.PropertyField(hit3DObjects, TEXT_3D_OBJECTS); + EditorGUILayout.PropertyField(hit2DObjects, TEXT_2D_OBJECTS); + EditorGUILayout.PropertyField(hitWorldSpaceUI, TEXT_WORLD_UI); + EditorGUILayout.PropertyField(layerMask, TEXT_LAYER_MASK); + } + + private void drawAdvanced() + { + var display = GUIElements.Header(TEXT_ADVANCED_HEADER, advancedProps); + if (display) + { + EditorGUI.indentLevel++; + doDrawAdvanced(); + EditorGUI.indentLevel--; + } + } + + protected virtual void doDrawAdvanced() + { + EditorGUILayout.PropertyField(useHitFilters, TEXT_HIT_FILTERS); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Layers/StandardLayerEditor.cs.meta b/Source/Assets/TouchScript/Editor/Layers/StandardLayerEditor.cs.meta new file mode 100644 index 000000000..2ac07e3ac --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Layers/StandardLayerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6dddf8a020fa54bcba36b9d67bd59978 +timeCreated: 1477791911 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/TouchManagerEditor.cs b/Source/Assets/TouchScript/Editor/TouchManagerEditor.cs new file mode 100644 index 000000000..b5486f592 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/TouchManagerEditor.cs @@ -0,0 +1,270 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using System.Linq; +using TouchScript.Devices.Display; +using TouchScript.Editor.EditorUI; +using TouchScript.Layers; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; +using Object = UnityEngine.Object; +using System.Reflection; + +namespace TouchScript.Editor +{ + [CustomEditor(typeof(TouchManager))] + internal sealed class TouchManagerEditor : UnityEditor.Editor + { + public static readonly GUIContent TEXT_LAYERS_HELP = new GUIContent("Layers at the top get to process pointer input first."); + public static readonly GUIContent TEXT_LAYERS_HEADER = new GUIContent("Pointer Layers", "Sorted array of Pointer Layers in the scene."); + public static readonly GUIContent TEXT_USE_SEND_MESSAGE_HEADER = new GUIContent("Use SendMessage", "Enables sending events through SendMessage. Warnning: this method is slow!"); + public static readonly GUIContent TEXT_USE_UNITY_EVENTS_HEADER = new GUIContent("Use Unity Events", "Enables sending events through Unity Events."); + public static readonly GUIContent TEXT_DEFAULTS_HEADER = new GUIContent("Defaults", "Default actions when some of TouchScript components are not present in the scene."); + + public static readonly GUIContent TEXT_DEBUG_MODE = new GUIContent("Debug", "Turns on debug mode."); + public static readonly GUIContent TEXT_DISPLAY_DEVICE = new GUIContent("Display Device", "Display device properties where such parameters as target DPI are stored."); + public static readonly GUIContent TEXT_CREATE_CAMERA_LAYER = new GUIContent("Create Camera Layer", "Indicates if TouchScript should create a CameraLayer for you if no layers present in a scene. This is usually a desired behavior but sometimes you would want to turn this off if you are using TouchScript only to get input from some device."); + public static readonly GUIContent TEXT_CREATE_STANDARD_INPUT = new GUIContent("Create Standard Input", ""); + public static readonly GUIContent TEXT_SEND_MESSAGE_TARGET = new GUIContent("Target", "The GameObject target of Unity Messages. If null, host GameObject is used."); + public static readonly GUIContent TEXT_SEND_MESSAGE_EVENTS = new GUIContent("Events", "Which events should be sent as Unity Messages."); + + public static readonly GUIContent TEXT_HELP = new GUIContent("This component holds TouchScript configuration options for a scene."); + + private TouchManager instance; + private ReorderableList layersList; + private SerializedProperty basicEditor; + private SerializedProperty debugMode; + + private SerializedProperty layers, displayDevice, shouldCreateCameraLayer, shouldCreateStandardInput, + useSendMessage, sendMessageTarget, sendMessageEvents; + + private SerializedProperty OnFrameStart, OnFrameFinish, OnPointersAdd, OnPointersUpdate, OnPointersPress, + OnPointersRelease, OnPointersRemove, OnPointersCancel, useUnityEvents; + + private PropertyInfo useUnityEvents_prop, useSendMessage_prop; + + private void OnEnable() + { + instance = target as TouchManager; + + basicEditor = serializedObject.FindProperty("basicEditor"); + debugMode = serializedObject.FindProperty("debugMode"); + layers = serializedObject.FindProperty("layers"); + displayDevice = serializedObject.FindProperty("displayDevice"); + shouldCreateCameraLayer = serializedObject.FindProperty("shouldCreateCameraLayer"); + shouldCreateStandardInput = serializedObject.FindProperty("shouldCreateStandardInput"); + + useSendMessage = serializedObject.FindProperty("useSendMessage"); + sendMessageTarget = serializedObject.FindProperty("sendMessageTarget"); + sendMessageEvents = serializedObject.FindProperty("sendMessageEvents"); + + useUnityEvents = serializedObject.FindProperty("useUnityEvents"); + OnFrameStart = serializedObject.FindProperty("OnFrameStart"); + OnFrameFinish = serializedObject.FindProperty("OnFrameFinish"); + OnPointersAdd = serializedObject.FindProperty("OnPointersAdd"); + OnPointersUpdate = serializedObject.FindProperty("OnPointersUpdate"); + OnPointersPress = serializedObject.FindProperty("OnPointersPress"); + OnPointersRelease = serializedObject.FindProperty("OnPointersRelease"); + OnPointersRemove = serializedObject.FindProperty("OnPointersRemove"); + OnPointersCancel = serializedObject.FindProperty("OnPointersCancel"); + + var type = instance.GetType(); + useUnityEvents_prop = type.GetProperty("UseUnityEvents", BindingFlags.Instance | BindingFlags.Public); + useSendMessage_prop = type.GetProperty("UseSendMessage", BindingFlags.Instance | BindingFlags.Public); + + refresh(); + + layersList = new ReorderableList(serializedObject, layers, true, false, false, false); + layersList.headerHeight = 0; + layersList.footerHeight = 0; + layersList.drawElementCallback += (rect, index, active, focused) => + { + rect.height = 16; + rect.y += 2; + if (index >= layers.arraySize) return; + var layer = layers.GetArrayElementAtIndex(index).objectReferenceValue as TouchLayer; + if (layer == null) + { + EditorGUI.LabelField(rect, "null"); + return; + } + EditorGUI.LabelField(rect, layer.Name); + }; + } + + public override void OnInspectorGUI() + { +#if UNITY_5_6_OR_NEWER + serializedObject.UpdateIfRequiredOrScript(); +#else + serializedObject.UpdateIfDirtyOrScript(); +#endif + + GUILayout.Space(5); + + if (basicEditor.boolValue) + { + drawLayers(); + + if (GUIElements.BasicHelpBox(TEXT_HELP)) + { + basicEditor.boolValue = false; + Repaint(); + } + } + else + { + drawDefaults(); + drawLayers(); + drawUnityEvents(); + drawSendMessage(); + drawDebug(); + } + + GUILayout.Label("v. " + TouchManager.VERSION + (string.IsNullOrEmpty(TouchManager.VERSION_SUFFIX) ? "" : " " + TouchManager.VERSION_SUFFIX), GUIElements.SmallTextRight); + + serializedObject.ApplyModifiedProperties(); + } + + private void drawDefaults() + { + var display = GUIElements.Header(TEXT_DEFAULTS_HEADER, shouldCreateCameraLayer); + if (display) + { + EditorGUI.indentLevel++; + using (new EditorGUI.DisabledGroupScope(Application.isPlaying)) + { + EditorGUILayout.PropertyField(shouldCreateCameraLayer, TEXT_CREATE_CAMERA_LAYER); + EditorGUILayout.PropertyField(shouldCreateStandardInput, TEXT_CREATE_STANDARD_INPUT); + } + + var r = EditorGUILayout.GetControlRect(true, 16f, EditorStyles.objectField); + var label = EditorGUI.BeginProperty(r, TEXT_DISPLAY_DEVICE, displayDevice); + EditorGUI.BeginChangeCheck(); + r = EditorGUI.PrefixLabel(r, label); + var newDevice = EditorGUI.ObjectField(r, instance.DisplayDevice as Object, typeof(IDisplayDevice), true) as IDisplayDevice; + if (EditorGUI.EndChangeCheck()) + { + instance.DisplayDevice = newDevice; + EditorUtility.SetDirty(instance); + } + EditorGUI.EndProperty(); + + EditorGUI.indentLevel--; + } + } + + private void drawLayers() + { + var display = GUIElements.Header(TEXT_LAYERS_HEADER, layers); + if (display) + { + EditorGUILayout.LabelField(TEXT_LAYERS_HELP, GUIElements.HelpBox); + EditorGUI.indentLevel++; + using (new EditorGUI.DisabledGroupScope(Application.isPlaying)) + { + layersList.DoLayoutList(); + } + EditorGUI.indentLevel--; + } + } + + private void drawUnityEvents() + { + var display = GUIElements.Header(TEXT_USE_UNITY_EVENTS_HEADER, useUnityEvents, useUnityEvents, useUnityEvents_prop); + if (display) + { + EditorGUI.indentLevel++; + using (new EditorGUI.DisabledGroupScope(!useUnityEvents.boolValue)) + { + EditorGUILayout.PropertyField(OnFrameStart); + EditorGUILayout.PropertyField(OnFrameFinish); + EditorGUILayout.PropertyField(OnPointersAdd); + EditorGUILayout.PropertyField(OnPointersUpdate); + EditorGUILayout.PropertyField(OnPointersPress); + EditorGUILayout.PropertyField(OnPointersRelease); + EditorGUILayout.PropertyField(OnPointersRemove); + EditorGUILayout.PropertyField(OnPointersCancel); + } + EditorGUI.indentLevel--; + } + } + + private void drawSendMessage() + { + var display = GUIElements.Header(TEXT_USE_SEND_MESSAGE_HEADER, useSendMessage, useSendMessage, useSendMessage_prop); + if (display) + { + EditorGUI.indentLevel++; + using (new EditorGUI.DisabledGroupScope(!useSendMessage.boolValue)) + { + EditorGUILayout.PropertyField(sendMessageTarget, TEXT_SEND_MESSAGE_TARGET); + + var r = EditorGUILayout.GetControlRect(true, 16f, EditorStyles.layerMaskField); + var label = EditorGUI.BeginProperty(r, TEXT_SEND_MESSAGE_EVENTS, sendMessageEvents); + EditorGUI.BeginChangeCheck(); + r = EditorGUI.PrefixLabel(r, label); + var sMask = (TouchManager.MessageType) EditorGUI.EnumMaskField(r, instance.SendMessageEvents); + if (EditorGUI.EndChangeCheck()) + { + instance.SendMessageEvents = sMask; + EditorUtility.SetDirty(instance); + } + EditorGUI.EndProperty(); + } + EditorGUI.indentLevel--; + } + } + + private void drawDebug() + { + if (debugMode == null) return; + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(debugMode, TEXT_DEBUG_MODE); + if (EditorGUI.EndChangeCheck()) instance.DebugMode = debugMode.boolValue; + } + + private void refresh() + { + if (Application.isPlaying) + { + layers.arraySize = 0; + LayerManager.Instance.ForEach((l) => + { + layers.arraySize++; + layers.GetArrayElementAtIndex(layers.arraySize - 1).objectReferenceValue = l; + return true; + }); + } + else + { + var allLayers = FindObjectsOfType(typeof(TouchLayer)).Cast().ToList(); + var toRemove = new List(); + for (var i = 0; i < layers.arraySize; i++) + { + var layer = layers.GetArrayElementAtIndex(i).objectReferenceValue as TouchLayer; + if (layer == null || allLayers.IndexOf(layer) == -1) toRemove.Add(i); + else allLayers.Remove(layer); + } + + for (var i = toRemove.Count - 1; i >= 0; i--) + { + var index = toRemove[i]; + layers.GetArrayElementAtIndex(index).objectReferenceValue = null; + layers.DeleteArrayElementAtIndex(index); + } + + for (var i = 0; i < allLayers.Count; i++) + { + layers.arraySize++; + layers.GetArrayElementAtIndex(layers.arraySize - 1).objectReferenceValue = allLayers[i]; + } + } + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/TouchManagerEditor.cs.meta b/Source/Assets/TouchScript/Editor/TouchManagerEditor.cs.meta new file mode 100644 index 000000000..54d4d1326 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/TouchManagerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f3dba9dd8cd8c43b491b010ac13c04cf +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/TouchScriptSettingsWindow.cs b/Source/Assets/TouchScript/Editor/TouchScriptSettingsWindow.cs new file mode 100644 index 000000000..8645a087b --- /dev/null +++ b/Source/Assets/TouchScript/Editor/TouchScriptSettingsWindow.cs @@ -0,0 +1,188 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using UnityEditor; +using System.Collections.Generic; + +namespace TouchScript.Editor +{ + [InitializeOnLoad] + class TouchScriptSettingsWindow : EditorWindow + { + private const string SHOW_AT_STARTUP = "TouchScript.ShowSettingsOnStartup"; + + private const string DEFINE_DEBUG = "TOUCHSCRIPT_DEBUG"; + private const string DEFINE_TUIO = "TOUCHSCRIPT_TUIO"; + + private static bool showAtStartup = true; + private static TouchScriptSettingsWindowSO so; + + private static bool initialized; + private static int width = 500; + private static int height = 500; + private static GUIStyle header; + private static GUIStyle bold; + + private static Dictionary enabledDefines = new Dictionary() + { + {DEFINE_DEBUG, false}, + {DEFINE_TUIO, false}, + }; + + [MenuItem("Window/TouchScript/Settings", false, 0)] + static void createWindow() + { + EditorWindow window = GetWindow(true, "TouchScript Settings", true); + window.maxSize = new Vector2(width, height); + window.minSize = new Vector2(width, height); + + window.Show(); + } + + static TouchScriptSettingsWindow() + { + EditorApplication.update += doShow; + } + + private static void doShow() + { + EditorApplication.update -= doShow; + showAtStartup = EditorPrefs.GetBool(SHOW_AT_STARTUP, true); + + if (so == null) + { + var sos = Resources.FindObjectsOfTypeAll(); + if (sos.Length > 0) so = sos[0]; + } + if (so == null) + { + so = ScriptableObject.CreateInstance(); + if (showAtStartup) createWindow(); + } + } + + private void OnEnable() + { + updateEnabledDefines(); + } + + private void OnDisable() {} + + private void OnGUI() + { + init(); + + var headerRect = GUILayoutUtility.GetRect(width, 165); + GUI.Box(headerRect, "v. " + TouchManager.VERSION + + (string.IsNullOrEmpty(TouchManager.VERSION_SUFFIX) ? "" : " " + TouchManager.VERSION_SUFFIX), header); + + EditorGUILayout.BeginHorizontal(); + GUILayout.Space(10); + EditorGUILayout.BeginVertical(); + GUILayout.Space(10); + + EditorGUILayout.LabelField("Thank you for choosing TouchScript!", bold); + + EditorGUI.indentLevel++; + drawListElement("FAQ", "Some of the questions have been already asked multiple times. \nCheck if yours is in the list.", + "https://github.com/TouchScript/TouchScript/wiki/FAQ"); + drawListElement("Documentation", "Complete up-to-date generated docs with all public API annotated.", + "http://touchscript.github.io/docs/"); + drawListElement("Official Forum", "Want to ask a question about TouchScript? Use the official Forum.", + "http://touchprefab.com/index.php"); + drawListElement("Issues", "Found a bug? Feel free to post it in Github Issues.", + "https://github.com/TouchScript/TouchScript/issues"); + EditorGUI.indentLevel--; + + EditorGUILayout.LabelField("Options", bold); + + EditorGUI.indentLevel++; + setDefine(DEFINE_DEBUG, EditorGUILayout.ToggleLeft("Enable Debug Mode", enabledDefines[DEFINE_DEBUG])); + EditorGUILayout.LabelField("Enables " + DEFINE_DEBUG + " define to turn on some TouchScript debug features.", EditorStyles.miniLabel); + setDefine(DEFINE_TUIO, EditorGUILayout.ToggleLeft("Enable TUIO", enabledDefines[DEFINE_TUIO])); + EditorGUILayout.LabelField("Enables " + DEFINE_TUIO + " define, this adds TUIO protocol support.", EditorStyles.miniLabel); + + EditorGUILayout.EndVertical(); + GUILayout.Space(10); + EditorGUILayout.EndHorizontal(); + + drawShowAtStartup(); + } + + private void init() + { + if (initialized) return; + initialized = true; + + header = new GUIStyle(); + header.normal.background = EditorResources.Load("SettingsWindow/Header.png"); + header.normal.textColor = Color.white; + header.padding = new RectOffset(0, 70, 102, 0); + header.alignment = TextAnchor.UpperRight; + + bold = new GUIStyle(EditorStyles.largeLabel); + bold.fontStyle = FontStyle.Bold; + bold.fontSize = 18; + bold.wordWrap = true; + } + + private void drawListElement(string header, string content, string url) + { + GUILayout.BeginVertical(); + EditorGUILayout.LabelField("> " + header, EditorStyles.boldLabel); + EditorGUILayout.LabelField(content, EditorStyles.wordWrappedLabel); + GUILayout.EndVertical(); + + if (!string.IsNullOrEmpty(url)) + { + var rect = GUILayoutUtility.GetLastRect(); + EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link); + if (Event.current.type == EventType.mouseDown && rect.Contains(Event.current.mousePosition)) + Application.OpenURL(url); + } + } + + private void drawShowAtStartup() + { + bool show = GUI.Toggle(new Rect(10, height - 24, 120, 30), showAtStartup, "Show at startup"); + if (show != showAtStartup) + { + showAtStartup = show; + EditorPrefs.SetBool(SHOW_AT_STARTUP, showAtStartup); + } + } + + private void updateEnabledDefines() + { + var defines = new List(PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup).Split(';')); + var keys = new List(enabledDefines.Keys); + foreach (var define in keys) + { + if (defines.Contains(define)) enabledDefines[define] = true; + else enabledDefines[define] = false; + } + } + + private void setDefine(string name, bool value) + { + if (!enabledDefines.ContainsKey(name)) return; + if (enabledDefines[name] == value) return; + + enabledDefines[name] = value; + var defines = new List(PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup).Split(';')); + if (value) defines.Add(name); + else defines.Remove(name); + PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, string.Join(";", defines.ToArray())); + } + } + + public class TouchScriptSettingsWindowSO : ScriptableObject + { + private void Awake() + { + hideFlags = HideFlags.HideAndDontSave; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/TouchScriptSettingsWindow.cs.meta b/Source/Assets/TouchScript/Editor/TouchScriptSettingsWindow.cs.meta new file mode 100644 index 000000000..aaad65d1c --- /dev/null +++ b/Source/Assets/TouchScript/Editor/TouchScriptSettingsWindow.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7aae6ded351f04cd38bfb5b64a426541 +timeCreated: 1478312527 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Utils.meta b/Source/Assets/TouchScript/Editor/Utils.meta new file mode 100644 index 000000000..6d367cc55 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Utils.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b03a72ef98b8042dea6e409c3979567e +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers.meta b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers.meta new file mode 100644 index 000000000..22edc0881 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ae73a074ceffa4960804d2403f831251 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/NullToggleDrawer.cs b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/NullToggleDrawer.cs new file mode 100644 index 000000000..3920f081c --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/NullToggleDrawer.cs @@ -0,0 +1,186 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Utils.Attributes; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Utils.PropertyDrawers +{ + [CustomPropertyDrawer(typeof(NullToggleAttribute))] + internal sealed class NullToggleDrawer : PropertyDrawer + { + private bool? expanded = null; + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + updateExpanded(property); + if (expanded == false) return 16; + if (property.propertyType == SerializedPropertyType.ObjectReference && property.objectReferenceValue != null) return 16 * 3 + 2 * 2; + return 16 * 2 + 2; + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + updateExpanded(property); + + EditorGUIUtility.labelWidth = 60; + Begin(position, property, label); + if (expanded == false) + { + switch (property.propertyType) + { + case SerializedPropertyType.ObjectReference: + property.objectReferenceValue = (Object) getNullValue(property); + break; + case SerializedPropertyType.Integer: + property.intValue = (int) getNullValue(property); + break; + case SerializedPropertyType.Float: + property.floatValue = (float) getNullValue(property); + break; + } + } + else + { + EditorGUI.BeginChangeCheck(); + EditorGUI.LabelField(new Rect(position.x + 14, position.y + 18, 50, 16), new GUIContent("Value", label.tooltip)); + position = new Rect(position.x + 54, position.y + 18, Mathf.Min(position.width - 54, 100), 16); + switch (property.propertyType) + { + case SerializedPropertyType.ObjectReference: + var objValue = EditorGUI.ObjectField(position, GUIContent.none, property.objectReferenceValue, fieldInfo.FieldType, true); + if (EditorGUI.EndChangeCheck()) property.objectReferenceValue = objValue; + if (objValue != null) + { + position.y += 18; + position.width -= 18; + EditorGUI.LabelField(position, string.Format("of type {0}", objValue.GetType().Name), GUI.skin.FindStyle("ShurikenModuleTitle")); + } + break; + case SerializedPropertyType.Integer: + int intValue = EditorGUI.IntField(position, GUIContent.none, property.intValue); + if (EditorGUI.EndChangeCheck()) property.intValue = intValue; + break; + case SerializedPropertyType.Float: + float floatValue = EditorGUI.FloatField(position, GUIContent.none, property.floatValue); + if (EditorGUI.EndChangeCheck()) property.floatValue = floatValue; + break; + } + } + End(); + + + // case SerializedPropertyType.Float: + // { + // EditorGUI.BeginChangeCheck(); + // float floatValue = EditorGUI.FloatField(position, label, property.floatValue); + // if (EditorGUI.EndChangeCheck()) + // { + // property.floatValue = floatValue; + // } + // break; + // } + // case SerializedPropertyType.String: + // { + // EditorGUI.BeginChangeCheck(); + // string stringValue = EditorGUI.TextField(position, label, property.stringValue); + // if (EditorGUI.EndChangeCheck()) + // { + // property.stringValue = stringValue; + // } + // break; + // } + // case SerializedPropertyType.Color: + // { + // EditorGUI.BeginChangeCheck(); + // Color colorValue = EditorGUI.ColorField(position, label, property.colorValue); + // if (EditorGUI.EndChangeCheck()) + // { + // property.colorValue = colorValue; + // } + // break; + // } + // case SerializedPropertyType.LayerMask: + // EditorGUI.LayerMaskField(position, property, label); + // break; + // case SerializedPropertyType.Enum: + // EditorGUI.Popup(position, property, label); + // break; + // case SerializedPropertyType.Vector2: + // EditorGUI.Vector2Field(position, property, label); + // break; + // case SerializedPropertyType.Vector3: + // EditorGUI.Vector3Field(position, property, label); + // break; + // case SerializedPropertyType.Rect: + // EditorGUI.RectField(position, property, label); + // break; + // case SerializedPropertyType.AnimationCurve: + // { + // int controlID = GUIUtility.GetControlID(EditorGUI.s_CurveHash, EditorGUIUtility.native, position); + // EditorGUI.DoCurveField(EditorGUI.PrefixLabel(position, controlID, label), controlID, null, EditorGUI.kCurveColor, default(Rect), property); + // break; + // } + // case SerializedPropertyType.Bounds: + // EditorGUI.BoundsField(position, property, label); + // break; + // case SerializedPropertyType.Gradient: + // { + // int controlID2 = GUIUtility.GetControlID(EditorGUI.s_CurveHash, EditorGUIUtility.native, position); + // EditorGUI.DoGradientField(EditorGUI.PrefixLabel(position, controlID2, label), controlID2, null, property); + // break; + // } + } + + private void Begin(Rect position, SerializedProperty property, GUIContent label) + { + label = EditorGUI.BeginProperty(position, label, property); + label.text = " " + label.text; + position.height = 16; + EditorGUIUtility.labelWidth = 180; + expanded = EditorGUI.ToggleLeft(position, label, expanded == true); + } + + private void End() + { + EditorGUI.EndProperty(); + } + + private void updateExpanded(SerializedProperty property) + { + if (expanded != null) return; + expanded = !isNull(property); + } + + private bool isNull(SerializedProperty property) + { + switch (property.propertyType) + { + case SerializedPropertyType.ObjectReference: + return ReferenceEquals(property.objectReferenceValue, getNullValue(property)); + case SerializedPropertyType.Integer: + return property.intValue == (int) getNullValue(property); + case SerializedPropertyType.Float: + return property.floatValue == (float) getNullValue(property); + } + return false; + } + + private object getNullValue(SerializedProperty property) + { + var attr = attribute as NullToggleAttribute; + switch (property.propertyType) + { + case SerializedPropertyType.ObjectReference: + return attr.NullObjectValue; + case SerializedPropertyType.Integer: + return attr.NullIntValue; + case SerializedPropertyType.Float: + return attr.NullFloatValue; + } + return null; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/NullToggleDrawer.cs.meta b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/NullToggleDrawer.cs.meta new file mode 100644 index 000000000..16d7fe86e --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/NullToggleDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f6ddc10419e484026a3460a6c9518387 +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/ToggleLeftDrawer.cs b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/ToggleLeftDrawer.cs new file mode 100644 index 000000000..c0c456bc4 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/ToggleLeftDrawer.cs @@ -0,0 +1,27 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Utils.Attributes; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.Utils.PropertyDrawers +{ + [CustomPropertyDrawer(typeof(ToggleLeftAttribute))] + internal sealed class ToggleLeftDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + label = EditorGUI.BeginProperty(position, label, property); + label.text = " " + label.text; + EditorGUI.BeginChangeCheck(); + var boolValue = EditorGUI.ToggleLeft(position, label, property.boolValue); + if (EditorGUI.EndChangeCheck()) + { + property.boolValue = boolValue; + } + EditorGUI.EndProperty(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/ToggleLeftDrawer.cs.meta b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/ToggleLeftDrawer.cs.meta new file mode 100644 index 000000000..6dd1a11f4 --- /dev/null +++ b/Source/Assets/TouchScript/Editor/Utils/PropertyDrawers/ToggleLeftDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3340d3e5c29c545d9b943193e9ac5b3e +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Examples/General Examples/Assets/TouchScript/Examples.meta b/Source/Assets/TouchScript/Examples.meta similarity index 100% rename from Examples/General Examples/Assets/TouchScript/Examples.meta rename to Source/Assets/TouchScript/Examples.meta diff --git a/Source/Assets/TouchScript/Examples/Camera.meta b/Source/Assets/TouchScript/Examples/Camera.meta new file mode 100644 index 000000000..246174b68 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Camera.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 7b6c1fab7bf53408f8cd4957ed8cdfcf +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Camera/Camera.unity b/Source/Assets/TouchScript/Examples/Camera/Camera.unity new file mode 100644 index 000000000..6ced9e1d4 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Camera/Camera.unity @@ -0,0 +1,1809 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 62216952} + - component: {fileID: 62216957} + - component: {fileID: 62216956} + - component: {fileID: 62216955} + - component: {fileID: 62216954} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -11.64} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1462230477} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 30 + orthographic: 0 + orthographic size: 100 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &139543607 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 139543608} + - component: {fileID: 139543609} + m_Layer: 5 + m_Name: Rotate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &139543608 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 139543607} + m_LocalRotation: {x: 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: 746517019} + - {fileID: 567050690} + m_Father: {fileID: 250857271} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &139543609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 139543607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &242343085 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 242343086} + - component: {fileID: 242343088} + - component: {fileID: 242343087} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &242343086 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 242343085} + m_LocalRotation: {x: 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: 1962593004} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &242343087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 242343085} + 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: 4d2e9d1d9030140608b540e419744612, 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 &242343088 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 242343085} +--- !u!1 &250857269 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 250857271} + - component: {fileID: 250857270} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &250857270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + 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: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!224 &250857271 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + m_LocalRotation: {x: 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: 1679844150} + - {fileID: 624081475} + - {fileID: 1962593004} + - {fileID: 139543608} + m_Father: {fileID: 1981142013} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &567050689 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 567050690} + - component: {fileID: 567050692} + - component: {fileID: 567050691} + - component: {fileID: 567050693} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &567050690 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 567050689} + m_LocalRotation: {x: 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: 139543608} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &567050691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 567050689} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Rotate with 2 fingers + + or ALT + Mouse + + to rotate around Z axis' +--- !u!222 &567050692 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 567050689} +--- !u!114 &567050693 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 567050689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1001 &572399281 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[0] + value: + objectReference: {fileID: 930800605} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &624081474 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 624081475} + - component: {fileID: 624081476} + m_Layer: 5 + m_Name: Drag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &624081475 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 624081474} + m_LocalRotation: {x: 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: 1541924794} + - {fileID: 1713463340} + m_Father: {fileID: 250857271} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &624081476 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 624081474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &740851131 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 740851132} + - component: {fileID: 740851135} + - component: {fileID: 740851134} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &740851132 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + 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_Children: + - {fileID: 1981142013} + - {fileID: 1552723601} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &740851134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &740851135 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &746517018 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 746517019} + - component: {fileID: 746517021} + - component: {fileID: 746517020} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &746517019 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 746517018} + m_LocalRotation: {x: 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: 139543608} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &746517020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 746517018} + 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: a4d8406d5f5c04e2399bbfa832e5c551, 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 &746517021 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 746517018} +--- !u!1 &930800600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 930800601} + - component: {fileID: 930800603} + - component: {fileID: 930800604} + - component: {fileID: 930800602} + - component: {fileID: 930800606} + - component: {fileID: 930800605} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &930800601 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_LocalRotation: {x: 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: 2135305920} + - {fileID: 1462230477} + - {fileID: 2072767614} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &930800602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 74ae431eff8434b0897d3f7f1cff4311, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 0 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 1 + maxPointers: 1 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 1 + screenTransformThreshold: 0.05 + minScreenPointsDistance: 0.5 +--- !u!54 &930800603 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &930800604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b5f2ff2a908224e94b8dde12c7b83c3d, type: 3} + m_Name: + m_EditorClassIdentifier: + TwoFingerMoveGesture: {fileID: 930800602} + ManipulationGesture: {fileID: 930800606} + PanSpeed: 0.01 + RotationSpeed: 200 + ZoomSpeed: 10 +--- !u!114 &930800605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc7fd33c57d694994b0ab9f33fcdcbea, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Fullscreen @ Camera + type: 0 + _camera: {fileID: 62216957} +--- !u!114 &930800606 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 74ae431eff8434b0897d3f7f1cff4311, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 0 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 2 + maxPointers: 10 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 7 + screenTransformThreshold: 0.2 + minScreenPointsDistance: 0.5 +--- !u!1 &1138005899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1138005900} + - component: {fileID: 1138005902} + - component: {fileID: 1138005901} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1138005900 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1138005901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + 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: 71e59d6fec0b04b60acf6cad4b860a39, 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 &1138005902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} +--- !u!1 &1399100003 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1399100004} + - component: {fileID: 1399100006} + - component: {fileID: 1399100005} + - component: {fileID: 1399100007} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1399100004 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} + m_LocalRotation: {x: 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: 1962593004} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1399100005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Pinch to zoom +--- !u!222 &1399100006 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} +--- !u!114 &1399100007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1408280580 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1408280581} + - component: {fileID: 1408280583} + - component: {fileID: 1408280582} + - component: {fileID: 1408280584} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1408280581 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1408280582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Drag with 1 finger + + to move the camera' +--- !u!222 &1408280583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} +--- !u!114 &1408280584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1462230476 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1462230477} + m_Layer: 0 + m_Name: Pivot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1462230477 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1462230476} + m_LocalRotation: {x: 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: 62216952} + m_Father: {fileID: 930800601} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1541924793 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1541924794} + - component: {fileID: 1541924796} + - component: {fileID: 1541924795} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1541924794 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1541924793} + m_LocalRotation: {x: 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: 624081475} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1541924795 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1541924793} + 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: 824649cf4fd7146d49f62f76f683801a, 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 &1541924796 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1541924793} +--- !u!1 &1552723600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1552723601} + - component: {fileID: 1552723603} + - component: {fileID: 1552723602} + - component: {fileID: 1552723604} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1552723601 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_LocalRotation: {x: 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: 740851132} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 156, y: 78} + m_SizeDelta: {x: 276, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1552723602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + 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: 'Camera orbit + + + This example shows how to use TransformGesture to make a camera which can orbit + and move around an object. + + + Check the script on Scene/Pivot.' +--- !u!222 &1552723603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} +--- !u!114 &1552723604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1679844149 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1679844150} + - component: {fileID: 1679844151} + m_Layer: 5 + m_Name: Drag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679844150 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_LocalRotation: {x: 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: 1138005900} + - {fileID: 1408280581} + m_Father: {fileID: 250857271} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1679844151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1713463339 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1713463340} + - component: {fileID: 1713463343} + - component: {fileID: 1713463342} + - component: {fileID: 1713463341} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1713463340 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1713463339} + m_LocalRotation: {x: 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: 624081475} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1713463341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1713463339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &1713463342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1713463339} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Drag with 2+ fingers \nto rotate the camera" +--- !u!222 &1713463343 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1713463339} +--- !u!1 &1764701046 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1764701050} + - component: {fileID: 1764701049} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1764701049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + 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: 5 +--- !u!4 &1764701050 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + m_LocalRotation: {x: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1867657389 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1962593003 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1962593004} + - component: {fileID: 1962593005} + m_Layer: 5 + m_Name: Zoom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962593004 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962593003} + m_LocalRotation: {x: 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: 242343086} + - {fileID: 1399100004} + m_Father: {fileID: 250857271} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962593005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962593003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1981142012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1981142013} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1981142013 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1981142012} + m_LocalRotation: {x: 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: 250857271} + m_Father: {fileID: 740851132} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2072767610 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2072767614} + - component: {fileID: 2072767613} + - component: {fileID: 2072767612} + - component: {fileID: 2072767611} + m_Layer: 0 + m_Name: Earth + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &2072767611 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2072767610} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 6e379d1ec9f5fd949891068175de34fe, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!135 &2072767612 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2072767610} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &2072767613 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2072767610} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &2072767614 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2072767610} + m_LocalRotation: {x: -0.07995039, y: 0.9102414, z: -0.20880757, w: 0.34852263} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 4.296496, y: 4.296493, z: 4.296493} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2135305919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2135305920} + - component: {fileID: 2135305921} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2135305920 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_LocalRotation: {x: 0.3292459, y: -0.19317472, z: 0.12877093, w: 0.9152589} + m_LocalPosition: {x: 6.1004148, y: 15.540384, z: -20.566225} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!108 &2135305921 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1.3 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 1 + m_Resolution: 3 + m_CustomResolution: -1 + m_Strength: 0.185 + m_Bias: 0.1 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 diff --git a/Source/Assets/TouchScript/Examples/Camera/Camera.unity.meta b/Source/Assets/TouchScript/Examples/Camera/Camera.unity.meta new file mode 100644 index 000000000..5c8bc3030 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Camera/Camera.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 9bc4a96ba8ead427ab54f883160abc15 +DefaultImporter: + userData: "3" diff --git a/Source/Assets/TouchScript/Examples/Camera/Scripts.meta b/Source/Assets/TouchScript/Examples/Camera/Scripts.meta new file mode 100644 index 000000000..3ce369378 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Camera/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 8dc1cb789fdd54b04b2fbb15263255a4 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Camera/Scripts/CameraController.cs b/Source/Assets/TouchScript/Examples/Camera/Scripts/CameraController.cs new file mode 100644 index 000000000..72874fd94 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Camera/Scripts/CameraController.cs @@ -0,0 +1,54 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Gestures.TransformGestures; + +namespace TouchScript.Examples.CameraControl +{ + /// + public class CameraController : MonoBehaviour + { + public ScreenTransformGesture TwoFingerMoveGesture; + public ScreenTransformGesture ManipulationGesture; + public float PanSpeed = 200f; + public float RotationSpeed = 200f; + public float ZoomSpeed = 10f; + + private Transform pivot; + private Transform cam; + + private void Awake() + { + pivot = transform.Find("Pivot"); + cam = transform.Find("Pivot/Camera"); + } + + private void OnEnable() + { + TwoFingerMoveGesture.Transformed += twoFingerTransformHandler; + ManipulationGesture.Transformed += manipulationTransformedHandler; + } + + private void OnDisable() + { + TwoFingerMoveGesture.Transformed -= twoFingerTransformHandler; + ManipulationGesture.Transformed -= manipulationTransformedHandler; + } + + private void manipulationTransformedHandler(object sender, System.EventArgs e) + { + var rotation = Quaternion.Euler(ManipulationGesture.DeltaPosition.y / Screen.height * RotationSpeed, + -ManipulationGesture.DeltaPosition.x / Screen.width * RotationSpeed, + ManipulationGesture.DeltaRotation); + pivot.localRotation *= rotation; + cam.transform.localPosition += Vector3.forward * (ManipulationGesture.DeltaScale - 1f) * ZoomSpeed; + } + + private void twoFingerTransformHandler(object sender, System.EventArgs e) + { + pivot.localPosition += pivot.rotation * TwoFingerMoveGesture.DeltaPosition * PanSpeed; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Camera/Scripts/CameraController.cs.meta b/Source/Assets/TouchScript/Examples/Camera/Scripts/CameraController.cs.meta new file mode 100644 index 000000000..40f50f702 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Camera/Scripts/CameraController.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b5f2ff2a908224e94b8dde12c7b83c3d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Checkers.meta b/Source/Assets/TouchScript/Examples/Checkers.meta new file mode 100644 index 000000000..396645ca0 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Checkers.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d1d16ca2033414c7bbbb10c80670aea0 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Checkers/Checkers.unity b/Source/Assets/TouchScript/Examples/Checkers/Checkers.unity new file mode 100644 index 000000000..a74b7ad80 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Checkers/Checkers.unity @@ -0,0 +1,2960 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &12619638 stripped +GameObject: + m_PrefabParentObject: {fileID: 137898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1766364327} +--- !u!114 &12619639 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 12619638} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &12619640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 12619638} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1 &42889166 stripped +GameObject: + m_PrefabParentObject: {fileID: 191238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1404673428} +--- !u!114 &42889167 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 42889166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &42889168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 42889166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 62216952} + - component: {fileID: 62216957} + - component: {fileID: 62216956} + - component: {fileID: 62216955} + - component: {fileID: 62216954} + - component: {fileID: 62216953} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: 0.26945794, y: 0, z: 0, w: 0.96301216} + m_LocalPosition: {x: -1.11, y: 7.79, z: -14.44} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 31.264, y: 0, z: 0} +--- !u!114 &62216953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Camera + basicEditor: 1 + advancedProps: 0 + hitProps: 0 + hit3DObjects: 1 + hit2DObjects: 0 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 0 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 40 + field of view: 30 + orthographic: 0 + orthographic size: 100 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &235575575 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1975095845} +--- !u!1 &242343085 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 242343086} + - component: {fileID: 242343088} + - component: {fileID: 242343087} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &242343086 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 242343085} + m_LocalRotation: {x: 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: 1962593004} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &242343087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 242343085} + 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: 71e59d6fec0b04b60acf6cad4b860a39, 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 &242343088 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 242343085} +--- !u!1 &250857269 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 250857271} + - component: {fileID: 250857270} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &250857270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + 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: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!224 &250857271 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + m_LocalRotation: {x: 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: 1679844150} + - {fileID: 1962593004} + - {fileID: 841877613} + m_Father: {fileID: 1981142013} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &292077922 stripped +GameObject: + m_PrefabParentObject: {fileID: 191238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1492764721} +--- !u!114 &292077923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 292077922} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &292077924 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 292077922} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1 &362054473 stripped +GameObject: + m_PrefabParentObject: {fileID: 137898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 746500663} +--- !u!114 &362054474 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 362054473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &362054475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 362054473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!114 &496670577 stripped +MonoBehaviour: + m_PrefabParentObject: {fileID: 11490626, guid: b4fd857376bb94265b47bcf5b50f67fa, + type: 2} + m_PrefabInternal: {fileID: 1973376682} + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} +--- !u!4 &503145950 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1973376682} +--- !u!4 &511902458 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1766364327} +--- !u!1001 &543251036 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[0] + value: + objectReference: {fileID: 62216953} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &556842199 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -3.50999999 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &575047064 stripped +GameObject: + m_PrefabParentObject: {fileID: 191238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1065738468} +--- !u!114 &575047065 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 575047064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &575047066 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 575047064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!4 &584553677 stripped +Transform: + m_PrefabParentObject: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!1 &588072016 stripped +GameObject: + m_PrefabParentObject: {fileID: 137898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1973376682} +--- !u!114 &588072017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 588072016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &588072018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 588072016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1001 &599866430 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 930800601} + m_Modifications: + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalPosition.x + value: -.0399999991 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalPosition.y + value: -12.9700003 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalPosition.z + value: .25999999 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.y + value: .360566735 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.w + value: .932733476 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalScale.x + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalScale.y + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalScale.z + value: 17 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 9500000, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_ParentPrefab: {fileID: 100100000, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_IsPrefabParent: 0 +--- !u!1 &644314094 stripped +GameObject: + m_PrefabParentObject: {fileID: 137898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1726854358} +--- !u!114 &644314095 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 644314094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &644314096 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 644314094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1 &653642804 stripped +GameObject: + m_PrefabParentObject: {fileID: 191238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 912356309} +--- !u!114 &653642805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 653642804} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &653642806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 653642804} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1001 &690687408 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: 1.50999999 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &718956936 stripped +GameObject: + m_PrefabParentObject: {fileID: 191238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 2071229255} +--- !u!114 &718956937 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 718956936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &718956938 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 718956936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1 &721853795 stripped +GameObject: + m_PrefabParentObject: {fileID: 100006, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!64 &721853799 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 721853795} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 1 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 4300006, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} +--- !u!1 &724610588 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 724610589} + - component: {fileID: 724610592} + - component: {fileID: 724610591} + - component: {fileID: 724610590} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &724610589 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 724610588} + m_LocalRotation: {x: 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: 841877613} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &724610590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 724610588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &724610591 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 724610588} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Hold + + to disable gestures + + on all but one piece' +--- !u!222 &724610592 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 724610588} +--- !u!1 &740851131 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 740851132} + - component: {fileID: 740851135} + - component: {fileID: 740851134} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &740851132 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + 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_Children: + - {fileID: 1981142013} + - {fileID: 1552723601} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &740851134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &740851135 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1001 &746500663 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: 1.52999997 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &812972186 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 556842199} +--- !u!1001 &813591731 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -3.45000005 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.50999999 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &841877612 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 841877613} + - component: {fileID: 841877614} + m_Layer: 5 + m_Name: Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &841877613 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 841877612} + m_LocalRotation: {x: 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: 900258188} + - {fileID: 724610589} + m_Father: {fileID: 250857271} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &841877614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 841877612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!4 &868514750 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1065738468} +--- !u!1 &900258187 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 900258188} + - component: {fileID: 900258190} + - component: {fileID: 900258189} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &900258188 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 900258187} + m_LocalRotation: {x: 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: 841877613} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 36.77, y: 0} + m_SizeDelta: {x: 28, y: -28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &900258189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 900258187} + 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: dee235ef089bf4f349c444c9e16ec55e, 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 &900258190 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 900258187} +--- !u!4 &909269353 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 997919739} +--- !u!1 &909805779 stripped +GameObject: + m_PrefabParentObject: {fileID: 191238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1975095845} +--- !u!114 &909805780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 909805779} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &909805781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 909805779} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1001 &912356309 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: 3.52999997 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &930800600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 930800601} + - component: {fileID: 930800602} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &930800601 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_LocalRotation: {x: 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: 2135305920} + - {fileID: 62216952} + - {fileID: 2027571738} + - {fileID: 584553677} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &930800602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d3969ba4a597b4b9aacc4d9040749012, type: 3} + m_Name: + m_EditorClassIdentifier: + Target: {fileID: 496670577} + Color: {r: 0.94482756, g: 1, b: 0, a: 1} +--- !u!1001 &997919739 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: 3.52999997 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1065738468 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -.469999999 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1100161185 stripped +GameObject: + m_PrefabParentObject: {fileID: 137898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1242757937} +--- !u!114 &1100161186 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1100161185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1100161187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1100161185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1 &1138005899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1138005900} + - component: {fileID: 1138005902} + - component: {fileID: 1138005901} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1138005900 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1138005901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + 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: 71e59d6fec0b04b60acf6cad4b860a39, 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 &1138005902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} +--- !u!4 &1140064800 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1242757937} +--- !u!4 &1172386710 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 813591731} +--- !u!1001 &1242757937 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -2.50999999 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 15 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1271849413 stripped +GameObject: + m_PrefabParentObject: {fileID: 100008, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!64 &1271849417 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1271849413} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 1 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 4300004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} +--- !u!1 &1399100003 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1399100004} + - component: {fileID: 1399100006} + - component: {fileID: 1399100005} + - component: {fileID: 1399100007} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1399100004 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} + m_LocalRotation: {x: 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: 1962593004} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1399100005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Drag the board + + to rotate it' +--- !u!222 &1399100006 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} +--- !u!114 &1399100007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1001 &1404673428 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -1.45000005 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1408280580 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1408280581} + - component: {fileID: 1408280583} + - component: {fileID: 1408280582} + - component: {fileID: 1408280584} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1408280581 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1408280582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Drag a figure to move it +--- !u!222 &1408280583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} +--- !u!114 &1408280584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!4 &1423153197 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 2071229255} +--- !u!4 &1437042110 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1404673428} +--- !u!1 &1484313264 stripped +GameObject: + m_PrefabParentObject: {fileID: 191238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 690687408} +--- !u!114 &1484313265 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1484313264} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1484313266 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1484313264} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1001 &1492764721 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: .529999971 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &1512539946 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 690687408} +--- !u!1001 &1525929576 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: 2.52999997 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 11 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1552723600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1552723601} + - component: {fileID: 1552723603} + - component: {fileID: 1552723602} + - component: {fileID: 1552723604} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1552723601 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_LocalRotation: {x: 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: 740851132} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 178, y: 78} + m_SizeDelta: {x: 320, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1552723602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + 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: "Checkers\n\nThis example shows how to use TransformGesture and PinnedTransformGesture.\n\nCheck + the script on Scene/Board \nand CheckerDark prefab." +--- !u!222 &1552723603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} +--- !u!114 &1552723604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1556569441 stripped +GameObject: + m_PrefabParentObject: {fileID: 137898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 997919739} +--- !u!114 &1556569442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1556569441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1556569443 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1556569441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1001 &1590395755 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1679844149 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1679844150} + - component: {fileID: 1679844151} + m_Layer: 5 + m_Name: Drag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679844150 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_LocalRotation: {x: 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: 1138005900} + - {fileID: 1408280581} + m_Father: {fileID: 250857271} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1679844151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1001 &1726854358 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: .550000012 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 10 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &1760708079 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1492764721} +--- !u!1 &1764701046 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1764701050} + - component: {fileID: 1764701049} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1764701049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + 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: 5 +--- !u!4 &1764701050 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + m_LocalRotation: {x: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1766364327 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -1.49000001 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1841925474 stripped +GameObject: + m_PrefabParentObject: {fileID: 137898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 556842199} +--- !u!114 &1841925475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1841925474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1841925476 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1841925474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1 &1890351926 stripped +GameObject: + m_PrefabParentObject: {fileID: 137898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1525929576} +--- !u!114 &1890351927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1890351926} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1890351928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1890351926} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1 &1908498623 stripped +GameObject: + m_PrefabParentObject: {fileID: 191238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 813591731} +--- !u!114 &1908498624 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1908498623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f406de0e0ca42828041209d7c5f611, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1908498625 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1908498623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f91ca003806bd40f7938a006eee71921, type: 3} + m_Name: + m_EditorClassIdentifier: + OverColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!4 &1953507434 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1726854358} +--- !u!1 &1962593003 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1962593004} + - component: {fileID: 1962593005} + m_Layer: 5 + m_Name: Rotate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962593004 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962593003} + m_LocalRotation: {x: 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: 242343086} + - {fileID: 1399100004} + m_Father: {fileID: 250857271} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962593005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962593003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1001 &1973376682 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -.469999999 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 6437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_Convex + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1975095845 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: 2.54999995 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1981142012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1981142013} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1981142013 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1981142012} + m_LocalRotation: {x: 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: 250857271} + m_Father: {fileID: 740851132} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &1983636052 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 912356309} +--- !u!1 &2027571734 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 119514, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2027571738} + - component: {fileID: 2027571741} + - component: {fileID: 2027571740} + - component: {fileID: 2027571737} + - component: {fileID: 2027571735} + m_Layer: 0 + m_Name: Board + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2027571735 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11437400, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2027571734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 38e07bff8743d4ee38bf724a7a2b4cbb, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 2 + screenTransformThreshold: 0.1 + projectionProps: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &2027571737 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11411388, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2027571734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66947205b8dad437e8e87b03573f74b3, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &2027571738 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 419514, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2027571734} + m_LocalRotation: {x: 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: 2041409367} + - {fileID: 2130344072} + m_Father: {fileID: 930800601} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &2027571740 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2319512, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2027571734} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: c39504b52f7f64f26b5762f1bb63f09c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &2027571741 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 3319512, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2027571734} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2041409366 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 119512, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2041409367} + - component: {fileID: 2041409372} + - component: {fileID: 2041409369} + - component: {fileID: 2041409368} + - component: {fileID: 2041409371} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2041409367 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 419512, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041409366} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.101, z: 0} + m_LocalScale: {x: 10, y: 0.2, z: 10} + m_Children: [] + m_Father: {fileID: 2027571738} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2041409368 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 6585348, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041409366} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0.01, z: 0} +--- !u!23 &2041409369 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2319510, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041409366} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: bade3b3ccc3024624b44815e95a6af4e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!54 &2041409371 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041409366} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 14 + m_CollisionDetection: 2 +--- !u!33 &2041409372 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 3319510, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041409366} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &2071229255 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2130344072} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -2.47300005 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.54399991 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &2102641840 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 746500663} +--- !u!1 &2130344071 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2130344072} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2130344072 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2130344071} + m_LocalRotation: {x: 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: 1423153197} + - {fileID: 868514750} + - {fileID: 1512539946} + - {fileID: 1983636052} + - {fileID: 235575575} + - {fileID: 1760708079} + - {fileID: 1437042110} + - {fileID: 1172386710} + - {fileID: 812972186} + - {fileID: 511902458} + - {fileID: 1953507434} + - {fileID: 2137966724} + - {fileID: 909269353} + - {fileID: 2102641840} + - {fileID: 503145950} + - {fileID: 1140064800} + m_Father: {fileID: 2027571738} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2135305919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2135305920} + - component: {fileID: 2135305921} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2135305920 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_LocalRotation: {x: 0.24194291, y: -0.49854365, z: 0.22107579, w: 0.80252314} + m_LocalPosition: {x: 6.1004148, y: 15.540384, z: -20.566225} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!108 &2135305921 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1.3 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: 3 + m_CustomResolution: -1 + m_Strength: 0.56 + m_Bias: 0.1 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &2137966724 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1525929576} diff --git a/Source/Assets/TouchScript/Examples/Checkers/Checkers.unity.meta b/Source/Assets/TouchScript/Examples/Checkers/Checkers.unity.meta new file mode 100644 index 000000000..21cb61b30 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Checkers/Checkers.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 6ba58961df0a14cad91763f92bda13b9 +DefaultImporter: + userData: "5" diff --git a/Source/Assets/TouchScript/Examples/Checkers/Scripts.meta b/Source/Assets/TouchScript/Examples/Checkers/Scripts.meta new file mode 100644 index 000000000..7e91453b0 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Checkers/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 89064826597d94d49bf193cfbace94a2 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Checkers/Scripts/Board.cs b/Source/Assets/TouchScript/Examples/Checkers/Scripts/Board.cs new file mode 100644 index 000000000..8355c9702 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Checkers/Scripts/Board.cs @@ -0,0 +1,31 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Gestures.TransformGestures; + +namespace TouchScript.Examples.Checkers +{ + /// + public class Board : MonoBehaviour + { + private PinnedTransformGesture gesture; + + private void OnEnable() + { + gesture = GetComponent(); + gesture.Transformed += transformedHandler; + } + + private void OnDisable() + { + gesture.Transformed -= transformedHandler; + } + + private void transformedHandler(object sender, System.EventArgs e) + { + transform.localRotation *= Quaternion.AngleAxis(gesture.DeltaRotation, gesture.RotationAxis); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Checkers/Scripts/Board.cs.meta b/Source/Assets/TouchScript/Examples/Checkers/Scripts/Board.cs.meta new file mode 100644 index 000000000..761954ef4 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Checkers/Scripts/Board.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 66947205b8dad437e8e87b03573f74b3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Checkers/Scripts/Exclusive.cs b/Source/Assets/TouchScript/Examples/Checkers/Scripts/Exclusive.cs new file mode 100644 index 000000000..559eb97dc --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Checkers/Scripts/Exclusive.cs @@ -0,0 +1,62 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures; +using TouchScript.Gestures.TransformGestures; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Examples.Checkers +{ + /// + public class Exclusive : MonoBehaviour, IGestureDelegate + { + public TransformGesture Target; + public Color Color = Color.red; + + private bool exclusive = false; + private Renderer cachedRenderer; + private float shininess; + + private void Awake() + { + GestureManager.Instance.GlobalGestureDelegate = this; + cachedRenderer = Target.GetComponent(); + shininess = cachedRenderer.sharedMaterial.GetFloat("_Shininess"); + } + + private void Update() + { + if (Input.GetKey(KeyCode.Space)) + { + exclusive = true; + cachedRenderer.material.SetColor("_SpecColor", Color); + cachedRenderer.material.SetFloat("_Shininess", 0); + } + else + { + exclusive = false; + cachedRenderer.material.SetColor("_SpecColor", Color.white); + cachedRenderer.material.SetFloat("_Shininess", shininess); + } + } + + public bool ShouldBegin(Gesture gesture) + { + if (exclusive) return gesture == Target; + return true; + } + + public bool ShouldReceivePointer(Gesture gesture, Pointer pointer) + { + if (exclusive) return gesture == Target; + return true; + } + + public bool ShouldRecognizeSimultaneously(Gesture first, Gesture second) + { + return false; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Checkers/Scripts/Exclusive.cs.meta b/Source/Assets/TouchScript/Examples/Checkers/Scripts/Exclusive.cs.meta new file mode 100644 index 000000000..294274325 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Checkers/Scripts/Exclusive.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d3969ba4a597b4b9aacc4d9040749012 +timeCreated: 1448994742 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Colors.meta b/Source/Assets/TouchScript/Examples/Colors.meta new file mode 100644 index 000000000..4ac238bd9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9b36900fe6ffb414297f579bdc2df773 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Colors/Colors.unity b/Source/Assets/TouchScript/Examples/Colors/Colors.unity new file mode 100644 index 000000000..cd5edaf6a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Colors.unity @@ -0,0 +1,1100 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 62216952} + - component: {fileID: 62216957} + - component: {fileID: 62216956} + - component: {fileID: 62216955} + - component: {fileID: 62216954} + - component: {fileID: 62216953} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &62216953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Camera + basicEditor: 1 + advancedProps: 0 + hitProps: 0 + hit3DObjects: 0 + hit2DObjects: 1 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 0 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 40 + field of view: 30 + orthographic: 1 + orthographic size: 100 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &68250096 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 68250097} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &68250097 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 68250096} + m_LocalRotation: {x: 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: 930800601} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &250857269 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 250857271} + - component: {fileID: 250857270} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &250857270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + 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: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!224 &250857271 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + m_LocalRotation: {x: 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: 1679844150} + - {fileID: 602940323} + m_Father: {fileID: 1981142013} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &543251036 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[0] + value: + objectReference: {fileID: 62216953} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &602940322 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 602940323} + - component: {fileID: 602940324} + m_Layer: 5 + m_Name: Scale + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &602940323 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 602940322} + m_LocalRotation: {x: 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: 2046579559} + - {fileID: 1122129733} + m_Father: {fileID: 250857271} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &602940324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 602940322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &740851131 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 740851132} + - component: {fileID: 740851135} + - component: {fileID: 740851134} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &740851132 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + 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_Children: + - {fileID: 1981142013} + - {fileID: 1552723601} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &740851134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &740851135 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &930800600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 930800601} + - component: {fileID: 930800602} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &930800601 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_LocalRotation: {x: 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: 62216952} + - {fileID: 68250097} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &930800602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8b337721b25c44a1bd825aa64c2df73, type: 3} + m_Name: + m_EditorClassIdentifier: + Prefab: {fileID: 487322, guid: 2b3f65a7742c848579d12e8fc10951b1, type: 2} + Total: 40 +--- !u!1 &1122129732 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1122129733} + - component: {fileID: 1122129736} + - component: {fileID: 1122129735} + - component: {fileID: 1122129734} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1122129733 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1122129732} + m_LocalRotation: {x: 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: 602940323} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 196, y: 0} + m_SizeDelta: {x: 242, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1122129734 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1122129732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &1122129735 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1122129732} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Use two fingers \nto scale circles" +--- !u!222 &1122129736 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1122129732} +--- !u!1 &1138005899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1138005900} + - component: {fileID: 1138005902} + - component: {fileID: 1138005901} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1138005900 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1138005901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + 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: 71e59d6fec0b04b60acf6cad4b860a39, 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 &1138005902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} +--- !u!1 &1408280580 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1408280581} + - component: {fileID: 1408280583} + - component: {fileID: 1408280582} + - component: {fileID: 1408280584} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1408280581 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 196, y: 0} + m_SizeDelta: {x: 242, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1408280582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Drag circles around. + + When overlapped they will spawn another circle of combined volume.' +--- !u!222 &1408280583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} +--- !u!114 &1408280584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1552723600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1552723601} + - component: {fileID: 1552723603} + - component: {fileID: 1552723602} + - component: {fileID: 1552723604} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1552723601 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_LocalRotation: {x: 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: 740851132} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 178, y: 78} + m_SizeDelta: {x: 320, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1552723602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + 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: 'Colors + + + This example shows how to use CameraLayer2D and Gesture.Cancel() to "give" touches + from one gesture to another. + + + Check the script on Scene and Circle prefab.' +--- !u!222 &1552723603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} +--- !u!114 &1552723604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1679844149 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1679844150} + - component: {fileID: 1679844151} + m_Layer: 5 + m_Name: Drag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679844150 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_LocalRotation: {x: 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: 1138005900} + - {fileID: 1408280581} + m_Father: {fileID: 250857271} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1679844151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1764701046 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1764701050} + - component: {fileID: 1764701049} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1764701049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + 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: 5 +--- !u!4 &1764701050 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + m_LocalRotation: {x: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1772227325 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1981142012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1981142013} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1981142013 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1981142012} + m_LocalRotation: {x: 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: 250857271} + m_Father: {fileID: 740851132} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2046579558 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2046579559} + - component: {fileID: 2046579561} + - component: {fileID: 2046579560} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2046579559 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2046579558} + m_LocalRotation: {x: 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: 602940323} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2046579560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2046579558} + 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: 4d2e9d1d9030140608b540e419744612, 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 &2046579561 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2046579558} diff --git a/Source/Assets/TouchScript/Examples/Colors/Colors.unity.meta b/Source/Assets/TouchScript/Examples/Colors/Colors.unity.meta new file mode 100644 index 000000000..f611b96b5 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Colors.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: c56b29ea5ec5a4713b65552d4a8bd9ac +DefaultImporter: + userData: "7" diff --git a/Source/Assets/TouchScript/Examples/Colors/Materials.meta b/Source/Assets/TouchScript/Examples/Colors/Materials.meta new file mode 100644 index 000000000..2d6884086 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Materials.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 693a5205c3d48441bb5a2f2745f043b5 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Colors/Materials/Color.mat b/Source/Assets/TouchScript/Examples/Colors/Materials/Color.mat new file mode 100644 index 000000000..3f1bcbdaa --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Materials/Color.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Color + m_Shader: {fileID: 4800000, guid: 94cdda6d3ac3444ee82497c3ca14a496, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + 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} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Source/Assets/TouchScript/Examples/Colors/Materials/Color.mat.meta b/Source/Assets/TouchScript/Examples/Colors/Materials/Color.mat.meta new file mode 100644 index 000000000..7035e5c46 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Materials/Color.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 912f6e5f5f74c4db4b9d8e196e3b9309 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Colors/Prefabs.meta b/Source/Assets/TouchScript/Examples/Colors/Prefabs.meta new file mode 100644 index 000000000..3b3415b84 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Prefabs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 5700b326924fb499da426876f88958f1 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Colors/Prefabs/Circle.prefab b/Source/Assets/TouchScript/Examples/Colors/Prefabs/Circle.prefab new file mode 100644 index 000000000..900b09bf2 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Prefabs/Circle.prefab @@ -0,0 +1,170 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &187322 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 487322} + - 33: {fileID: 3387322} + - 23: {fileID: 2387322} + - 114: {fileID: 11408658} + - 114: {fileID: 11478144} + - 58: {fileID: 5878144} + - 58: {fileID: 5815760} + - 114: {fileID: 11416092} + - 50: {fileID: 5031796} + m_Layer: 0 + m_Name: Circle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &487322 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187322} + m_LocalRotation: {x: -.716292739, y: 0, z: 0, w: .697799981} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 15, y: 1, z: 15} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2387322 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187322} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 912f6e5f5f74c4db4b9d8e196e3b9309, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3387322 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187322} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!50 &5031796 +Rigidbody2D: + serializedVersion: 2 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187322} + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: .0500000007 + m_GravityScale: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!58 &5815760 +CircleCollider2D: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187322} + m_Enabled: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Radius: .100000001 +--- !u!58 &5878144 +CircleCollider2D: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187322} + m_Enabled: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Radius: .5 +--- !u!114 &11408658 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + advancedProps: 0 + minTouches: 0 + maxTouches: 0 + combineTouches: 0 + combineTouchesInterval: .300000012 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + type: 7 + minScreenPointsDistance: .5 + screenTransformThreshold: .100000001 + projection: 0 + projectionPlaneNormal: {x: 0, y: 0, z: 1} +--- !u!114 &11416092 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2d1ded9b7682453b9db33938fecf06b, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11478144 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, 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: 187322} + m_IsPrefabParent: 1 diff --git a/Source/Assets/TouchScript/Examples/Colors/Prefabs/Circle.prefab.meta b/Source/Assets/TouchScript/Examples/Colors/Prefabs/Circle.prefab.meta new file mode 100644 index 000000000..1e9d7848a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Prefabs/Circle.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 2b3f65a7742c848579d12e8fc10951b1 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Colors/Scripts.meta b/Source/Assets/TouchScript/Examples/Colors/Scripts.meta new file mode 100644 index 000000000..6f7ad603c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 3cccfbbd62bbf4353a5a2b0aa16fe14b +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Colors/Scripts/Circle.cs b/Source/Assets/TouchScript/Examples/Colors/Scripts/Circle.cs new file mode 100644 index 000000000..8f1196083 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Scripts/Circle.cs @@ -0,0 +1,53 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Gestures; +using TouchScript.Gestures.TransformGestures; + +namespace TouchScript.Examples.Colors +{ + /// + public class Circle : MonoBehaviour + { + private bool isDestroyed = false; + + public Color Kill() + { + isDestroyed = true; + + GetComponent().Cancel(true, true); + GetComponent().Cancel(true, true); + var color = GetComponent().sharedMaterial.color; + Destroy(gameObject); + return color; + } + + private void OnTriggerEnter2D(Collider2D other) + { + if (isDestroyed) return; + + var gesture = GetComponent(); + if (gesture.State != Gesture.GestureState.Changed && gesture.State != Gesture.GestureState.Began) return; + + var otherCircle = other.GetComponent(); + if (!otherCircle) return; + + var otherColor = otherCircle.Kill(); + var scale = + Mathf.Sqrt(otherCircle.transform.localScale.x * otherCircle.transform.localScale.x + + transform.localScale.x * transform.localScale.x); + var color = Color.Lerp(GetComponent().sharedMaterial.color, otherColor, .5f); + + var obj = Instantiate(gameObject) as GameObject; + obj.transform.SetParent(transform.parent); + obj.transform.localPosition = transform.localPosition; + obj.transform.localRotation = transform.localRotation; + obj.transform.localScale = new Vector3(scale, 1, scale); + obj.GetComponent().sharedMaterial.color = color; + + Kill(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Colors/Scripts/Circle.cs.meta b/Source/Assets/TouchScript/Examples/Colors/Scripts/Circle.cs.meta new file mode 100644 index 000000000..45abc8877 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Scripts/Circle.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d2d1ded9b7682453b9db33938fecf06b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Colors/Scripts/Colors.cs b/Source/Assets/TouchScript/Examples/Colors/Scripts/Colors.cs new file mode 100644 index 000000000..db9a39431 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Scripts/Colors.cs @@ -0,0 +1,41 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using System.Collections.Generic; + +namespace TouchScript.Examples.Colors +{ + /// + public class Colors : MonoBehaviour + { + public Transform Prefab; + public int Total = 10; + + private List colors = new List() + { + Color.blue, + Color.cyan, + Color.gray, + Color.green, + Color.magenta, + Color.red, + Color.white, + Color.yellow, + Color.black + }; + + void Start() + { + var container = transform.Find("Container"); + for (var i = 0; i < Total; i++) + { + var obj = Instantiate(Prefab) as Transform; + obj.SetParent(container); + obj.localPosition = new Vector3(Random.Range(-100, 100), Random.Range(-100, 100), 0); + obj.GetComponent().material.color = colors[Random.Range(0, colors.Count)]; + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Colors/Scripts/Colors.cs.meta b/Source/Assets/TouchScript/Examples/Colors/Scripts/Colors.cs.meta new file mode 100644 index 000000000..02645fee8 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Colors/Scripts/Colors.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c8b337721b25c44a1bd825aa64c2df73 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Cube.meta b/Source/Assets/TouchScript/Examples/Cube.meta new file mode 100644 index 000000000..8a72b36de --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 26a2ec4f165a64fb2a33a35a758e9f9a +folderAsset: yes +timeCreated: 1451049161 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Cube.unity b/Source/Assets/TouchScript/Examples/Cube/Cube.unity new file mode 100644 index 000000000..d2e80c837 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Cube.unity @@ -0,0 +1,1486 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 1 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666666 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 62216952} + - 20: {fileID: 62216957} + - 92: {fileID: 62216956} + - 124: {fileID: 62216955} + - 81: {fileID: 62216954} + - 114: {fileID: 62216953} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: 0.97875386, y: 0, z: 0, w: 0.20503876} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 23.6635, y: -180, z: -180} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 1 +--- !u!114 &62216953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Camera + advancedProps: 0 + hitProps: 0 + hit3DObjects: 1 + hit2DObjects: 0 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 0 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 30 + orthographic: 0 + orthographic size: 10 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &172819027 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 172819028} + - 114: {fileID: 172819029} + m_Layer: 5 + m_Name: Scale + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &172819028 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 172819027} + m_LocalRotation: {x: 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: 732284830} + - {fileID: 891499233} + m_Father: {fileID: 250857271} + 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 &172819029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 172819027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &250857269 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 250857271} + - 114: {fileID: 250857270} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &250857270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + 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: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!224 &250857271 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + m_LocalRotation: {x: 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: 1679844150} + - {fileID: 172819028} + m_Father: {fileID: 1981142013} + 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!1001 &543251036 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[0] + value: + objectReference: {fileID: 62216953} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[1] + value: + objectReference: {fileID: 1459600544} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &732284827 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 732284830} + - 222: {fileID: 732284829} + - 114: {fileID: 732284828} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &732284828 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 732284827} + 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: a4d8406d5f5c04e2399bbfa832e5c551, 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 &732284829 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 732284827} +--- !u!224 &732284830 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 732284827} + m_LocalRotation: {x: 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: 172819028} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &740851131 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 740851132} + - 223: {fileID: 740851135} + - 114: {fileID: 740851134} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &740851132 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + 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: + - {fileID: 1981142013} + - {fileID: 1552723601} + m_Father: {fileID: 0} + 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, y: 0} +--- !u!114 &740851134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &740851135 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + 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 &891499232 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 891499233} + - 222: {fileID: 891499236} + - 114: {fileID: 891499235} + - 114: {fileID: 891499234} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &891499233 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 891499232} + m_LocalRotation: {x: 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: 172819028} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &891499234 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 891499232} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &891499235 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 891499232} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Scale and rotate + + the cat picture' +--- !u!222 &891499236 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 891499232} +--- !u!1 &930800600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 930800601} + - 114: {fileID: 930800602} + - 114: {fileID: 930800603} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &930800601 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_LocalRotation: {x: 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: 2135305920} + - {fileID: 62216952} + - {fileID: 1880100173} + - {fileID: 1459600543} + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!114 &930800602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a6bb9532482734d0f892c488f5d08d6b, type: 3} + m_Name: + m_EditorClassIdentifier: + Source: {fileID: 1880100168} + RenderTextureLayer: {fileID: 1459600544} +--- !u!114 &930800603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c98a691d71b7b4ecfa393fa5ea0800d7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &963048123 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 963048124} + - 33: {fileID: 963048127} + - 65: {fileID: 963048126} + - 23: {fileID: 963048125} + - 114: {fileID: 963048129} + - 114: {fileID: 963048128} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &963048124 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 963048123} + m_LocalRotation: {x: 0, y: 0, z: 1, w: -0.00000016292068} + m_LocalPosition: {x: 0, y: 0, z: 5.16} + m_LocalScale: {x: 2, y: 2, z: 0.047008425} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1459600543} + m_RootOrder: 0 +--- !u!23 &963048125 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 963048123} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 08401881b8b2542f1b283eac02c865aa, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &963048126 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 963048123} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &963048127 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 963048123} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &963048128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 963048123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.00001 + positionThreshold: 0.0001 + rotationThreshold: 0.01 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &963048129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 963048123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 7 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 0 + projectionPlaneNormal: {x: 0, y: 0, z: 1} +--- !u!1 &1138005899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1138005900} + - 222: {fileID: 1138005902} + - 114: {fileID: 1138005901} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1138005900 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1138005901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + 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: 71e59d6fec0b04b60acf6cad4b860a39, 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 &1138005902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} +--- !u!1 &1408280580 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1408280581} + - 222: {fileID: 1408280583} + - 114: {fileID: 1408280582} + - 114: {fileID: 1408280584} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1408280581 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1408280582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Drag the cat picture +--- !u!222 &1408280583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} +--- !u!114 &1408280584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1459600542 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1459600543} + - 20: {fileID: 1459600547} + - 114: {fileID: 1459600544} + m_Layer: 0 + m_Name: Scene Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1459600543 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1459600542} + m_LocalRotation: {x: 0, y: 0.74471927, z: 0, w: -0.66737795} + m_LocalPosition: {x: 1000, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 963048124} + m_Father: {fileID: 930800601} + m_RootOrder: 3 +--- !u!114 &1459600544 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1459600542} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: RenderTexture Camera + advancedProps: 0 + hitProps: 0 + hit3DObjects: 1 + hit2DObjects: 0 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 1 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!20 &1459600547 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1459600542} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 8400000, guid: 06f7dd8a0a9854c66bb01e04d58f2861, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &1552723600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1552723601} + - 222: {fileID: 1552723603} + - 114: {fileID: 1552723602} + - 114: {fileID: 1552723604} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1552723601 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_LocalRotation: {x: 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: 740851132} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 178, y: 48.2} + m_SizeDelta: {x: 320, y: 122.32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1552723602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + 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: 'Cube + + + This example shows how to use a custom input source and TouchLayer.Delegate to + dynamically create fake touch points from cube surface used by a camera rendering + to a Render Texture.' +--- !u!222 &1552723603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} +--- !u!114 &1552723604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1679844149 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1679844150} + - 114: {fileID: 1679844151} + m_Layer: 5 + m_Name: Drag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679844150 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_LocalRotation: {x: 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: 1138005900} + - {fileID: 1408280581} + m_Father: {fileID: 250857271} + 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 &1679844151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1764701046 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1764701050} + - 114: {fileID: 1764701049} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1764701049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + 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: 5 +--- !u!4 &1764701050 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + m_LocalRotation: {x: 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: 4 +--- !u!1001 &1772227325 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: touchProxy + value: + objectReference: {fileID: 11468960, guid: 55576da10f8e2478e9aec42a40f85554, + type: 2} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: pointerProxy + value: + objectReference: {fileID: 11468960, guid: 55576da10f8e2478e9aec42a40f85554, + type: 2} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1880100167 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1880100173} + - 33: {fileID: 1880100172} + - 23: {fileID: 1880100170} + - 114: {fileID: 1880100169} + - 114: {fileID: 1880100168} + - 64: {fileID: 1880100171} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1880100168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1880100167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71f21ea441ad54e2395b6cb5da4f4e9f, type: 3} + m_Name: + m_EditorClassIdentifier: + advancedProps: 0 + Width: 512 + Height: 512 +--- !u!114 &1880100169 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1880100167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3fd90a8856e1a49eba25728d5aaac9f2, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] +--- !u!23 &1880100170 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1880100167} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 7414b9f60fb074ad4a74546362f312ab, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1880100171 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1880100167} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1880100172 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1880100167} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1880100173 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1880100167} + m_LocalRotation: {x: 0, y: -0.32758188, z: 0, w: 0.9448228} + m_LocalPosition: {x: 0.05, y: -2.9, z: -6.5} + m_LocalScale: {x: -2.610165, y: -2.610164, z: 2.6101644} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 2 +--- !u!1 &1981142012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1981142013} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1981142013 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1981142012} + m_LocalRotation: {x: 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: 250857271} + m_Father: {fileID: 740851132} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2135305919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2135305920} + - 108: {fileID: 2135305921} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2135305920 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_LocalRotation: {x: 0.32484895, y: -0.86744815, z: 0.043405317, w: 0.37432998} + m_LocalPosition: {x: 6.1004148, y: 15.540384, z: -20.566225} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 0 +--- !u!108 &2135305921 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1.3 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: 3 + m_Strength: 0.56 + m_Bias: 0.1 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} diff --git a/Source/Assets/TouchScript/Examples/Cube/Cube.unity.meta b/Source/Assets/TouchScript/Examples/Cube/Cube.unity.meta new file mode 100644 index 000000000..18eee7b08 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Cube.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 179bea80bb29f49ab9d5761fc9d3738b +timeCreated: 1451049198 +licenseType: Pro +DefaultImporter: + userData: "8" + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Materials.meta b/Source/Assets/TouchScript/Examples/Cube/Materials.meta new file mode 100644 index 000000000..cbd0957cc --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bfeadc928adff4a06a603a8a150e9482 +folderAsset: yes +timeCreated: 1451049337 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Materials/Cube.mat b/Source/Assets/TouchScript/Examples/Cube/Materials/Cube.mat new file mode 100644 index 000000000..3c69548d3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Materials/Cube.mat @@ -0,0 +1,142 @@ +%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: Cube + m_Shader: {fileID: 4800000, guid: c316336e4e7e741118da40d9d340cd27, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: 2000 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 8400000, guid: 06f7dd8a0a9854c66bb01e04d58f2861, type: 2} + 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: _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: _Border + second: .0500000007 + 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/Source/Assets/TouchScript/Examples/Cube/Materials/Cube.mat.meta b/Source/Assets/TouchScript/Examples/Cube/Materials/Cube.mat.meta new file mode 100644 index 000000000..c81341daa --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Materials/Cube.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7414b9f60fb074ad4a74546362f312ab +timeCreated: 1451049350 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Materials/Plane.mat b/Source/Assets/TouchScript/Examples/Cube/Materials/Plane.mat new file mode 100644 index 000000000..99b697b08 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Materials/Plane.mat @@ -0,0 +1,142 @@ +%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: Plane + m_Shader: {fileID: 4800000, guid: c316336e4e7e741118da40d9d340cd27, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: 2000 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 97bf9d574de664236942f6c91db57ef6, type: 3} + 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: _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: _Border + second: .0299999993 + 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/Source/Assets/TouchScript/Examples/Cube/Materials/Plane.mat.meta b/Source/Assets/TouchScript/Examples/Cube/Materials/Plane.mat.meta new file mode 100644 index 000000000..7eaaa6046 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Materials/Plane.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 08401881b8b2542f1b283eac02c865aa +timeCreated: 1451059428 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Prefabs.meta b/Source/Assets/TouchScript/Examples/Cube/Prefabs.meta new file mode 100644 index 000000000..95b5079b3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c1c23e48a721944228af1cd2dd57e8c4 +folderAsset: yes +timeCreated: 1451059939 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Prefabs/Pointer Hit.prefab b/Source/Assets/TouchScript/Examples/Cube/Prefabs/Pointer Hit.prefab new file mode 100644 index 000000000..a6e8459e7 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Prefabs/Pointer Hit.prefab @@ -0,0 +1,183 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &152322 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22498922} + - 222: {fileID: 22253470} + - 114: {fileID: 11415522} + - 114: {fileID: 11446012} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &183852 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22471328} + - 222: {fileID: 22246154} + - 114: {fileID: 11454912} + - 114: {fileID: 11468960} + m_Layer: 0 + m_Name: Pointer Hit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11415522 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} + 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: .00392156886, g: .996078491, b: .996078491, 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: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Id: 0 + + Tags: Bla' +--- !u!114 &11446012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} + 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: .541000009} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &11454912 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + 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: 21300000, guid: f5c75ed8c6bed0f489d9003aa739aff7, 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 &11468960 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 890c2ecd38df147d499ea085487b9c72, type: 3} + m_Name: + m_EditorClassIdentifier: + Text: {fileID: 11415522} +--- !u!222 &22246154 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} +--- !u!222 &22253470 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} +--- !u!224 &22471328 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_LocalRotation: {x: 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: 22498922} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 472, y: 378} + m_SizeDelta: {x: 64, y: 64} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22498922 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} + m_LocalRotation: {x: 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: 22471328} + m_RootOrder: 0 + m_AnchorMin: {x: 1, y: .5} + m_AnchorMax: {x: 1, y: .5} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: 100, y: 47} + m_Pivot: {x: 0, y: .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: 183852} + m_IsPrefabParent: 1 diff --git a/Source/Assets/TouchScript/Examples/Cube/Prefabs/Pointer Hit.prefab.meta b/Source/Assets/TouchScript/Examples/Cube/Prefabs/Pointer Hit.prefab.meta new file mode 100644 index 000000000..98116928c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Prefabs/Pointer Hit.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 55576da10f8e2478e9aec42a40f85554 +timeCreated: 1451059945 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/RenderTexture.renderTexture b/Source/Assets/TouchScript/Examples/Cube/RenderTexture.renderTexture new file mode 100644 index 000000000..fc76cffba --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/RenderTexture.renderTexture @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!84 &8400000 +RenderTexture: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: RenderTexture + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_Width: 512 + m_Height: 512 + m_AntiAliasing: 2 + m_DepthFormat: 2 + m_ColorFormat: 0 + m_MipMap: 0 + m_GenerateMips: 1 + m_SRGB: 0 + m_TextureSettings: + m_FilterMode: 1 + m_Aniso: 0 + m_MipBias: 0 + m_WrapMode: 1 diff --git a/Source/Assets/TouchScript/Examples/Cube/RenderTexture.renderTexture.meta b/Source/Assets/TouchScript/Examples/Cube/RenderTexture.renderTexture.meta new file mode 100644 index 000000000..a08a1d08c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/RenderTexture.renderTexture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06f7dd8a0a9854c66bb01e04d58f2861 +timeCreated: 1451049379 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Scripts.meta b/Source/Assets/TouchScript/Examples/Cube/Scripts.meta new file mode 100644 index 000000000..68a366cf8 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 08b2d3128caa94da2beb7f13d12f0855 +folderAsset: yes +timeCreated: 1451049207 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Scripts/CustomPointerProxy.cs b/Source/Assets/TouchScript/Examples/Cube/Scripts/CustomPointerProxy.cs new file mode 100644 index 000000000..3fe57c913 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Scripts/CustomPointerProxy.cs @@ -0,0 +1,20 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Behaviors.Cursors; +using TouchScript.Pointers; + +namespace TouchScript.Examples.Cube +{ + /// + public class CustomPointerProxy : PointerCursor + { + protected override void updateOnce(IPointer pointer) + { + if (pointer.InputSource is RedirectInput) Hide(); + + base.updateOnce(pointer); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Cube/Scripts/CustomPointerProxy.cs.meta b/Source/Assets/TouchScript/Examples/Cube/Scripts/CustomPointerProxy.cs.meta new file mode 100644 index 000000000..0108fc9e8 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Scripts/CustomPointerProxy.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 890c2ecd38df147d499ea085487b9c72 +timeCreated: 1451059587 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Scripts/Init.cs b/Source/Assets/TouchScript/Examples/Cube/Scripts/Init.cs new file mode 100644 index 000000000..4afc392b7 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Scripts/Init.cs @@ -0,0 +1,22 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Layers; + +namespace TouchScript.Examples.Cube +{ + /// + public class Init : MonoBehaviour + { + void Start() + { + var d = GetComponent(); + var go = GameObject.Find("Scene Camera"); + go.GetComponent().Delegate = d; + go = GameObject.Find("Camera"); + go.GetComponent().Delegate = d; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Cube/Scripts/Init.cs.meta b/Source/Assets/TouchScript/Examples/Cube/Scripts/Init.cs.meta new file mode 100644 index 000000000..1ba5f890a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Scripts/Init.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c98a691d71b7b4ecfa393fa5ea0800d7 +timeCreated: 1451059203 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Scripts/LayerDelegate.cs b/Source/Assets/TouchScript/Examples/Cube/Scripts/LayerDelegate.cs new file mode 100644 index 000000000..4c0762420 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Scripts/LayerDelegate.cs @@ -0,0 +1,25 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Layers; +using TouchScript.Pointers; +using TouchScript.InputSources; + +namespace TouchScript.Examples.Cube +{ + /// + public class LayerDelegate : MonoBehaviour, ILayerDelegate + { + public RedirectInput Source; + public TouchLayer RenderTextureLayer; + + public bool ShouldReceivePointer(TouchLayer layer, IPointer pointer) + { + if (layer == RenderTextureLayer) + return pointer.InputSource == (IInputSource) Source; + return pointer.InputSource != (IInputSource) Source; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Cube/Scripts/LayerDelegate.cs.meta b/Source/Assets/TouchScript/Examples/Cube/Scripts/LayerDelegate.cs.meta new file mode 100644 index 000000000..900b10fce --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Scripts/LayerDelegate.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a6bb9532482734d0f892c488f5d08d6b +timeCreated: 1451051762 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Cube/Scripts/RedirectInput.cs b/Source/Assets/TouchScript/Examples/Cube/Scripts/RedirectInput.cs new file mode 100644 index 000000000..cd87ed47f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Scripts/RedirectInput.cs @@ -0,0 +1,128 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using System.Collections.Generic; +using TouchScript.Gestures; +using TouchScript.Hit; +using TouchScript.InputSources; +using TouchScript.Pointers; +using TouchScript.Utils; + +namespace TouchScript.Examples.Cube +{ + /// + public class RedirectInput : InputSource + { + public int Width = 512; + public int Height = 512; + + private MetaGesture gesture; + private Dictionary map = new Dictionary(); + + public override bool CancelPointer(Pointer pointer, bool shouldReturn) + { + base.CancelPointer(pointer, shouldReturn); + + map.Remove(pointer.Id); + if (shouldReturn) + { + HitData hit; + if (PointerUtils.IsPointerOnTarget(pointer, transform, out hit)) + { + var newPointer = PointerFactory.Create(pointer.Type, this); + newPointer.CopyFrom(pointer); + newPointer.Position = processCoords(hit.RaycastHit.textureCoord); + addPointer(newPointer); + pressPointer(newPointer); + map.Add(pointer.Id, newPointer); + } + } + return true; + } + + protected override void OnEnable() + { + base.OnEnable(); + gesture = GetComponent(); + if (gesture) + { + gesture.PointerPressed += pointerPressedHandler; + gesture.PointerUpdated += pointerUpdatedHandler; + gesture.PointerCancelled += pointerCancelledhandler; + gesture.PointerReleased += pointerReleasedHandler; + } + } + + protected override void OnDisable() + { + base.OnDisable(); + + if (gesture) + { + gesture.PointerPressed -= pointerPressedHandler; + gesture.PointerUpdated -= pointerUpdatedHandler; + gesture.PointerCancelled -= pointerCancelledhandler; + gesture.PointerReleased -= pointerReleasedHandler; + } + } + + private Vector2 processCoords(Vector2 value) + { + return new Vector2(value.x * Width, value.y * Height); + } + + private void pointerPressedHandler(object sender, MetaGestureEventArgs metaGestureEventArgs) + { + var pointer = metaGestureEventArgs.Pointer; + if (pointer.InputSource == (IInputSource) this) return; + + var newPointer = PointerFactory.Create(pointer.Type, this); + newPointer.CopyFrom(pointer); + newPointer.Position = processCoords(pointer.GetPressData().RaycastHit.textureCoord); + newPointer.Flags = pointer.Flags | Pointer.FLAG_ARTIFICIAL | Pointer.FLAG_INTERNAL; + addPointer(newPointer); + pressPointer(newPointer); + map.Add(pointer.Id, newPointer); + } + + private void pointerUpdatedHandler(object sender, MetaGestureEventArgs metaGestureEventArgs) + { + var pointer = metaGestureEventArgs.Pointer; + + if (pointer.InputSource == (IInputSource) this) return; + + Pointer newPointer; + if (!map.TryGetValue(pointer.Id, out newPointer)) return; + HitData hit; + if (!PointerUtils.IsPointerOnTarget(pointer, transform, out hit)) return; + newPointer.Position = processCoords(hit.RaycastHit.textureCoord); + newPointer.Flags = pointer.Flags | Pointer.FLAG_ARTIFICIAL; + updatePointer(newPointer); + } + + private void pointerReleasedHandler(object sender, MetaGestureEventArgs metaGestureEventArgs) + { + var pointer = metaGestureEventArgs.Pointer; + if (pointer.InputSource == (IInputSource) this) return; + + Pointer newPointer; + if (!map.TryGetValue(pointer.Id, out newPointer)) return; + map.Remove(pointer.Id); + releasePointer(newPointer); + removePointer(newPointer); + } + + private void pointerCancelledhandler(object sender, MetaGestureEventArgs metaGestureEventArgs) + { + var pointer = metaGestureEventArgs.Pointer; + if (pointer.InputSource == (IInputSource) this) return; + + Pointer newPointer; + if (!map.TryGetValue(pointer.Id, out newPointer)) return; + map.Remove(pointer.Id); + cancelPointer(newPointer); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Cube/Scripts/RedirectInput.cs.meta b/Source/Assets/TouchScript/Examples/Cube/Scripts/RedirectInput.cs.meta new file mode 100644 index 000000000..aba659e38 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Cube/Scripts/RedirectInput.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 71f21ea441ad54e2395b6cb5da4f4e9f +timeCreated: 1451049608 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Examples.unity b/Source/Assets/TouchScript/Examples/Examples.unity new file mode 100644 index 000000000..e68c675ed --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Examples.unity @@ -0,0 +1,6450 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &15691937 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 15691938} + - component: {fileID: 15691940} + - component: {fileID: 15691939} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &15691938 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 15691937} + m_LocalRotation: {x: 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: 1037999862} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &15691939 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 15691937} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Shows how to use CameraLayer2D and Gesture.Cancel() to "give" touches to + another gesture. +--- !u!222 &15691940 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 15691937} +--- !u!1 &16824281 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 16824282} + - component: {fileID: 16824284} + - component: {fileID: 16824283} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &16824282 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 16824281} + m_LocalRotation: {x: 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: 758236082} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &16824283 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 16824281} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Shows how to use TransformGesture and PinnedTransformGesture. +--- !u!222 &16824284 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 16824281} +--- !u!1 &37557108 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 37557109} + - component: {fileID: 37557110} + m_Layer: 5 + m_Name: Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &37557109 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 37557108} + m_LocalRotation: {x: 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: 1317055114} + - {fileID: 767854197} + m_Father: {fileID: 2032927211} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 360, y: -60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &37557110 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 37557108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1d184134ce2b24f92834c7bd77c9dcd8, type: 3} + m_Name: + m_EditorClassIdentifier: + Content: {fileID: 2098255038} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 62216952} + - component: {fileID: 62216957} + - component: {fileID: 62216956} + - component: {fileID: 62216955} + - component: {fileID: 62216954} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: 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: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 30 + orthographic: 0 + orthographic size: 100 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &96104531 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 96104532} + - component: {fileID: 96104536} + - component: {fileID: 96104535} + - component: {fileID: 96104534} + - component: {fileID: 96104533} + m_Layer: 5 + m_Name: Previous + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &96104532 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 96104531} + m_LocalRotation: {x: 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: 1784197137} + m_Father: {fileID: 666412329} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0} +--- !u!114 &96104533 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 96104531} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &96104534 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 96104531} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.15862095, g: 1, b: 0, a: 1} + m_PressedColor: {r: 0.9044118, g: 0.9044118, b: 0.9044118, 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: 96104535} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadPreviousLevel + 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 &96104535 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 96104531} + 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: 8c24c9fccfbf94ef08c2da39f7245967, 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 &96104536 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 96104531} +--- !u!1 &174295520 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 174295523} + - component: {fileID: 174295522} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &174295522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 174295520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 0 + m_DragThreshold: 5 +--- !u!4 &174295523 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 174295520} + m_LocalRotation: {x: 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: 1654745587} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &201561626 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 201561627} + - component: {fileID: 201561630} + - component: {fileID: 201561629} + - component: {fileID: 201561628} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &201561627 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 201561626} + m_LocalRotation: {x: 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: 870787322} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &201561628 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 201561626} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 201561629} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Camera + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &201561629 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 201561626} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &201561630 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 201561626} +--- !u!1 &299753858 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 299753859} + - component: {fileID: 299753861} + - component: {fileID: 299753860} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &299753859 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 299753858} + m_LocalRotation: {x: 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: 1037999862} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &299753860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 299753858} + 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: 21300000, guid: 2ffae1f119ee1480785aa1061b1ab391, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &299753861 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 299753858} +--- !u!1 &309713870 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 309713871} + - component: {fileID: 309713874} + - component: {fileID: 309713873} + - component: {fileID: 309713872} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &309713871 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309713870} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.6333333, y: 1.6333333, z: 1.6333333} + m_Children: [] + m_Father: {fileID: 1402896514} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -405.2041, y: -304} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &309713872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309713870} + 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: 1} + m_EffectDistance: {x: 2, y: 2} + m_UseGraphicAlpha: 1 +--- !u!114 &309713873 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309713870} + 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: 53 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 53 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Make sure that you add example scenes to build settings! +--- !u!222 &309713874 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309713870} +--- !u!1 &321008077 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 321008078} + - component: {fileID: 321008081} + - component: {fileID: 321008080} + - component: {fileID: 321008079} + m_Layer: 5 + m_Name: Portal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &321008078 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 321008077} + m_LocalRotation: {x: 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: 1449561975} + - {fileID: 1241691652} + - {fileID: 1894139120} + - {fileID: 329812103} + m_Father: {fileID: 2098255038} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &321008079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 321008077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &321008080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 321008077} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &321008081 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 321008077} +--- !u!1 &329812102 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 329812103} + - component: {fileID: 329812105} + - component: {fileID: 329812104} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &329812103 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 329812102} + m_LocalRotation: {x: 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: 321008078} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &329812104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 329812102} + 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: 21300000, guid: 1217c44a62d504b718e8d6b10d17c0cb, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &329812105 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 329812102} +--- !u!1 &341179472 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 341179473} + - component: {fileID: 341179476} + - component: {fileID: 341179475} + - component: {fileID: 341179474} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &341179473 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 341179472} + m_LocalRotation: {x: 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: 574950114} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &341179474 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 341179472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 341179475} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Taps + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &341179475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 341179472} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &341179476 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 341179472} +--- !u!1 &357107824 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 357107825} + - component: {fileID: 357107828} + - component: {fileID: 357107827} + - component: {fileID: 357107826} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &357107825 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 357107824} + m_LocalRotation: {x: 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: 1037999862} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &357107826 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 357107824} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &357107827 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 357107824} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: colors +--- !u!222 &357107828 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 357107824} +--- !u!1 &363049654 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 363049655} + - component: {fileID: 363049658} + - component: {fileID: 363049657} + - component: {fileID: 363049656} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &363049655 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 363049654} + m_LocalRotation: {x: 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: 758236082} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &363049656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 363049654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 363049657} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Checkers + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &363049657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 363049654} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &363049658 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 363049654} +--- !u!1 &385551182 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 385551183} + - component: {fileID: 385551185} + - component: {fileID: 385551184} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &385551183 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 385551182} + m_LocalRotation: {x: 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: 1004776690} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &385551184 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 385551182} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Shows how to use 3D and 2D layers simultaneously. +--- !u!222 &385551185 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 385551182} +--- !u!1 &406504770 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 406504771} + - component: {fileID: 406504774} + - component: {fileID: 406504773} + - component: {fileID: 406504772} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &406504771 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 406504770} + m_LocalRotation: {x: 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: 1037999862} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &406504772 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 406504770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 406504773} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Colors + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &406504773 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 406504770} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &406504774 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 406504770} +--- !u!1 &452970291 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 452970292} + - component: {fileID: 452970294} + - component: {fileID: 452970293} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &452970292 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 452970291} + m_LocalRotation: {x: 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: 870787322} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &452970293 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 452970291} + 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: 21300000, guid: d1c0e7f7a711f4935b11d81582893ee9, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &452970294 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 452970291} +--- !u!1 &507770917 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 507770921} + - component: {fileID: 507770920} + - component: {fileID: 507770919} + - component: {fileID: 507770918} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &507770918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 507770917} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &507770919 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 507770917} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: cube +--- !u!222 &507770920 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 507770917} +--- !u!224 &507770921 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 507770917} + m_LocalRotation: {x: 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: 621592926} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &558528358 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 558528359} + - component: {fileID: 558528361} + - component: {fileID: 558528360} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &558528359 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 558528358} + m_LocalRotation: {x: 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: 2076713667} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &558528360 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 558528358} + 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: 21300000, guid: e2a00bee3078646c684013506c4f40c4, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &558528361 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 558528358} +--- !u!1 &574950113 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 574950114} + - component: {fileID: 574950117} + - component: {fileID: 574950116} + - component: {fileID: 574950115} + m_Layer: 5 + m_Name: Taps + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &574950114 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 574950113} + m_LocalRotation: {x: 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: 1800191864} + - {fileID: 745674114} + - {fileID: 341179473} + - {fileID: 865431078} + m_Father: {fileID: 2098255038} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &574950115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 574950113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &574950116 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 574950113} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &574950117 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 574950113} +--- !u!1 &595145114 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 595145115} + - component: {fileID: 595145117} + - component: {fileID: 595145116} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &595145115 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 595145114} + m_LocalRotation: {x: 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: 601448587} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &595145116 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 595145114} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Shows how to use TouchScript simply as a source of touches with no gestures + in scene. +--- !u!222 &595145117 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 595145114} +--- !u!1 &601448586 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 601448587} + - component: {fileID: 601448590} + - component: {fileID: 601448589} + - component: {fileID: 601448588} + m_Layer: 5 + m_Name: Raw Input + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &601448587 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 601448586} + m_LocalRotation: {x: 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: 1260024592} + - {fileID: 595145115} + - {fileID: 2001542684} + - {fileID: 2073758707} + m_Father: {fileID: 2098255038} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &601448588 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 601448586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &601448589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 601448586} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &601448590 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 601448586} +--- !u!1 &606054178 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 606054179} + - component: {fileID: 606054182} + - component: {fileID: 606054181} + - component: {fileID: 606054180} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &606054179 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 606054178} + m_LocalRotation: {x: 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: 2098255038} + m_Father: {fileID: 1317055114} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 25, y: -43} + m_SizeDelta: {x: -62, y: -104} + m_Pivot: {x: 0, y: 1} +--- !u!114 &606054180 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 606054178} + 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: 10917, 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 &606054181 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 606054178} +--- !u!114 &606054182 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 606054178} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &621592925 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 621592926} + - component: {fileID: 621592929} + - component: {fileID: 621592928} + - component: {fileID: 621592927} + m_Layer: 5 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &621592926 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 621592925} + m_LocalRotation: {x: 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: 507770921} + - {fileID: 749901011} + - {fileID: 842217637} + - {fileID: 2088901649} + m_Father: {fileID: 2098255038} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &621592927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 621592925} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &621592928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 621592925} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &621592929 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 621592925} +--- !u!1 &666412328 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 666412329} + - component: {fileID: 666412330} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &666412329 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 666412328} + m_LocalRotation: {x: 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: 96104532} + - {fileID: 1412835668} + - {fileID: 1778454010} + m_Father: {fileID: 2032927211} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -141, y: 35} + m_SizeDelta: {x: 259, y: 49} + m_Pivot: {x: 0.50000036, y: 0.5} +--- !u!114 &666412330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 666412328} + 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: 0 + m_Spacing: 2 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!1 &700544018 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 700544019} + - component: {fileID: 700544021} + - component: {fileID: 700544020} + m_Layer: 5 + m_Name: Ribbon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &700544019 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 700544018} + m_LocalRotation: {x: 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: 1924054934} + m_Father: {fileID: 1317055114} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.9607719} + m_AnchorMax: {x: 0.5, y: 0.9607719} + m_AnchoredPosition: {x: 0.000020981002, y: 7.3999023} + m_SizeDelta: {x: 262.6, y: 73.242} + m_Pivot: {x: 0.5, y: 0.49999997} +--- !u!114 &700544020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 700544018} + 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: 21300000, guid: 795edb780ddd9406493b04bb9b8ed002, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &700544021 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 700544018} +--- !u!1 &745674113 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 745674114} + - component: {fileID: 745674116} + - component: {fileID: 745674115} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &745674114 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 745674113} + m_LocalRotation: {x: 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: 574950114} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &745674115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 745674113} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: How to use TapGesture and LongPressGesture. +--- !u!222 &745674116 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 745674113} +--- !u!1 &749901010 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 749901011} + - component: {fileID: 749901013} + - component: {fileID: 749901012} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &749901011 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 749901010} + m_LocalRotation: {x: 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: 621592926} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &749901012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 749901010} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Shows how to use a custom input source and TouchLayer.Delegate. +--- !u!222 &749901013 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 749901010} +--- !u!1 &758236081 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 758236082} + - component: {fileID: 758236085} + - component: {fileID: 758236084} + - component: {fileID: 758236083} + m_Layer: 5 + m_Name: Checkers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &758236082 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 758236081} + m_LocalRotation: {x: 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: 1280257797} + - {fileID: 16824282} + - {fileID: 363049655} + - {fileID: 1987127154} + m_Father: {fileID: 2098255038} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &758236083 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 758236081} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &758236084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 758236081} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &758236085 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 758236081} +--- !u!1 &767854196 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 767854197} + - component: {fileID: 767854200} + - component: {fileID: 767854199} + - component: {fileID: 767854198} + m_Layer: 5 + m_Name: Close + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &767854197 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 767854196} + m_LocalRotation: {x: 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: 37557109} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -31.199997, y: -39.700195} + m_SizeDelta: {x: 54.5, y: 54.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &767854198 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 767854196} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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: 0.75, b: 0.75, 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: 767854199} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 37557108} + m_MethodName: SetActive + 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.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &767854199 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 767854196} + 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: da634550c6a1c4ff38304b1c8566d809, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &767854200 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 767854196} +--- !u!1 &801696178 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 801696179} + - component: {fileID: 801696182} + - component: {fileID: 801696181} + - component: {fileID: 801696180} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &801696179 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801696178} + m_LocalRotation: {x: 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: 2076713667} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &801696180 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801696178} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &801696181 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801696178} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: photos +--- !u!222 &801696182 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801696178} +--- !u!1 &812982524 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 812982525} + - component: {fileID: 812982528} + - component: {fileID: 812982527} + - component: {fileID: 812982526} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &812982525 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 812982524} + m_LocalRotation: {x: 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: 1920151151} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &812982526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 812982524} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &812982527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 812982524} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: pull +--- !u!222 &812982528 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 812982524} +--- !u!1 &842217636 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 842217637} + - component: {fileID: 842217640} + - component: {fileID: 842217639} + - component: {fileID: 842217638} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &842217637 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 842217636} + m_LocalRotation: {x: 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: 621592926} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &842217638 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 842217636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 842217639} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Cube + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &842217639 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 842217636} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &842217640 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 842217636} +--- !u!1 &865431077 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 865431078} + - component: {fileID: 865431080} + - component: {fileID: 865431079} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &865431078 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 865431077} + m_LocalRotation: {x: 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: 574950114} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &865431079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 865431077} + 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: 21300000, guid: 5a60ebe3657034c78bd3f829dc6b132e, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &865431080 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 865431077} +--- !u!1 &870787321 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 870787322} + - component: {fileID: 870787325} + - component: {fileID: 870787324} + - component: {fileID: 870787323} + m_Layer: 5 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &870787322 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 870787321} + m_LocalRotation: {x: 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: 879805661} + - {fileID: 1030186641} + - {fileID: 201561627} + - {fileID: 452970292} + m_Father: {fileID: 2098255038} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &870787323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 870787321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &870787324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 870787321} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &870787325 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 870787321} +--- !u!1 &879805660 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 879805661} + - component: {fileID: 879805664} + - component: {fileID: 879805663} + - component: {fileID: 879805662} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &879805661 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 879805660} + m_LocalRotation: {x: 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: 870787322} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &879805662 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 879805660} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &879805663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 879805660} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: camera +--- !u!222 &879805664 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 879805660} +--- !u!1 &962873576 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 962873577} + - component: {fileID: 962873580} + - component: {fileID: 962873579} + - component: {fileID: 962873578} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &962873577 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 962873576} + m_LocalRotation: {x: 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: 1004776690} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &962873578 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 962873576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 962873579} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Multiuser + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &962873579 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 962873576} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &962873580 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 962873576} +--- !u!1 &1004776689 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1004776690} + - component: {fileID: 1004776693} + - component: {fileID: 1004776692} + - component: {fileID: 1004776691} + m_Layer: 5 + m_Name: Multiuser + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1004776690 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1004776689} + m_LocalRotation: {x: 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: 2008717908} + - {fileID: 385551183} + - {fileID: 962873577} + - {fileID: 1608867050} + m_Father: {fileID: 2098255038} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1004776691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1004776689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &1004776692 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1004776689} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &1004776693 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1004776689} +--- !u!1 &1030186640 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1030186641} + - component: {fileID: 1030186643} + - component: {fileID: 1030186642} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1030186641 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1030186640} + m_LocalRotation: {x: 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: 870787322} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1030186642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1030186640} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: How to use TransformGesture to make a camera which can orbit and move around + an object. +--- !u!222 &1030186643 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1030186640} +--- !u!1 &1037999861 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1037999862} + - component: {fileID: 1037999865} + - component: {fileID: 1037999864} + - component: {fileID: 1037999863} + m_Layer: 5 + m_Name: Colors + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1037999862 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1037999861} + m_LocalRotation: {x: 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: 357107825} + - {fileID: 15691938} + - {fileID: 406504771} + - {fileID: 299753859} + m_Father: {fileID: 2098255038} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1037999863 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1037999861} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &1037999864 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1037999861} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &1037999865 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1037999861} +--- !u!1 &1168732682 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1168732683} + - component: {fileID: 1168732685} + - component: {fileID: 1168732684} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1168732683 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1168732682} + m_LocalRotation: {x: 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: 2076713667} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1168732684 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1168732682} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Shows how to use UI Layer to interact with UI elements. +--- !u!222 &1168732685 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1168732682} +--- !u!1 &1173809305 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1173809306} + - component: {fileID: 1173809309} + - component: {fileID: 1173809308} + - component: {fileID: 1173809307} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1173809306 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1173809305} + m_LocalRotation: {x: 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: 1778454010} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -1} + m_SizeDelta: {x: 0, y: -11} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1173809307 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1173809305} + 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.297} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &1173809308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1173809305} + 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: 12800000, guid: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 28 + 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: '>>' +--- !u!222 &1173809309 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1173809305} +--- !u!1 &1241691651 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1241691652} + - component: {fileID: 1241691654} + - component: {fileID: 1241691653} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1241691652 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1241691651} + m_LocalRotation: {x: 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: 321008078} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1241691653 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1241691651} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Shows how to cancel a gesture. +--- !u!222 &1241691654 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1241691651} +--- !u!1 &1260024591 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1260024592} + - component: {fileID: 1260024595} + - component: {fileID: 1260024594} + - component: {fileID: 1260024593} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1260024592 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1260024591} + m_LocalRotation: {x: 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: 601448587} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1260024593 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1260024591} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &1260024594 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1260024591} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: raw input +--- !u!222 &1260024595 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1260024591} +--- !u!1 &1280257796 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1280257797} + - component: {fileID: 1280257800} + - component: {fileID: 1280257799} + - component: {fileID: 1280257798} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1280257797 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1280257796} + m_LocalRotation: {x: 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: 758236082} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1280257798 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1280257796} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &1280257799 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1280257796} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: checkers +--- !u!222 &1280257800 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1280257796} +--- !u!1 &1317055113 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1317055114} + - component: {fileID: 1317055117} + - component: {fileID: 1317055116} + - component: {fileID: 1317055115} + m_Layer: 5 + m_Name: Examples List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1317055114 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1317055113} + m_LocalRotation: {x: 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: 606054179} + - {fileID: 700544019} + m_Father: {fileID: 37557109} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0, y: -10} + m_SizeDelta: {x: -41, y: -60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1317055115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1317055113} + 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: 21300000, guid: 9162f54c0795b4623b5616fc423eec6a, 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 &1317055116 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1317055113} +--- !u!114 &1317055117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1317055113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 2098255038} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 606054179} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &1361172026 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1361172027} + - component: {fileID: 1361172030} + - component: {fileID: 1361172029} + - component: {fileID: 1361172028} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1361172027 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1361172026} + m_LocalRotation: {x: 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: 2076713667} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1361172028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1361172026} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 1361172029} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Photos + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &1361172029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1361172026} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1361172030 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1361172026} +--- !u!1 &1402896513 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1402896514} + - component: {fileID: 1402896517} + - component: {fileID: 1402896516} + - component: {fileID: 1402896515} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1402896514 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402896513} + 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_Children: + - {fileID: 309713871} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1402896515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402896513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c534619fb2794426fb1495e64ec4bcb7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1402896516 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402896513} + 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!223 &1402896517 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402896513} + m_Enabled: 0 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1411566800 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1411566801} + - component: {fileID: 1411566803} + - component: {fileID: 1411566802} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1411566801 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1411566800} + m_LocalRotation: {x: 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: 1920151151} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1411566802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1411566800} + 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: 21300000, guid: ed91d97df020e4a8cb289e68e82485be, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1411566803 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1411566800} +--- !u!1 &1412835664 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1412835668} + - component: {fileID: 1412835667} + - component: {fileID: 1412835666} + - component: {fileID: 1412835665} + - component: {fileID: 1412835669} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1412835665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1412835664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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, g: 0.95862055, b: 1, a: 1} + m_PressedColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, 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: 1412835666} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + m_Mode: 1 + 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.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1412835666 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1412835664} + 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: 0afc57b6a109d46f6a1168e3fce8d788, 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 &1412835667 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1412835664} +--- !u!224 &1412835668 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1412835664} + m_LocalRotation: {x: 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: 1487808224} + m_Father: {fileID: 666412329} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0} +--- !u!114 &1412835669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1412835664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 100 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1449561974 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1449561975} + - component: {fileID: 1449561978} + - component: {fileID: 1449561977} + - component: {fileID: 1449561976} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1449561975 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1449561974} + m_LocalRotation: {x: 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: 321008078} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1449561976 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1449561974} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &1449561977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1449561974} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: portal +--- !u!222 &1449561978 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1449561974} +--- !u!1 &1487808223 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1487808224} + - component: {fileID: 1487808226} + - component: {fileID: 1487808225} + - component: {fileID: 1487808227} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1487808224 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487808223} + m_LocalRotation: {x: 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: 1412835668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: -4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1487808225 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487808223} + 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: 12800000, guid: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 16 + 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: EXAMPLES LIST +--- !u!222 &1487808226 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487808223} +--- !u!114 &1487808227 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1487808223} + 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.297} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1562323887 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1562323888} + - component: {fileID: 1562323890} + - component: {fileID: 1562323889} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1562323888 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1562323887} + m_LocalRotation: {x: 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: 1920151151} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15.699997, y: -4.8999996} + m_SizeDelta: {x: -131.9, y: -51.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1562323889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1562323887} + 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, g: 0, b: 0, 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: 8 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Shows how to write a custom gesture. +--- !u!222 &1562323890 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1562323887} +--- !u!1 &1567954097 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1567954098} + - component: {fileID: 1567954101} + - component: {fileID: 1567954100} + - component: {fileID: 1567954099} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1567954098 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1567954097} + m_LocalRotation: {x: 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: 1920151151} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1567954099 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1567954097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 1567954100} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Pull + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &1567954100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1567954097} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1567954101 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1567954097} +--- !u!1 &1608867049 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1608867050} + - component: {fileID: 1608867052} + - component: {fileID: 1608867051} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1608867050 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1608867049} + m_LocalRotation: {x: 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: 1004776690} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1608867051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1608867049} + 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: 21300000, guid: 7948ef2b5570c4deaa033186f8e3cada, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1608867052 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1608867049} +--- !u!1 &1654745586 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1654745587} + - component: {fileID: 1654745588} + - component: {fileID: 1654745589} + m_Layer: 0 + m_Name: Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1654745587 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1654745586} + m_LocalRotation: {x: 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: 174295523} + - {fileID: 2032927211} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1654745588 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1654745586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5d0145ec13410624f9b2939e5d5a99be, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1654745589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1654745586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: ScreenSpace UI Layer + basicEditor: 1 + advancedProps: 0 + hitProps: 0 + hit3DObjects: 0 + hit2DObjects: 0 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 1 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!1 &1778454009 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1778454010} + - component: {fileID: 1778454014} + - component: {fileID: 1778454013} + - component: {fileID: 1778454012} + - component: {fileID: 1778454011} + m_Layer: 5 + m_Name: Next + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1778454010 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1778454009} + m_LocalRotation: {x: 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: 1173809306} + m_Father: {fileID: 666412329} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0} +--- !u!114 &1778454011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1778454009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &1778454012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1778454009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.15862095, g: 1, b: 0, a: 1} + m_PressedColor: {r: 0.9044118, g: 0.9044118, b: 0.9044118, 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: 1778454013} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadNextLevel + 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 &1778454013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1778454009} + 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: 8c24c9fccfbf94ef08c2da39f7245967, 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 &1778454014 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1778454009} +--- !u!1 &1784197136 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1784197137} + - component: {fileID: 1784197140} + - component: {fileID: 1784197139} + - component: {fileID: 1784197138} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1784197137 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1784197136} + m_LocalRotation: {x: 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: 96104532} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -2} + m_SizeDelta: {x: 0, y: -12} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1784197138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1784197136} + 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.297} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &1784197139 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1784197136} + 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: 12800000, guid: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 28 + 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: << +--- !u!222 &1784197140 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1784197136} +--- !u!1 &1800191863 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1800191864} + - component: {fileID: 1800191867} + - component: {fileID: 1800191866} + - component: {fileID: 1800191865} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1800191864 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1800191863} + m_LocalRotation: {x: 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: 574950114} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1800191865 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1800191863} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &1800191866 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1800191863} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: taps +--- !u!222 &1800191867 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1800191863} +--- !u!1 &1894139119 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1894139120} + - component: {fileID: 1894139123} + - component: {fileID: 1894139122} + - component: {fileID: 1894139121} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1894139120 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1894139119} + m_LocalRotation: {x: 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: 321008078} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1894139121 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1894139119} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 1894139122} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Portal + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &1894139122 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1894139119} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1894139123 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1894139119} +--- !u!1 &1920151150 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1920151151} + - component: {fileID: 1920151154} + - component: {fileID: 1920151153} + - component: {fileID: 1920151152} + m_Layer: 5 + m_Name: Pull + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1920151151 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1920151150} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.99999774, y: 0.99999774, z: 0.99999774} + m_Children: + - {fileID: 812982525} + - {fileID: 1562323888} + - {fileID: 1567954098} + - {fileID: 1411566801} + m_Father: {fileID: 2098255038} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1920151152 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1920151150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &1920151153 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1920151150} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &1920151154 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1920151150} +--- !u!1 &1924054933 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1924054934} + - component: {fileID: 1924054937} + - component: {fileID: 1924054936} + - component: {fileID: 1924054935} + m_Layer: 5 + m_Name: Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1924054934 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1924054933} + m_LocalRotation: {x: 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: 700544019} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.000024319, y: 7.9} + m_SizeDelta: {x: 151.8, y: 24.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1924054935 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1924054933} + 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.516} + m_EffectDistance: {x: 1, y: 1} + m_UseGraphicAlpha: 0 +--- !u!114 &1924054936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1924054933} + 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: 0.96517026, b: 0.85294116, 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: 12800000, guid: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 90 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: EXAMPLES +--- !u!222 &1924054937 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1924054933} +--- !u!1 &1987127153 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1987127154} + - component: {fileID: 1987127156} + - component: {fileID: 1987127155} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1987127154 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1987127153} + m_LocalRotation: {x: 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: 758236082} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1987127155 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1987127153} + 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: 21300000, guid: af230e20959134865a1c53e6e8edbbe7, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1987127156 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1987127153} +--- !u!1 &2001542683 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2001542684} + - component: {fileID: 2001542687} + - component: {fileID: 2001542686} + - component: {fileID: 2001542685} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2001542684 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2001542683} + m_LocalRotation: {x: 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: 601448587} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -4.9} + m_SizeDelta: {x: 36.7, y: 36.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2001542685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2001542683} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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.75735295, g: 1, b: 0.769067, 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: 2001542686} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1654745588} + m_MethodName: LoadLevel + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: RawInput + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 37557110} + m_MethodName: ShowHide + 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 &2001542686 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2001542683} + 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: 5410db89f39a24e0fa785adf88e19b01, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &2001542687 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2001542683} +--- !u!1 &2008717907 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2008717908} + - component: {fileID: 2008717911} + - component: {fileID: 2008717910} + - component: {fileID: 2008717909} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2008717908 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2008717907} + m_LocalRotation: {x: 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: 1004776690} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 33.699997, y: 21.6} + m_SizeDelta: {x: -94.8, y: -68.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2008717909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2008717907} + 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.5} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 0 +--- !u!114 &2008717910 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2008717907} + 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: 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: e423173afdece4d3fa49ed8e89391fce, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: multiuser +--- !u!222 &2008717911 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2008717907} +--- !u!1 &2032927210 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2032927211} + - component: {fileID: 2032927214} + - component: {fileID: 2032927213} + - component: {fileID: 2032927212} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2032927211 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2032927210} + 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_Children: + - {fileID: 666412329} + - {fileID: 37557109} + m_Father: {fileID: 1654745587} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &2032927212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2032927210} + 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 &2032927213 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2032927210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &2032927214 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2032927210} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &2073758706 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2073758707} + - component: {fileID: 2073758709} + - component: {fileID: 2073758708} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2073758707 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2073758706} + m_LocalRotation: {x: 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: 601448587} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2073758708 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2073758706} + 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: 21300000, guid: 63efac244c09b40f093989ca7d903d38, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &2073758709 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2073758706} +--- !u!1 &2076713666 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2076713667} + - component: {fileID: 2076713670} + - component: {fileID: 2076713669} + - component: {fileID: 2076713668} + m_Layer: 5 + m_Name: Photos + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2076713667 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2076713666} + m_LocalRotation: {x: 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: 801696179} + - {fileID: 1168732683} + - {fileID: 1361172027} + - {fileID: 558528359} + m_Father: {fileID: 2098255038} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2076713668 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2076713666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 80 + m_PreferredWidth: -1 + m_PreferredHeight: 80 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &2076713669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2076713666} + 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: b8fce26041bc947319fee43a8ec9bb5d, 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 &2076713670 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2076713666} +--- !u!1 &2088901648 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2088901649} + - component: {fileID: 2088901651} + - component: {fileID: 2088901650} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2088901649 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2088901648} + m_LocalRotation: {x: 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: 621592926} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -86.3, y: 3.8} + m_SizeDelta: {x: 46, y: 54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2088901650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2088901648} + 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: 21300000, guid: 8ba5d3ffe53b94eb9b457550d9d0c8d8, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &2088901651 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2088901648} +--- !u!1 &2098255037 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2098255038} + - component: {fileID: 2098255039} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2098255038 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2098255037} + m_LocalRotation: {x: 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: 601448587} + - {fileID: 574950114} + - {fileID: 870787322} + - {fileID: 2076713667} + - {fileID: 758236082} + - {fileID: 321008078} + - {fileID: 1037999862} + - {fileID: 621592926} + - {fileID: 1004776690} + - {fileID: 1920151151} + m_Father: {fileID: 606054179} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 815} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2098255039 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2098255037} + 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: 0 + m_Spacing: 2 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 diff --git a/Source/Assets/TouchScript/Examples/Examples.unity.meta b/Source/Assets/TouchScript/Examples/Examples.unity.meta new file mode 100644 index 000000000..806ba1109 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Examples.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 7cba6bf72365a4167930fec2f6f39b74 +DefaultImporter: + userData: "0" diff --git a/Source/Assets/TouchScript/Examples/Multiuser.meta b/Source/Assets/TouchScript/Examples/Multiuser.meta new file mode 100644 index 000000000..54a789897 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Multiuser.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: e683097c72ada4d62bec21955dffd74b +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Multiuser/Multiuser.unity b/Source/Assets/TouchScript/Examples/Multiuser/Multiuser.unity new file mode 100644 index 000000000..a208c35ad --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Multiuser/Multiuser.unity @@ -0,0 +1,3932 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 1 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666666 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!4 &67866218 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 118449117} +--- !u!4 &75524721 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1140734431} +--- !u!1001 &80336476 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -3.50999999 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &84953949 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: .529999971 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &91428584 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 2127108240} +--- !u!4 &96602513 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1657864009} +--- !u!1001 &118449117 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -.469999999 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 6437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_Convex + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &149789978 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -1.49000001 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &151770227 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1196054868} +--- !u!1001 &160725920 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -1.49000001 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &219485506 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: 2.54999995 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &245076259 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1173961257} +--- !u!1001 &252735314 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: .550000012 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 10 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &261400437 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1946070919} +--- !u!1 &269580355 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 119512, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 269580356} + - 33: {fileID: 269580360} + - 23: {fileID: 269580359} + - 65: {fileID: 269580358} + - 54: {fileID: 269580357} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &269580356 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 419512, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 269580355} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.101, z: 0} + m_LocalScale: {x: 10, y: 0.2, z: 10} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1164346782} + m_RootOrder: 0 +--- !u!54 &269580357 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 269580355} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 14 + m_CollisionDetection: 2 +--- !u!65 &269580358 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 6585348, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 269580355} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0.01, z: 0} +--- !u!23 &269580359 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2319510, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 269580355} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: bade3b3ccc3024624b44815e95a6af4e, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &269580360 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 3319510, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 269580355} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &273490025 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 84953949} +--- !u!1 &437243915 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 437243916} + - 222: {fileID: 437243919} + - 114: {fileID: 437243918} + - 114: {fileID: 437243917} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &437243916 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 437243915} + m_LocalRotation: {x: 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: 1622510500} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &437243917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 437243915} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &437243918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 437243915} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Tap Unity logos ' +--- !u!222 &437243919 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 437243915} +--- !u!4 &444714385 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 583512110} +--- !u!1 &479835905 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 479835906} + - 223: {fileID: 479835909} + - 114: {fileID: 479835908} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &479835906 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 479835905} + 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: + - {fileID: 1360329865} + - {fileID: 878382147} + m_Father: {fileID: 0} + 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, y: 0} +--- !u!114 &479835908 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 479835905} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &479835909 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 479835905} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + 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!4 &494059473 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1777618987} +--- !u!1 &501236164 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100000, guid: e489ac3472ad77e4496ad84b9af2013a, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 501236165} + - 212: {fileID: 501236169} + - 61: {fileID: 501236168} + - 114: {fileID: 501236167} + - 114: {fileID: 501236166} + m_Layer: 0 + m_Name: Unity_Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &501236165 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 400000, guid: e489ac3472ad77e4496ad84b9af2013a, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 501236164} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.2, y: -22.1, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2096873804} + m_RootOrder: 0 +--- !u!114 &501236166 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400002, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 501236164} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a878a6ff128243dfb1d89ca0273f059, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTap: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + numberOfTapsRequired: 1 + timeLimit: Infinity + distanceLimit: Infinity +--- !u!114 &501236167 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400000, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 501236164} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2e92e2b213d0040cd99ba07a7da907dd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!61 &501236168 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 6100000, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 501236164} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Size: {x: 2, y: 2} +--- !u!212 &501236169 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 21200000, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 501236164} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 0 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 533b9df4691d947d9921a0053b5ce231, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 +--- !u!1 &519196852 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 119512, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 519196853} + - 33: {fileID: 519196857} + - 23: {fileID: 519196856} + - 65: {fileID: 519196855} + - 54: {fileID: 519196854} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &519196853 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 419512, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 519196852} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.101, z: 0} + m_LocalScale: {x: 10, y: 0.2, z: 10} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1388179442} + m_RootOrder: 0 +--- !u!54 &519196854 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 519196852} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 14 + m_CollisionDetection: 2 +--- !u!65 &519196855 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 6585348, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 519196852} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0.01, z: 0} +--- !u!23 &519196856 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2319510, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 519196852} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 2100000, guid: bade3b3ccc3024624b44815e95a6af4e, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &519196857 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 3319510, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 519196852} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &529543778 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100000, guid: e489ac3472ad77e4496ad84b9af2013a, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 529543779} + - 212: {fileID: 529543783} + - 61: {fileID: 529543782} + - 114: {fileID: 529543781} + - 114: {fileID: 529543780} + m_Layer: 0 + m_Name: Unity_Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &529543779 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 400000, guid: e489ac3472ad77e4496ad84b9af2013a, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 529543778} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 6.6, y: -22.1, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2096873804} + m_RootOrder: 2 +--- !u!114 &529543780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400002, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 529543778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a878a6ff128243dfb1d89ca0273f059, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTap: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + numberOfTapsRequired: 1 + timeLimit: Infinity + distanceLimit: Infinity +--- !u!114 &529543781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400000, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 529543778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2e92e2b213d0040cd99ba07a7da907dd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!61 &529543782 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 6100000, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 529543778} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Size: {x: 2, y: 2} +--- !u!212 &529543783 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 21200000, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 529543778} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 0 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 533b9df4691d947d9921a0053b5ce231, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 +--- !u!1001 &543251036 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[0] + value: + objectReference: {fileID: 1416507468} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[1] + value: + objectReference: {fileID: 871116141} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[2] + value: + objectReference: {fileID: 1969944225} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[3] + value: + objectReference: {fileID: 723351973} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[4] + value: + objectReference: {fileID: 2041906757} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &583512110 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -3.45000005 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.50999999 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &586582585 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1407820253} +--- !u!4 &588148001 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 2102638578} +--- !u!1001 &588643767 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -3.45000005 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.50999999 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &653983832 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -2.47300005 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.54399991 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &655915740 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 655915741} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &655915741 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 655915740} + m_LocalRotation: {x: 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: 1969944223} + - {fileID: 871116140} + - {fileID: 1416507463} + - {fileID: 2096873804} + - {fileID: 2041906756} + - {fileID: 723351974} + - {fileID: 1810922940} + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1001 &695109447 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: 1.50999999 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &703888848 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1006503118} +--- !u!1 &723351972 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 723351974} + - 114: {fileID: 723351973} + - 114: {fileID: 723351976} + - 114: {fileID: 723351975} + m_Layer: 0 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &723351973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 723351972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc7fd33c57d694994b0ab9f33fcdcbea, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Fullscreen @ Right 3D Camera + type: 1 + _camera: {fileID: 871116139} +--- !u!4 &723351974 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 723351972} + m_LocalRotation: {x: 0, y: 0.3476719, z: 0, w: -0.9376163} + m_LocalPosition: {x: 100, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1388179442} + m_Father: {fileID: 655915741} + m_RootOrder: 5 +--- !u!114 &723351975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 723351972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.01 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &723351976 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 723351972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 1 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 0 + projectionPlaneNormal: {x: 0, y: 0, z: 1} +--- !u!4 &739470077 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1240957464} +--- !u!1 &750573662 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 750573663} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &750573663 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 750573662} + m_LocalRotation: {x: 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: 1828860094} + - {fileID: 2014918824} + - {fileID: 588148001} + - {fileID: 739470077} + - {fileID: 1442124646} + - {fileID: 273490025} + - {fileID: 872399230} + - {fileID: 2134569303} + - {fileID: 912372659} + - {fileID: 1714854506} + - {fileID: 1496504312} + - {fileID: 1485875516} + - {fileID: 91428584} + - {fileID: 261400437} + - {fileID: 67866218} + - {fileID: 1522091850} + m_Father: {fileID: 1164346782} + m_RootOrder: 1 +--- !u!1 &759689236 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 759689238} + - 114: {fileID: 759689237} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &759689237 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 759689236} + 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: 5 +--- !u!4 &759689238 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 759689236} + m_LocalRotation: {x: 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: 4 +--- !u!1001 &804482168 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -1.45000005 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &833985765 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 149789978} +--- !u!1001 &870674549 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -.469999999 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 6437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_Convex + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &871116138 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 871116140} + - 20: {fileID: 871116139} + - 114: {fileID: 871116141} + m_Layer: 0 + m_Name: Right 3D Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &871116139 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 871116138} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0.5 + y: 0 + width: 0.5 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &871116140 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 871116138} + m_LocalRotation: {x: -0.42646128, y: 0.4520982, z: -0.2610191, w: -0.7386522} + m_LocalPosition: {x: 104.46, y: 9.66, z: -2.17} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 60, y: -62.9381, z: 0} + m_Children: [] + m_Father: {fileID: 655915741} + m_RootOrder: 1 +--- !u!114 &871116141 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 871116138} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Right 3D Camera + advancedProps: 0 + hitProps: 0 + hit3DObjects: 1 + hit2DObjects: 0 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 0 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!4 &872399230 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 804482168} +--- !u!1 &878382146 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 878382147} + - 222: {fileID: 878382150} + - 114: {fileID: 878382149} + - 114: {fileID: 878382148} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &878382147 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 878382146} + m_LocalRotation: {x: 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: 479835906} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -152, y: -74} + m_SizeDelta: {x: 276, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &878382148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 878382146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &878382149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 878382146} + 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: 2 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Multiuser environment\n\nThis example shows how to use \n3D and + 2D layers simultaneously." +--- !u!222 &878382150 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 878382146} +--- !u!1 &897580452 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 897580453} + - 114: {fileID: 897580454} + m_Layer: 5 + m_Name: Drag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &897580453 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 897580452} + m_LocalRotation: {x: 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: 1495978976} + - {fileID: 1863190594} + m_Father: {fileID: 1735991412} + 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 &897580454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 897580452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!4 &912372659 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1060106138} +--- !u!1001 &987168231 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -2.50999999 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 15 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1006503118 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: 1.52999997 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1060106138 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -3.50999999 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1060318960 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100000, guid: e489ac3472ad77e4496ad84b9af2013a, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1060318961} + - 212: {fileID: 1060318965} + - 61: {fileID: 1060318964} + - 114: {fileID: 1060318963} + - 114: {fileID: 1060318962} + m_Layer: 0 + m_Name: Unity_Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1060318961 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 400000, guid: e489ac3472ad77e4496ad84b9af2013a, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1060318960} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -9, y: -22.1, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2096873804} + m_RootOrder: 1 +--- !u!114 &1060318962 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400002, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1060318960} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a878a6ff128243dfb1d89ca0273f059, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTap: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + numberOfTapsRequired: 1 + timeLimit: Infinity + distanceLimit: Infinity +--- !u!114 &1060318963 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400000, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1060318960} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2e92e2b213d0040cd99ba07a7da907dd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!61 &1060318964 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 6100000, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1060318960} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Size: {x: 2, y: 2} +--- !u!212 &1060318965 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 21200000, guid: e489ac3472ad77e4496ad84b9af2013a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1060318960} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 0 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 533b9df4691d947d9921a0053b5ce231, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 +--- !u!1001 &1140734431 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: .550000012 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 10 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1164346781 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 119514, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1164346782} + - 33: {fileID: 1164346786} + - 23: {fileID: 1164346785} + - 114: {fileID: 1164346784} + - 114: {fileID: 1164346783} + m_Layer: 0 + m_Name: Board + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1164346782 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 419514, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164346781} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 269580356} + - {fileID: 750573663} + m_Father: {fileID: 2041906756} + m_RootOrder: 0 +--- !u!114 &1164346783 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11437400, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164346781} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 38e07bff8743d4ee38bf724a7a2b4cbb, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 2 + screenTransformThreshold: 0.05 + projectionProps: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &1164346784 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11411388, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164346781} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66947205b8dad437e8e87b03573f74b3, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!23 &1164346785 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2319512, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164346781} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: c39504b52f7f64f26b5762f1bb63f09c, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1164346786 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 3319512, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164346781} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &1166223194 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: 2.54999995 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1173961257 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: 3.52999997 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1196054868 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -2.47300005 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.54399991 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1201949066 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: 3.52999997 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1212863162 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1212863163} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1212863163 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1212863162} + m_LocalRotation: {x: 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: 151770227} + - {fileID: 96602513} + - {fileID: 1749205319} + - {fileID: 1325609830} + - {fileID: 1638550962} + - {fileID: 494059473} + - {fileID: 1809805994} + - {fileID: 444714385} + - {fileID: 1355259172} + - {fileID: 833985765} + - {fileID: 75524721} + - {fileID: 1554822987} + - {fileID: 245076259} + - {fileID: 703888848} + - {fileID: 1651839809} + - {fileID: 586582585} + m_Father: {fileID: 1388179442} + m_RootOrder: 1 +--- !u!1001 &1240957464 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: 3.52999997 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1266638324 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1266638325} + - 222: {fileID: 1266638327} + - 114: {fileID: 1266638326} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1266638325 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1266638324} + m_LocalRotation: {x: 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: 1622510500} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1266638326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1266638324} + 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: 26489b03725f747f998c39661c2583b5, 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 &1266638327 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1266638324} +--- !u!4 &1325609830 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1201949066} +--- !u!4 &1355259172 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 80336476} +--- !u!1 &1360329864 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1360329865} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1360329865 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1360329864} + m_LocalRotation: {x: 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: 1735991412} + m_Father: {fileID: 479835906} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1388179441 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 119514, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1388179442} + - 33: {fileID: 1388179446} + - 23: {fileID: 1388179445} + - 114: {fileID: 1388179444} + - 114: {fileID: 1388179443} + m_Layer: 0 + m_Name: Board + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1388179442 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 419514, guid: 4af91eff6c67b4995be4765a62f7eb5d, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1388179441} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 519196853} + - {fileID: 1212863163} + m_Father: {fileID: 723351974} + m_RootOrder: 0 +--- !u!114 &1388179443 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11437400, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1388179441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 38e07bff8743d4ee38bf724a7a2b4cbb, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 2 + screenTransformThreshold: 0.05 + projectionProps: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &1388179444 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11411388, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1388179441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66947205b8dad437e8e87b03573f74b3, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!23 &1388179445 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2319512, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1388179441} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: c39504b52f7f64f26b5762f1bb63f09c, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &1388179446 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 3319512, guid: 4af91eff6c67b4995be4765a62f7eb5d, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1388179441} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &1407820253 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: -2.50999999 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 15 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1416507462 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1416507463} + - 20: {fileID: 1416507467} + - 124: {fileID: 1416507466} + - 92: {fileID: 1416507465} + - 81: {fileID: 1416507464} + - 114: {fileID: 1416507468} + m_Layer: 0 + m_Name: 2D Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1416507463 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416507462} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -51.85103} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 655915741} + m_RootOrder: 2 +--- !u!81 &1416507464 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416507462} + m_Enabled: 1 +--- !u!92 &1416507465 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416507462} + m_Enabled: 1 +--- !u!124 &1416507466 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416507462} + m_Enabled: 1 +--- !u!20 &1416507467 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416507462} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 3 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 2 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!114 &1416507468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1416507462} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: 2D Camera + advancedProps: 0 + hitProps: 0 + hit3DObjects: 0 + hit2DObjects: 1 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 0 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!4 &1442124646 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1166223194} +--- !u!4 &1485875516 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1937636203} +--- !u!1 &1495978975 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1495978976} + - 222: {fileID: 1495978978} + - 114: {fileID: 1495978977} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1495978976 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1495978975} + m_LocalRotation: {x: 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: 897580453} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1495978977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1495978975} + 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: 71e59d6fec0b04b60acf6cad4b860a39, 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 &1495978978 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1495978975} +--- !u!4 &1496504312 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 252735314} +--- !u!4 &1522091850 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 987168231} +--- !u!1001 &1534507611 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -1.45000005 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1535151106 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: 2.52999997 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 11 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &1554822987 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 1535151106} +--- !u!1 &1622510499 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1622510500} + - 114: {fileID: 1622510501} + m_Layer: 5 + m_Name: Tap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1622510500 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1622510499} + m_LocalRotation: {x: 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: 1266638325} + - {fileID: 437243916} + m_Father: {fileID: 1735991412} + 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 &1622510501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1622510499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!4 &1638550962 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 219485506} +--- !u!4 &1651839809 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 870674549} +--- !u!1001 &1657864009 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -.469999999 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &1714854506 stripped +Transform: + m_PrefabParentObject: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_PrefabInternal: {fileID: 160725920} +--- !u!1 &1735991410 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1735991412} + - 114: {fileID: 1735991411} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1735991411 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1735991410} + 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: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!224 &1735991412 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1735991410} + m_LocalRotation: {x: 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: 897580453} + - {fileID: 1622510500} + m_Father: {fileID: 1360329865} + 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!4 &1749205319 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 695109447} +--- !u!1001 &1772227325 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1777618987 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1212863163} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: .529999971 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &1809805994 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 1534507611} +--- !u!1 &1810922939 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1810922940} + - 108: {fileID: 1810922941} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1810922940 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1810922939} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.10938166, w: 0.8754261} + m_LocalPosition: {x: 0, y: 2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 655915741} + m_RootOrder: 6 +--- !u!108 &1810922941 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1810922939} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: 3 + m_Strength: 0.11 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &1828860094 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 653983832} +--- !u!1 &1863190593 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1863190594} + - 222: {fileID: 1863190597} + - 114: {fileID: 1863190596} + - 114: {fileID: 1863190595} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1863190594 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1863190593} + m_LocalRotation: {x: 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: 897580453} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1863190595 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1863190593} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &1863190596 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1863190593} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Drag halves of the screen and checkers separately +--- !u!222 &1863190597 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1863190593} +--- !u!1001 &1937636203 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: 2.52999997 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 11 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &1946070919 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: 1.52999997 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1969944222 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1969944223} + - 20: {fileID: 1969944224} + - 114: {fileID: 1969944225} + m_Layer: 0 + m_Name: Left 3D Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1969944223 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1969944222} + m_LocalRotation: {x: 0.4931347, y: 0.14301865, z: -0.082571894, w: 0.85413456} + m_LocalPosition: {x: -101.98, y: 10.05, z: -4.74} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 60, y: 19.0112, z: 0} + m_Children: [] + m_Father: {fileID: 655915741} + m_RootOrder: 0 +--- !u!20 &1969944224 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1969944222} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0.5 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!114 &1969944225 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1969944222} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Left 3D Camera + advancedProps: 0 + hitProps: 0 + hit3DObjects: 1 + hit2DObjects: 0 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 0 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!4 &2014918824 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 2057195942} +--- !u!1 &2041906755 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2041906756} + - 114: {fileID: 2041906757} + - 114: {fileID: 2041906759} + - 114: {fileID: 2041906758} + m_Layer: 0 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2041906756 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041906755} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -100, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1164346782} + m_Father: {fileID: 655915741} + m_RootOrder: 4 +--- !u!114 &2041906757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041906755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc7fd33c57d694994b0ab9f33fcdcbea, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Fullscreen @ Left 3D Camera + type: 1 + _camera: {fileID: 1969944224} +--- !u!114 &2041906758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041906755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.01 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &2041906759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041906755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 1 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 0 + projectionPlaneNormal: {x: 0, y: 0, z: 1} +--- !u!1001 &2057195942 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: -.469999999 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &2096873803 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2096873804} + m_Layer: 0 + m_Name: 2D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2096873804 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2096873803} + m_LocalRotation: {x: 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: 501236165} + - {fileID: 1060318961} + - {fileID: 529543779} + m_Father: {fileID: 655915741} + m_RootOrder: 3 +--- !u!1001 &2102638578 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.x + value: 1.50999999 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalPosition.z + value: 3.53999996 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &2127108240 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 750573663} + m_Modifications: + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.x + value: 3.52999997 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.y + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437898, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: b4fd857376bb94265b47bcf5b50f67fa, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &2134569303 stripped +Transform: + m_PrefabParentObject: {fileID: 491238, guid: bb0a05fd2c374477cba1d93212b4600c, type: 2} + m_PrefabInternal: {fileID: 588643767} diff --git a/Source/Assets/TouchScript/Examples/Multiuser/Multiuser.unity.meta b/Source/Assets/TouchScript/Examples/Multiuser/Multiuser.unity.meta new file mode 100644 index 000000000..ec0b25d69 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Multiuser/Multiuser.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 3b34d0a4b336446dd98f5f9951fe6480 +DefaultImporter: + userData: "9" diff --git a/Source/Assets/TouchScript/Examples/Multiuser/Scripts.meta b/Source/Assets/TouchScript/Examples/Multiuser/Scripts.meta new file mode 100644 index 000000000..ae664b2db --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Multiuser/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: e01a728bd0eea4e0580bfda4b46b6cf0 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Multiuser/Scripts/Logo.cs b/Source/Assets/TouchScript/Examples/Multiuser/Scripts/Logo.cs new file mode 100644 index 000000000..a7ec42026 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Multiuser/Scripts/Logo.cs @@ -0,0 +1,41 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Gestures; +using UnityEngine; +using Random = UnityEngine.Random; + +namespace TouchScript.Examples.Multiuser +{ + /// + public class Logo : MonoBehaviour + { + private static Color[] COLORS = new[] {Color.yellow, Color.red, Color.magenta, Color.green, Color.cyan, Color.blue}; + + private void OnEnable() + { + GetComponent().Tapped += tappedHandler; + } + + private void OnDisable() + { + GetComponent().Tapped -= tappedHandler; + } + + private void changeColor() + { + Color newColor = COLORS[Random.Range(0, COLORS.Length)]; + while (newColor == GetComponent().material.color) + newColor = COLORS[Random.Range(0, COLORS.Length)]; + + GetComponent().material.color = newColor; + } + + private void tappedHandler(object sender, EventArgs eventArgs) + { + changeColor(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Multiuser/Scripts/Logo.cs.meta b/Source/Assets/TouchScript/Examples/Multiuser/Scripts/Logo.cs.meta new file mode 100644 index 000000000..ff404b6c4 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Multiuser/Scripts/Logo.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e92e2b213d0040cd99ba07a7da907dd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Photos.meta b/Source/Assets/TouchScript/Examples/Photos.meta new file mode 100644 index 000000000..649f6d804 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 938fb81d8d6ee44f1a6570978d02820d +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Photos/Photos.unity b/Source/Assets/TouchScript/Examples/Photos/Photos.unity new file mode 100644 index 000000000..98d433d84 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos/Photos.unity @@ -0,0 +1,6174 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &44638783 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 44638786} + - component: {fileID: 44638785} + - component: {fileID: 44638784} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &44638784 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 44638783} + 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: 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: c9526d00e23c94f788b5b0e8833d5941, 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 &44638785 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 44638783} +--- !u!224 &44638786 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 44638783} + m_LocalRotation: {x: 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: 94606778} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 62216952} + - component: {fileID: 62216957} + - component: {fileID: 62216956} + - component: {fileID: 62216955} + - component: {fileID: 62216954} + - component: {fileID: 62216953} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: -0.2620868, y: 0.3669622, z: -0.108559854, w: -0.88592553} + m_LocalPosition: {x: 5.56, y: 4.82, z: -5.46} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 32.96, y: -45, z: 0} +--- !u!114 &62216953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Main Camera + basicEditor: 1 + advancedProps: 0 + hitProps: 0 + hit3DObjects: 0 + hit2DObjects: 0 + hitWorldSpaceUI: 1 + hitScreenSpaceUI: 1 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 100 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &94606777 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 94606778} + - component: {fileID: 94606781} + - component: {fileID: 94606780} + - component: {fileID: 94606779} + m_Layer: 0 + m_Name: Add Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &94606778 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 94606777} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 346878481} + - {fileID: 44638786} + m_Father: {fileID: 1301221420} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.6024834, y: 0.31418145} + m_AnchoredPosition: {x: 7, y: 4.5} + m_SizeDelta: {x: -19, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &94606779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 94606777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0, g: 1, b: 0.006896496, 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: 94606780} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1979221413} + m_MethodName: Add + 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 &94606780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 94606777} + 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: 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: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &94606781 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 94606777} +--- !u!1 &101996206 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 101996207} + - component: {fileID: 101996209} + - component: {fileID: 101996208} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &101996207 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 101996206} + m_LocalRotation: {x: 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: 2107589903} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.8} + 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 &101996208 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 101996206} + 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: 21300000, guid: c9526d00e23c94f788b5b0e8833d5941, 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 &101996209 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 101996206} +--- !u!1 &107321541 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 107321542} + - component: {fileID: 107321544} + - component: {fileID: 107321543} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &107321542 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 107321541} + m_LocalRotation: {x: 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: 411870819} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &107321543 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 107321541} + 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: 0, b: 0, 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: c9526d00e23c94f788b5b0e8833d5941, 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 &107321544 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 107321541} +--- !u!1 &142216715 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 142216716} + - component: {fileID: 142216718} + - component: {fileID: 142216717} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &142216716 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 142216715} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -59} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1932435999} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 74, y: -57} + m_SizeDelta: {x: -312.76193, y: 153.95947} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &142216717 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 142216715} + 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, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 80 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: World Space Canvas +--- !u!222 &142216718 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 142216715} +--- !u!1 &187227221 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 187227222} + - component: {fileID: 187227225} + - component: {fileID: 187227224} + - component: {fileID: 187227223} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &187227222 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 187227221} + m_LocalRotation: {x: 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: 411870819} + - {fileID: 1406281477} + - {fileID: 1101956163} + - {fileID: 701351979} + m_Father: {fileID: 2107589903} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.8} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0.5} + m_SizeDelta: {x: 0, y: -1} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &187227223 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 187227221} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 15 + m_Right: 15 + m_Top: 15 + m_Bottom: 15 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!114 &187227224 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 187227221} + 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: 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: 101a2db3cfc4b43ef985335f970658ab, type: 3} + m_Type: 2 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &187227225 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 187227221} +--- !u!1 &204253027 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 204253028} + - component: {fileID: 204253031} + - component: {fileID: 204253030} + - component: {fileID: 204253029} + m_Layer: 0 + m_Name: Camera Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &204253028 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 204253027} + 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_Children: + - {fileID: 1236964526} + m_Father: {fileID: 930800601} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &204253029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 204253027} + 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 &204253030 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 204253027} + 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!223 &204253031 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 204253027} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 62216957} + m_PlaneDistance: 3 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 1 + m_TargetDisplay: 0 +--- !u!1 &231102984 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 231102985} + - component: {fileID: 231102986} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &231102985 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 231102984} + m_LocalRotation: {x: 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: 620448983} + - {fileID: 1169177132} + - {fileID: 647493035} + m_Father: {fileID: 660229293} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &231102986 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 231102984} + 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: 0 + m_Spacing: -10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!1 &238072896 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 238072899} + - component: {fileID: 238072898} + - component: {fileID: 238072897} + - component: {fileID: 238072905} + - component: {fileID: 238072901} + - component: {fileID: 238072900} + - component: {fileID: 238072902} + m_Layer: 0 + m_Name: Image 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &238072897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 238072896} + 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: 97bf9d574de664236942f6c91db57ef6, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &238072898 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 238072896} +--- !u!224 &238072899 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 238072896} + m_LocalRotation: {x: 0.000000041385746, y: 0.000000010372778, z: 0.17927851, w: 0.9837984} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1593048785} + - {fileID: 994844643} + m_Father: {fileID: 1979221409} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 20.6555} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -161, y: 123.99954} + m_SizeDelta: {x: 300, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &238072900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 238072896} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 1 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.1 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &238072901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 238072896} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 7 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &238072902 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 238072896} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &238072905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 238072896} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8d231b90191d4ffcae71a475e432b7d, type: 3} + m_Name: + m_EditorClassIdentifier: + Delay: 0 +--- !u!1 &281947295 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 281947296} + - component: {fileID: 281947298} + - component: {fileID: 281947297} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &281947296 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 281947295} + m_LocalRotation: {x: 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: 647493035} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &281947297 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 281947295} + 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: 21300000, guid: 26489b03725f747f998c39661c2583b5, 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 &281947298 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 281947295} +--- !u!1 &290456372 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 290456373} + - component: {fileID: 290456375} + - component: {fileID: 290456374} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &290456373 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 290456372} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 25.4} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1236964526} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 3.855} + m_SizeDelta: {x: 0, y: 7.71} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &290456374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 290456372} + 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: 21300000, guid: c9526d00e23c94f788b5b0e8833d5941, 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 &290456375 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 290456372} +--- !u!1 &327443542 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 327443543} + - component: {fileID: 327443545} + - component: {fileID: 327443544} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &327443543 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 327443542} + m_LocalRotation: {x: 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: 1169177132} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &327443544 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 327443542} + 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: 21300000, guid: 26489b03725f747f998c39661c2583b5, 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 &327443545 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 327443542} +--- !u!1 &346878480 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 346878481} + - component: {fileID: 346878483} + - component: {fileID: 346878482} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &346878481 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 346878480} + m_LocalRotation: {x: 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: 94606778} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.08590757, y: 0.21797578} + m_AnchorMax: {x: 0.91627955, y: 0.79047644} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &346878482 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 346878480} + 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, g: 0, b: 0, 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: 1 + m_BestFit: 1 + 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: ADD +--- !u!222 &346878483 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 346878480} +--- !u!1 &411870814 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 411870819} + - component: {fileID: 411870818} + - component: {fileID: 411870817} + - component: {fileID: 411870816} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &411870816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411870814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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: 0, a: 1} + m_PressedColor: {r: 1, g: 0, b: 0, 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: 411870817} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1979221412} + m_MethodName: Set + m_Mode: 3 + 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 &411870817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411870814} + 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: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &411870818 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411870814} +--- !u!224 &411870819 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411870814} + m_LocalRotation: {x: 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: 107321542} + - {fileID: 2077422342} + m_Father: {fileID: 187227222} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &418595744 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 418595745} + - component: {fileID: 418595748} + - component: {fileID: 418595747} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &418595745 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 418595744} + 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_Children: + - {fileID: 660229293} + - {fileID: 1414219394} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &418595747 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 418595744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &418595748 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 418595744} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &449324826 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 449324827} + - component: {fileID: 449324833} + - component: {fileID: 449324832} + - component: {fileID: 449324828} + - component: {fileID: 449324831} + - component: {fileID: 449324830} + - component: {fileID: 449324829} + m_Layer: 0 + m_Name: Image 6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &449324827 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 449324826} + m_LocalRotation: {x: 0, y: 0, z: 0.24805124, w: 0.96874696} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1674922492} + - {fileID: 1402680836} + m_Father: {fileID: 1979221409} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 250, y: 69} + m_SizeDelta: {x: 300, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &449324828 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 449324826} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8d231b90191d4ffcae71a475e432b7d, type: 3} + m_Name: + m_EditorClassIdentifier: + Delay: 0 +--- !u!114 &449324829 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 449324826} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &449324830 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 449324826} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.1 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &449324831 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 449324826} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 7 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &449324832 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 449324826} + 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: 1d22a1f67974a45a1bdfb0503b81ec57, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &449324833 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 449324826} +--- !u!1 &494057710 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 494057711} + - component: {fileID: 494057713} + - component: {fileID: 494057712} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &494057711 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 494057710} + m_LocalRotation: {x: 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: 620448983} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &494057712 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 494057710} + 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: 21300000, guid: 71e59d6fec0b04b60acf6cad4b860a39, 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 &494057713 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 494057710} +--- !u!1 &536919387 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 536919388} + - component: {fileID: 536919394} + - component: {fileID: 536919393} + - component: {fileID: 536919389} + - component: {fileID: 536919392} + - component: {fileID: 536919391} + - component: {fileID: 536919390} + m_Layer: 0 + m_Name: Image 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &536919388 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 536919387} + m_LocalRotation: {x: 0, y: 0, z: 0.24805124, w: 0.96874696} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1065855870} + - {fileID: 1772489001} + m_Father: {fileID: 1979221409} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 28.7244} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 223, y: 293} + m_SizeDelta: {x: 300, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &536919389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 536919387} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8d231b90191d4ffcae71a475e432b7d, type: 3} + m_Name: + m_EditorClassIdentifier: + Delay: 0 +--- !u!114 &536919390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 536919387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &536919391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 536919387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.1 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &536919392 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 536919387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 7 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &536919393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 536919387} + 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: 57a936b69d896483dab1f9afe96e8ff9, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &536919394 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 536919387} +--- !u!1001 &543251036 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[0] + value: + objectReference: {fileID: 62216953} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &551049734 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 551049735} + - component: {fileID: 551049738} + - component: {fileID: 551049737} + - component: {fileID: 551049736} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &551049735 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 551049734} + m_LocalRotation: {x: 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: 647493035} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &551049736 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 551049734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &551049737 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 551049734} + 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: 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: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Tap colored buttons + + to change color' +--- !u!222 &551049738 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 551049734} +--- !u!1 &581803646 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 581803647} + - component: {fileID: 581803649} + - component: {fileID: 581803648} + m_Layer: 0 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &581803647 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 581803646} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 886654112} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &581803648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 581803646} + 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: 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: c9526d00e23c94f788b5b0e8833d5941, 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 &581803649 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 581803646} +--- !u!1 &585113473 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 585113474} + - component: {fileID: 585113476} + - component: {fileID: 585113475} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &585113474 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 585113473} + m_LocalRotation: {x: 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: 701351979} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &585113475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 585113473} + 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: 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: 21300000, guid: c9526d00e23c94f788b5b0e8833d5941, 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 &585113476 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 585113473} +--- !u!1 &620448982 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 620448983} + - component: {fileID: 620448984} + m_Layer: 5 + m_Name: Move + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &620448983 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 620448982} + m_LocalRotation: {x: 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: 494057711} + - {fileID: 899875349} + m_Father: {fileID: 231102985} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &620448984 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 620448982} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &634725411 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 634725412} + - component: {fileID: 634725414} + - component: {fileID: 634725413} + m_Layer: 0 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &634725412 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 634725411} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1485721903} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &634725413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 634725411} + 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: 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: c9526d00e23c94f788b5b0e8833d5941, 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 &634725414 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 634725411} +--- !u!1 &647493034 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 647493035} + - component: {fileID: 647493036} + m_Layer: 5 + m_Name: Color + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &647493035 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 647493034} + m_LocalRotation: {x: 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: 281947296} + - {fileID: 551049735} + m_Father: {fileID: 231102985} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &647493036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 647493034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &651643060 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 651643064} + - component: {fileID: 651643063} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &651643063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 651643060} + 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: 5 +--- !u!4 &651643064 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 651643060} + m_LocalRotation: {x: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &660229292 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 660229293} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &660229293 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 660229292} + m_LocalRotation: {x: 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: 231102985} + m_Father: {fileID: 418595745} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &663465964 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 663465965} + - component: {fileID: 663465967} + - component: {fileID: 663465966} + m_Layer: 0 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &663465965 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 663465964} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1979821161} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &663465966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 663465964} + 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: 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: c9526d00e23c94f788b5b0e8833d5941, 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 &663465967 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 663465964} +--- !u!1 &689392536 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 689392537} + - component: {fileID: 689392539} + - component: {fileID: 689392538} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &689392537 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 689392536} + m_LocalRotation: {x: 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: 1406281477} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &689392538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 689392536} + 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: 1, b: 0, 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: c9526d00e23c94f788b5b0e8833d5941, 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 &689392539 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 689392536} +--- !u!1 &701351978 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 701351979} + - component: {fileID: 701351983} + - component: {fileID: 701351982} + - component: {fileID: 701351981} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &701351979 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 701351978} + m_LocalRotation: {x: 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: 585113474} + - {fileID: 1615394527} + m_Father: {fileID: 187227222} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &701351981 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 701351978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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: 0, a: 1} + m_PressedColor: {r: 0, 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: 701351982} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1979221412} + m_MethodName: Set + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 3 + 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 &701351982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 701351978} + 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: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &701351983 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 701351978} +--- !u!1 &886654111 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 886654112} + - component: {fileID: 886654118} + - component: {fileID: 886654117} + - component: {fileID: 886654120} + - component: {fileID: 886654115} + - component: {fileID: 886654114} + - component: {fileID: 886654113} + m_Layer: 0 + m_Name: Image 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &886654112 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886654111} + m_LocalRotation: {x: 0.00000003982022, y: 0.000000006836789, z: 0.24805123, w: 0.96874696} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 581803647} + - {fileID: 1423800608} + m_Father: {fileID: 1979221409} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 218, y: -143.99887} + m_SizeDelta: {x: 300, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &886654113 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886654111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &886654114 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886654111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 1 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.1 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &886654115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886654111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 7 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &886654117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886654111} + 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: 3877e55a8f20d4ed281d3011c791d7a0, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &886654118 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886654111} +--- !u!114 &886654120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 886654111} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8d231b90191d4ffcae71a475e432b7d, type: 3} + m_Name: + m_EditorClassIdentifier: + Delay: 0 +--- !u!1 &894414301 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 894414302} + - component: {fileID: 894414306} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &894414302 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 894414301} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 9.32, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1292123036} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &894414306 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 894414301} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 8400000, guid: 1b8be3f2cf5594c6ea36e9a3843139dc, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &899875348 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 899875349} + - component: {fileID: 899875352} + - component: {fileID: 899875351} + - component: {fileID: 899875350} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &899875349 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 899875348} + m_LocalRotation: {x: 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: 620448983} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &899875350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 899875348} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &899875351 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 899875348} + 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: 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: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Move, scale and \nrotate photos" +--- !u!222 &899875352 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 899875348} +--- !u!1 &930800600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 930800601} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &930800601 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_LocalRotation: {x: 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: 1292123036} + - {fileID: 2135305920} + - {fileID: 62216952} + - {fileID: 204253028} + - {fileID: 2107589903} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &982847339 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 982847340} + - component: {fileID: 982847342} + - component: {fileID: 982847341} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &982847340 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 982847339} + m_LocalRotation: {x: 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: 1101956163} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &982847341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 982847339} + 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: 0, 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: 21300000, guid: c9526d00e23c94f788b5b0e8833d5941, 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 &982847342 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 982847339} +--- !u!1 &994844642 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 994844643} + - component: {fileID: 994844647} + - component: {fileID: 994844646} + - component: {fileID: 994844645} + m_Layer: 0 + m_Name: Close + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &994844643 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 994844642} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 238072899} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 18, y: -18} + m_SizeDelta: {x: 80, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &994844645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 994844642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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: 0.6691177, b: 0.6691177, 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: 994844646} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 238072905} + m_MethodName: set_enabled + 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.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &994844646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 994844642} + 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: afc4b16a1177b45a09ce4e236152d63c, 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 &994844647 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 994844642} +--- !u!1 &1027187497 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1027187498} + - component: {fileID: 1027187500} + - component: {fileID: 1027187499} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1027187498 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1027187497} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.000027779} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1236964526} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.30900002, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -0.13401794, y: -21.09999} + m_SizeDelta: {x: -0.26796, y: 29.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1027187499 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1027187497} + 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, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 100 + m_Alignment: 2 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Camera Canvas +--- !u!222 &1027187500 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1027187497} +--- !u!1 &1056464758 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1056464759} + - component: {fileID: 1056464761} + - component: {fileID: 1056464760} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1056464759 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1056464758} + m_LocalRotation: {x: 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: 2107589903} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.69750005, y: 0.69600004} + m_AnchorMax: {x: 1, y: 0.8} + m_AnchoredPosition: {x: 1.1000061, y: -6} + m_SizeDelta: {x: -30.2, y: -12} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1056464760 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1056464758} + 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, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 5 + m_MaxSize: 40 + m_Alignment: 2 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Screen Space Canvas +--- !u!222 &1056464761 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1056464758} +--- !u!1 &1065855869 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1065855870} + - component: {fileID: 1065855872} + - component: {fileID: 1065855871} + m_Layer: 0 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1065855870 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1065855869} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 536919388} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1065855871 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1065855869} + 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: 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: c9526d00e23c94f788b5b0e8833d5941, 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 &1065855872 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1065855869} +--- !u!1 &1101956162 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1101956163} + - component: {fileID: 1101956167} + - component: {fileID: 1101956166} + - component: {fileID: 1101956165} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1101956163 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1101956162} + m_LocalRotation: {x: 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: 982847340} + - {fileID: 1820795547} + m_Father: {fileID: 187227222} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1101956165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1101956162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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: 0, a: 1} + m_PressedColor: {r: 1, g: 0, 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: 1101956166} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1979221412} + m_MethodName: Set + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 2 + 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 &1101956166 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1101956162} + 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: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1101956167 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1101956162} +--- !u!1 &1169177131 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1169177132} + - component: {fileID: 1169177133} + m_Layer: 5 + m_Name: Add + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1169177132 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1169177131} + m_LocalRotation: {x: 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: 327443543} + - {fileID: 1430826382} + m_Father: {fileID: 231102985} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1169177133 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1169177131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1236964525 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1236964526} + - component: {fileID: 1236964528} + - component: {fileID: 1236964527} + m_Layer: 0 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1236964526 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1236964525} + m_LocalRotation: {x: 0.040250417, y: 0.38025388, z: -0.00021144397, w: 0.9240059} + m_LocalPosition: {x: 0, y: 0, z: -12} + m_LocalScale: {x: 0.6, y: 0.6, z: 0.6} + m_Children: + - {fileID: 1027187498} + - {fileID: 290456373} + - {fileID: 1477172502} + - {fileID: 1301221420} + m_Father: {fileID: 204253028} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.62780094, y: 0} + m_AnchorMax: {x: 1, y: 0.6333225} + m_AnchoredPosition: {x: -8, y: -10} + m_SizeDelta: {x: -36, y: -60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1236964527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1236964525} + 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: 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!222 &1236964528 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1236964525} +--- !u!1 &1276931408 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1276931409} + - component: {fileID: 1276931411} + - component: {fileID: 1276931410} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1276931409 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1276931408} + m_LocalRotation: {x: 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: 1406281477} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1276931410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1276931408} + 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, g: 0, b: 0, 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: 34 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 34 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: GREEN +--- !u!222 &1276931411 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1276931408} +--- !u!1 &1292123035 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1292123036} + - component: {fileID: 1292123039} + - component: {fileID: 1292123038} + - component: {fileID: 1292123037} + m_Layer: 0 + m_Name: World Space Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1292123036 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1292123035} + m_LocalRotation: {x: 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: 1932435999} + - {fileID: 894414302} + m_Father: {fileID: 930800601} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1292123037 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1292123035} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &1292123038 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1292123035} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1292123039 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1292123035} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1301221419 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1301221420} + - component: {fileID: 1301221422} + - component: {fileID: 1301221421} + m_Layer: 0 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1301221420 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1301221419} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.000007119311} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 94606778} + m_Father: {fileID: 1236964526} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1301221421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1301221419} + 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: 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: c9526d00e23c94f788b5b0e8833d5941, 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 &1301221422 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1301221419} +--- !u!1 &1402680835 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1402680836} + - component: {fileID: 1402680840} + - component: {fileID: 1402680839} + - component: {fileID: 1402680838} + m_Layer: 0 + m_Name: Close + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1402680836 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402680835} + m_LocalRotation: {x: 0.0000006631017, y: -0.00000014901161, z: -0.07035693, w: 0.9975219} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 449324827} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 18, y: -18} + m_SizeDelta: {x: 80, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1402680838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402680835} + 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: 0.6666667, b: 0.6666667, 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: 1402680839} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 449324828} + m_MethodName: set_enabled + 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.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1402680839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402680835} + 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: afc4b16a1177b45a09ce4e236152d63c, 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 &1402680840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1402680835} +--- !u!1 &1406281476 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1406281477} + - component: {fileID: 1406281481} + - component: {fileID: 1406281480} + - component: {fileID: 1406281479} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1406281477 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1406281476} + m_LocalRotation: {x: 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: 689392537} + - {fileID: 1276931409} + m_Father: {fileID: 187227222} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1406281479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1406281476} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + 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: 0, a: 1} + m_PressedColor: {r: 0, g: 1, b: 0, 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: 1406281480} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1979221412} + m_MethodName: Set + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 1 + 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 &1406281480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1406281476} + 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: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1406281481 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1406281476} +--- !u!1 &1414219390 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1414219394} + - component: {fileID: 1414219393} + - component: {fileID: 1414219392} + - component: {fileID: 1414219391} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1414219391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1414219390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &1414219392 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1414219390} + 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: 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: 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: "Photos\n\nThis is an example of using UI Layer \nto interact with + UI elements." +--- !u!222 &1414219393 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1414219390} +--- !u!224 &1414219394 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1414219390} + m_LocalRotation: {x: 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: 418595745} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 156, y: 48.300003} + m_SizeDelta: {x: 276, y: 68.5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1423800607 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1423800608} + - component: {fileID: 1423800612} + - component: {fileID: 1423800611} + - component: {fileID: 1423800610} + m_Layer: 0 + m_Name: Close + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1423800608 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1423800607} + m_LocalRotation: {x: 0.0000006631017, y: -0.00000014901161, z: -0.07035693, w: 0.9975219} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 886654112} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 18, y: -18} + m_SizeDelta: {x: 80, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1423800610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1423800607} + 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: 0.6666667, b: 0.6666667, 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: 1423800611} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 886654120} + m_MethodName: set_enabled + 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.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1423800611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1423800607} + 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: afc4b16a1177b45a09ce4e236152d63c, 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 &1423800612 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1423800607} +--- !u!1 &1430826381 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1430826382} + - component: {fileID: 1430826385} + - component: {fileID: 1430826384} + - component: {fileID: 1430826383} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1430826382 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1430826381} + m_LocalRotation: {x: 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: 1169177132} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1430826383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1430826381} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &1430826384 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1430826381} + 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: 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: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Tap ADD button + + to add photos' +--- !u!222 &1430826385 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1430826381} +--- !u!1 &1477172501 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1477172502} + - component: {fileID: 1477172504} + - component: {fileID: 1477172503} + m_Layer: 0 + m_Name: RawImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1477172502 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1477172501} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1.0000001, z: 1} + m_Children: [] + m_Father: {fileID: 1236964526} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000019073486, y: 0.00004196167} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1477172503 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1477172501} + 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: 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_Texture: {fileID: 8400000, guid: 1b8be3f2cf5594c6ea36e9a3843139dc, type: 2} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1477172504 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1477172501} +--- !u!1 &1485721902 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1485721903} + - component: {fileID: 1485721909} + - component: {fileID: 1485721908} + - component: {fileID: 1485721907} + - component: {fileID: 1485721906} + - component: {fileID: 1485721905} + - component: {fileID: 1485721904} + m_Layer: 0 + m_Name: Image 5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1485721903 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1485721902} + m_LocalRotation: {x: 0, y: 0, z: 0.24805124, w: 0.96874696} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 634725412} + - {fileID: 2041974587} + m_Father: {fileID: 1979221409} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 4, y: 14} + m_SizeDelta: {x: 300, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1485721904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1485721902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &1485721905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1485721902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.1 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &1485721906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1485721902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 7 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &1485721907 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1485721902} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8d231b90191d4ffcae71a475e432b7d, type: 3} + m_Name: + m_EditorClassIdentifier: + Delay: 0 +--- !u!114 &1485721908 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1485721902} + 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: 7c625bf6ca9a9407bb4d5cdf08367926, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1485721909 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1485721902} +--- !u!1 &1593048784 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1593048785} + - component: {fileID: 1593048787} + - component: {fileID: 1593048786} + m_Layer: 0 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1593048785 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1593048784} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 238072899} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1593048786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1593048784} + 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: 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: c9526d00e23c94f788b5b0e8833d5941, 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 &1593048787 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1593048784} +--- !u!1 &1615394526 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1615394527} + - component: {fileID: 1615394529} + - component: {fileID: 1615394528} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1615394527 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1615394526} + m_LocalRotation: {x: 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: 701351979} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1615394528 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1615394526} + 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, g: 0, b: 0, 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: 34 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 34 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: CYAN +--- !u!222 &1615394529 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1615394526} +--- !u!1 &1674922491 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1674922492} + - component: {fileID: 1674922494} + - component: {fileID: 1674922493} + m_Layer: 0 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1674922492 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1674922491} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 449324827} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1674922493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1674922491} + 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: 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: c9526d00e23c94f788b5b0e8833d5941, 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 &1674922494 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1674922491} +--- !u!1001 &1772227325 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1772489000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1772489001} + - component: {fileID: 1772489005} + - component: {fileID: 1772489004} + - component: {fileID: 1772489003} + m_Layer: 0 + m_Name: Close + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1772489001 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1772489000} + m_LocalRotation: {x: 0.0000006631017, y: -0.00000014901161, z: -0.07035693, w: 0.9975219} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 536919388} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 18, y: -18} + m_SizeDelta: {x: 80, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1772489003 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1772489000} + 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: 0.6666667, b: 0.6666667, 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: 1772489004} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 536919389} + m_MethodName: set_enabled + 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.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1772489004 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1772489000} + 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: afc4b16a1177b45a09ce4e236152d63c, 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 &1772489005 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1772489000} +--- !u!1 &1820795546 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1820795547} + - component: {fileID: 1820795549} + - component: {fileID: 1820795548} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1820795547 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1820795546} + m_LocalRotation: {x: 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: 1101956163} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1820795548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1820795546} + 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, g: 0, b: 0, 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: 34 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 34 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: PINK +--- !u!222 &1820795549 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1820795546} +--- !u!1 &1932435998 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1932435999} + - component: {fileID: 1932436002} + - component: {fileID: 1932436001} + - component: {fileID: 1932436000} + m_Layer: 0 + m_Name: World Space Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1932435999 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1932435998} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_Children: + - {fileID: 2015117398} + - {fileID: 1979221409} + - {fileID: 142216716} + m_Father: {fileID: 1292123036} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.01001} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1932436000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1932435998} + 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 &1932436001 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1932435998} + 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!223 &1932436002 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1932435998} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 62216957} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1979221408 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1979221409} + - component: {fileID: 1979221411} + - component: {fileID: 1979221410} + - component: {fileID: 1979221412} + - component: {fileID: 1979221413} + m_Layer: 0 + m_Name: Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1979221409 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979221408} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -25} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 238072899} + - {fileID: 886654112} + - {fileID: 1979821161} + - {fileID: 536919388} + - {fileID: 1485721903} + - {fileID: 449324827} + m_Father: {fileID: 1932435999} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.000002682209} + m_SizeDelta: {x: -40, y: -40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1979221410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979221408} + 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: 0, b: 0, 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: c9526d00e23c94f788b5b0e8833d5941, 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 &1979221411 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979221408} +--- !u!114 &1979221412 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979221408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: be7c0db07fbda4873ac979c5b9301206, type: 3} + m_Name: + m_EditorClassIdentifier: + Colors: + - {r: 1, g: 0, b: 0, a: 1} + - {r: 0, g: 1, b: 0, a: 1} + - {r: 1, g: 0, b: 1, a: 1} + - {r: 0, g: 1, b: 1, a: 1} +--- !u!114 &1979221413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979221408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b1369f3c70c84786b656739dc52e9b3, type: 3} + m_Name: + m_EditorClassIdentifier: + Width: 400 + Height: 500 +--- !u!1 &1979821160 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1979821161} + - component: {fileID: 1979821167} + - component: {fileID: 1979821166} + - component: {fileID: 1979821165} + - component: {fileID: 1979821164} + - component: {fileID: 1979821163} + - component: {fileID: 1979821162} + m_Layer: 0 + m_Name: Image 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1979821161 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979821160} + m_LocalRotation: {x: 0, y: 0, z: 0.24805124, w: 0.96874696} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 663465965} + - {fileID: 2082518918} + m_Father: {fileID: 1979221409} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -141, y: -231} + m_SizeDelta: {x: 300, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1979821162 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979821160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &1979821163 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979821160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 1 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.1 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &1979821164 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979821160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 7 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &1979821165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979821160} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8d231b90191d4ffcae71a475e432b7d, type: 3} + m_Name: + m_EditorClassIdentifier: + Delay: 0 +--- !u!114 &1979821166 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979821160} + 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: 4289a9689f19344b8a9c1fb0d65361ee, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1979821167 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1979821160} +--- !u!1 &2015117397 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2015117398} + - component: {fileID: 2015117400} + - component: {fileID: 2015117399} + m_Layer: 0 + m_Name: Checkerboard + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2015117398 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2015117397} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -25} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1932435999} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -40, y: -40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2015117399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2015117397} + 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: 0.09411765} + 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: 101a2db3cfc4b43ef985335f970658ab, type: 3} + m_Type: 2 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &2015117400 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2015117397} +--- !u!1 &2041974586 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2041974587} + - component: {fileID: 2041974591} + - component: {fileID: 2041974590} + - component: {fileID: 2041974589} + m_Layer: 0 + m_Name: Close + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2041974587 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041974586} + m_LocalRotation: {x: 0.0000006631017, y: -0.00000014901161, z: -0.07035693, w: 0.9975219} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1485721903} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 18, y: -18} + m_SizeDelta: {x: 80, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2041974589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041974586} + 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: 0.6666667, b: 0.6666667, 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: 2041974590} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1485721907} + m_MethodName: set_enabled + 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.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2041974590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041974586} + 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: afc4b16a1177b45a09ce4e236152d63c, 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 &2041974591 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2041974586} +--- !u!1 &2077422341 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2077422342} + - component: {fileID: 2077422344} + - component: {fileID: 2077422343} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2077422342 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2077422341} + m_LocalRotation: {x: 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: 411870819} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2077422343 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2077422341} + 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, g: 0, b: 0, 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: 34 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 34 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: RED +--- !u!222 &2077422344 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2077422341} +--- !u!1 &2082518917 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2082518918} + - component: {fileID: 2082518922} + - component: {fileID: 2082518921} + - component: {fileID: 2082518920} + m_Layer: 0 + m_Name: Close + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2082518918 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2082518917} + m_LocalRotation: {x: 0.0000006631017, y: -0.00000014901161, z: -0.07035693, w: 0.9975219} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1979821161} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 18, y: -18} + m_SizeDelta: {x: 80, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2082518920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2082518917} + 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: 0.6666667, b: 0.6666667, 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: 2082518921} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1979821165} + m_MethodName: set_enabled + 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.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2082518921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2082518917} + 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: afc4b16a1177b45a09ce4e236152d63c, 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 &2082518922 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2082518917} +--- !u!1 &2107589902 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2107589903} + - component: {fileID: 2107589906} + - component: {fileID: 2107589905} + - component: {fileID: 2107589904} + m_Layer: 5 + m_Name: ScreenSpace Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2107589903 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2107589902} + 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_Children: + - {fileID: 101996207} + - {fileID: 187227222} + - {fileID: 1056464759} + m_Father: {fileID: 930800601} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &2107589904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2107589902} + 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 &2107589905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2107589902} + 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!223 &2107589906 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2107589902} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &2135305919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2135305920} + - component: {fileID: 2135305921} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2135305920 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_LocalRotation: {x: 0.4222682, y: -0.4847204, z: -0.017199006, w: 0.7657936} + m_LocalPosition: {x: 6.1004148, y: 15.540384, z: -20.566225} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!108 &2135305921 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1.3 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 0.2 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 diff --git a/Source/Assets/TouchScript/Examples/Photos/Photos.unity.meta b/Source/Assets/TouchScript/Examples/Photos/Photos.unity.meta new file mode 100644 index 000000000..6499da86b --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos/Photos.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: e43bdd4f3bf144b74b4726208781dd66 +DefaultImporter: + userData: "4" diff --git a/Source/Assets/TouchScript/Examples/Photos/RenderTexture.renderTexture b/Source/Assets/TouchScript/Examples/Photos/RenderTexture.renderTexture new file mode 100644 index 000000000..28d90a6fd --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos/RenderTexture.renderTexture @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!84 &8400000 +RenderTexture: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: RenderTexture + m_Width: 256 + m_Height: 256 + m_AntiAliasing: 4 + m_DepthFormat: 2 + m_ColorFormat: 0 + m_MipMap: 0 + m_GenerateMips: 1 + m_SRGB: 0 + m_TextureSettings: + m_FilterMode: 1 + m_Aniso: 0 + m_MipBias: 0 + m_WrapMode: 1 diff --git a/Source/Assets/TouchScript/Examples/Photos/RenderTexture.renderTexture.meta b/Source/Assets/TouchScript/Examples/Photos/RenderTexture.renderTexture.meta new file mode 100644 index 000000000..41a6b6af4 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos/RenderTexture.renderTexture.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 1b8be3f2cf5594c6ea36e9a3843139dc +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Photos/Scripts.meta b/Source/Assets/TouchScript/Examples/Photos/Scripts.meta new file mode 100644 index 000000000..cd4ee4b58 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 98a2696d2a3cc402086de811ce14a60d +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Photos/Scripts/Container.cs b/Source/Assets/TouchScript/Examples/Photos/Scripts/Container.cs new file mode 100644 index 000000000..df0c095cc --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos/Scripts/Container.cs @@ -0,0 +1,50 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Gestures; + +namespace TouchScript.Examples.Photos +{ + /// + public class Container : MonoBehaviour + { + public int Width = 500; + public int Height = 500; + + public void Add() + { + var toClone = transform.GetChild(Random.Range(0, transform.childCount)); + var clone = Instantiate(toClone.gameObject) as GameObject; + clone.transform.SetParent(transform); + clone.transform.localScale = Vector3.one; + clone.transform.localRotation = Quaternion.Euler(0f, 0f, Random.Range(0f, 360f)); + clone.transform.localPosition = new Vector3(Random.Range(-Width / 2, Width / 2), + Random.Range(-Height / 2, Height / 2), toClone.localPosition.z); + initChild(clone.transform); + } + + private void Start() + { + var count = transform.childCount; + for (var i = 0; i < count; i++) + { + var child = transform.GetChild(i); + initChild(child); + } + } + + private void initChild(Transform child) + { + var pressGesture = child.GetComponent(); + if (pressGesture != null) pressGesture.Pressed += pressedHandler; + } + + private void pressedHandler(object sender, System.EventArgs e) + { + var child = (sender as Gesture).transform; + child.SetAsLastSibling(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Photos/Scripts/Container.cs.meta b/Source/Assets/TouchScript/Examples/Photos/Scripts/Container.cs.meta new file mode 100644 index 000000000..658533a48 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos/Scripts/Container.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b1369f3c70c84786b656739dc52e9b3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Photos/Scripts/SetColor.cs b/Source/Assets/TouchScript/Examples/Photos/Scripts/SetColor.cs new file mode 100644 index 000000000..e37fd5bbe --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos/Scripts/SetColor.cs @@ -0,0 +1,21 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using UnityEngine.UI; +using System.Collections.Generic; + +namespace TouchScript.Examples.UI +{ + /// + public class SetColor : MonoBehaviour + { + public List Colors; + + public void Set(int id) + { + GetComponent().color = Colors[id]; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Photos/Scripts/SetColor.cs.meta b/Source/Assets/TouchScript/Examples/Photos/Scripts/SetColor.cs.meta new file mode 100644 index 000000000..1f0da6e1d --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Photos/Scripts/SetColor.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: be7c0db07fbda4873ac979c5b9301206 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Portal.meta b/Source/Assets/TouchScript/Examples/Portal.meta new file mode 100644 index 000000000..27919a0b3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c1b7698eb5ecd44c1a7ec6c90a68a207 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Portal/Materials.meta b/Source/Assets/TouchScript/Examples/Portal/Materials.meta new file mode 100644 index 000000000..726c3aba8 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Materials.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 099a6fc8ea2584622971a8d1098238c6 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Portal/Materials/Vortex.mat b/Source/Assets/TouchScript/Examples/Portal/Materials/Vortex.mat new file mode 100644 index 000000000..1332aff84 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Materials/Vortex.mat @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Vortex + m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: db8fa2b50ab1244fd8d75ed3ee8c0ee5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _InvFade + second: .00999999978 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _TintColor + second: {r: 1, g: 1, b: 1, a: .345098048} diff --git a/Source/Assets/TouchScript/Examples/Portal/Materials/Vortex.mat.meta b/Source/Assets/TouchScript/Examples/Portal/Materials/Vortex.mat.meta new file mode 100644 index 000000000..9a1ce57b9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Materials/Vortex.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 2105a6ce9f7624161ba30eefc0d839f3 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Portal/Portal.unity b/Source/Assets/TouchScript/Examples/Portal/Portal.unity new file mode 100644 index 000000000..c07cc2bdb --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Portal.unity @@ -0,0 +1,2089 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 62216952} + - component: {fileID: 62216957} + - component: {fileID: 62216956} + - component: {fileID: 62216955} + - component: {fileID: 62216954} + - component: {fileID: 62216953} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 498618157} + m_Father: {fileID: 930800601} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 89.980194, y: 0, z: 0} +--- !u!114 &62216953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Camera + basicEditor: 1 + advancedProps: 0 + hitProps: 0 + hit3DObjects: 1 + hit2DObjects: 0 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 1 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 40 + field of view: 30 + orthographic: 1 + orthographic size: 10 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &161419863 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 161419864} + - component: {fileID: 161419866} + - component: {fileID: 161419865} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &161419864 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 161419863} + m_LocalRotation: {x: 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: 1005780168} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &161419865 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 161419863} + 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: 26489b03725f747f998c39661c2583b5, 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 &161419866 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 161419863} +--- !u!1 &250857269 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 250857271} + - component: {fileID: 250857270} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &250857270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + 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: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!224 &250857271 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + m_LocalRotation: {x: 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: 1005780168} + - {fileID: 1679844150} + m_Father: {fileID: 1981142013} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &498618156 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 498618157} + m_Layer: 0 + m_Name: Stuff + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &498618157 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 498618156} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.15, y: 0, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1283428183} + - {fileID: 1158035086} + m_Father: {fileID: 62216952} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &543251036 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[0] + value: + objectReference: {fileID: 62216953} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &587840591 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 587840592} + - component: {fileID: 587840596} + - component: {fileID: 587840595} + - component: {fileID: 587840594} + - component: {fileID: 587840593} + m_Layer: 5 + m_Name: Spawner 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &587840592 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587840591} + m_LocalRotation: {x: -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: 782750265} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 282, y: -120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &587840593 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587840591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 712d87efeee01774088f382a8449caab, type: 3} + m_Name: + m_EditorClassIdentifier: + Prefab: {fileID: 4252442136654676, guid: bff70878d8bdbdd409be0cca1fc3cfce, type: 2} + Position: {fileID: 699119955} +--- !u!114 &587840594 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587840591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &587840595 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587840591} + 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: 533b9df4691d947d9921a0053b5ce231, 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 &587840596 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587840591} +--- !u!1 &699119954 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 699119955} + m_Layer: 0 + m_Name: Planet 2 Position + m_TagString: Untagged + m_Icon: {fileID: -964228994112308473, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &699119955 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 699119954} + m_LocalRotation: {x: -0.00000005960465, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 9.3, y: -4.8, z: 0.3} + m_LocalScale: {x: 5, y: 4.999998, z: 4.999998} + m_Children: [] + m_Father: {fileID: 1158035086} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &718339113 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 718339114} + m_Layer: 0 + m_Name: Planet 4 Position + m_TagString: Untagged + m_Icon: {fileID: -964228994112308473, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &718339114 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 718339113} + m_LocalRotation: {x: -0.00000005960465, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -12, y: 0.7, z: 0.3} + m_LocalScale: {x: 5, y: 4.999998, z: 4.999998} + m_Children: [] + m_Father: {fileID: 1158035086} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &740851131 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 740851132} + - component: {fileID: 740851135} + - component: {fileID: 740851134} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &740851132 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + 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_Children: + - {fileID: 1981142013} + - {fileID: 1552723601} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &740851134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &740851135 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 1 + m_TargetDisplay: 0 +--- !u!1 &762219656 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 762219657} + - component: {fileID: 762219661} + - component: {fileID: 762219659} + - component: {fileID: 762219658} + m_Layer: 0 + m_Name: Quad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &762219657 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 762219656} + m_LocalRotation: {x: -0.00000005960465, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.1} + m_LocalScale: {x: 6, y: 6, z: 6} + m_Children: [] + m_Father: {fileID: 1283428183} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &762219658 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 762219656} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56095ffd5a0e54ec68c465c11d86c704, type: 3} + m_Name: + m_EditorClassIdentifier: + RotationSpeed: 33 +--- !u!23 &762219659 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 762219656} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 2105a6ce9f7624161ba30eefc0d839f3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &762219661 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 762219656} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &782750261 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 782750265} + - component: {fileID: 782750264} + - component: {fileID: 782750262} + - component: {fileID: 782750263} + m_Layer: 5 + m_Name: Game Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &782750262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 782750261} + 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 &782750263 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 782750261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &782750264 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 782750261} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &782750265 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 782750261} + 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_Children: + - {fileID: 965152938} + - {fileID: 587840592} + - {fileID: 1732869220} + - {fileID: 1247142069} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &854248630 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 854248631} + - component: {fileID: 854248634} + - component: {fileID: 854248633} + - component: {fileID: 854248632} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &854248631 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 854248630} + m_LocalRotation: {x: 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: 1005780168} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 193, y: 0} + m_SizeDelta: {x: 235, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &854248632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 854248630} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &854248633 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 854248630} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Press a Unity logo to spawn a planet. +--- !u!222 &854248634 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 854248630} +--- !u!1 &930800600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 930800601} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &930800601 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_LocalRotation: {x: 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: 2135305920} + - {fileID: 62216952} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &965152937 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 965152938} + - component: {fileID: 965152942} + - component: {fileID: 965152941} + - component: {fileID: 965152940} + - component: {fileID: 965152939} + m_Layer: 5 + m_Name: Spawner 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &965152938 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 965152937} + m_LocalRotation: {x: 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: 782750265} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 259, y: 126} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &965152939 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 965152937} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 712d87efeee01774088f382a8449caab, type: 3} + m_Name: + m_EditorClassIdentifier: + Prefab: {fileID: 4587602474649486, guid: 7c0291284cacbcf4d93907ef9bfae4b9, type: 2} + Position: {fileID: 1730821178} +--- !u!114 &965152940 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 965152937} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &965152941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 965152937} + 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: 533b9df4691d947d9921a0053b5ce231, 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 &965152942 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 965152937} +--- !u!1 &1005780167 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1005780168} + - component: {fileID: 1005780169} + m_Layer: 5 + m_Name: Press + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1005780168 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1005780167} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.9999968, y: 0.9999968, z: 0.9999968} + m_Children: + - {fileID: 161419864} + - {fileID: 854248631} + m_Father: {fileID: 250857271} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1005780169 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1005780167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1090564253 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1090564254} + m_Layer: 0 + m_Name: Planet 3 Position + m_TagString: Untagged + m_Icon: {fileID: -964228994112308473, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1090564254 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1090564253} + m_LocalRotation: {x: -0.00000005960465, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2, y: -7.3, z: 0.3} + m_LocalScale: {x: 5, y: 4.999998, z: 4.999998} + m_Children: [] + m_Father: {fileID: 1158035086} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1138005899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1138005900} + - component: {fileID: 1138005902} + - component: {fileID: 1138005901} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1138005900 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1138005901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + 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: 71e59d6fec0b04b60acf6cad4b860a39, 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 &1138005902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} +--- !u!1 &1158035085 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1158035086} + m_Layer: 0 + m_Name: Planets + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1158035086 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1158035085} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0, z: 1.59} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1730821178} + - {fileID: 699119955} + - {fileID: 1090564254} + - {fileID: 718339114} + m_Father: {fileID: 498618157} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1247142068 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1247142069} + - component: {fileID: 1247142073} + - component: {fileID: 1247142072} + - component: {fileID: 1247142071} + - component: {fileID: 1247142070} + m_Layer: 5 + m_Name: Spawner 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1247142069 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1247142068} + m_LocalRotation: {x: -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: 782750265} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -251, y: 14} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1247142070 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1247142068} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 712d87efeee01774088f382a8449caab, type: 3} + m_Name: + m_EditorClassIdentifier: + Prefab: {fileID: 4567459449971028, guid: 4d11e87ec08ce584a818342513bf6616, type: 2} + Position: {fileID: 718339114} +--- !u!114 &1247142071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1247142068} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &1247142072 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1247142068} + 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: 533b9df4691d947d9921a0053b5ce231, 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 &1247142073 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1247142068} +--- !u!1 &1283428182 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1283428183} + - component: {fileID: 1283428184} + - component: {fileID: 1283428185} + m_Layer: 0 + m_Name: Vortex + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1283428183 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1283428182} + 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_Children: + - {fileID: 1762297559} + - {fileID: 762219657} + m_Father: {fileID: 498618157} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!135 &1283428184 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1283428182} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 1.97 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1283428185 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1283428182} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d994edf8e68fd4c21ad2771c39731c21, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1408280580 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1408280581} + - component: {fileID: 1408280583} + - component: {fileID: 1408280582} + - component: {fileID: 1408280584} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1408280581 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1408280582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Drag a planet into the portal +--- !u!222 &1408280583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} +--- !u!114 &1408280584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1552723600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1552723601} + - component: {fileID: 1552723603} + - component: {fileID: 1552723602} + - component: {fileID: 1552723604} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1552723601 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_LocalRotation: {x: 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: 740851132} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 178, y: 90} + m_SizeDelta: {x: 320, y: 151} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1552723602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + 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: 'Portal + + + This example shows how to cancel a gesture or "give" its pointers to another gesture. + + + When you drag a planet close to the portal TransformGesture is cancelled and the + planet starts falling. Notice how you can grab it while it is falling and drag + outside.' +--- !u!222 &1552723603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} +--- !u!114 &1552723604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1679844149 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1679844150} + - component: {fileID: 1679844151} + m_Layer: 5 + m_Name: Drag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679844150 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_LocalRotation: {x: 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: 1138005900} + - {fileID: 1408280581} + m_Father: {fileID: 250857271} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1679844151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1730821177 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1730821178} + m_Layer: 0 + m_Name: Planet 1 Position + m_TagString: Untagged + m_Icon: {fileID: -964228994112308473, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1730821178 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1730821177} + m_LocalRotation: {x: -0.00000005960465, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 8.23, y: 5.06, z: 0.3} + m_LocalScale: {x: 5, y: 5, z: 5} + m_Children: [] + m_Father: {fileID: 1158035086} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1732869219 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1732869220} + - component: {fileID: 1732869224} + - component: {fileID: 1732869223} + - component: {fileID: 1732869222} + - component: {fileID: 1732869221} + m_Layer: 5 + m_Name: Spawner 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1732869220 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1732869219} + m_LocalRotation: {x: -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: 782750265} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 2, y: -186} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1732869221 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1732869219} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 712d87efeee01774088f382a8449caab, type: 3} + m_Name: + m_EditorClassIdentifier: + Prefab: {fileID: 4675551579099594, guid: e6c45ad0ad3ece84b91f569ca505eba9, type: 2} + Position: {fileID: 1090564254} +--- !u!114 &1732869222 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1732869219} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 1 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &1732869223 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1732869219} + 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: 533b9df4691d947d9921a0053b5ce231, 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 &1732869224 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1732869219} +--- !u!1 &1762297554 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1762297559} + - component: {fileID: 1762297558} + - component: {fileID: 1762297556} + - component: {fileID: 1762297555} + m_Layer: 0 + m_Name: Quad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1762297555 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1762297554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56095ffd5a0e54ec68c465c11d86c704, type: 3} + m_Name: + m_EditorClassIdentifier: + RotationSpeed: 10 +--- !u!23 &1762297556 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1762297554} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 2105a6ce9f7624161ba30eefc0d839f3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1762297558 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1762297554} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1762297559 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1762297554} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 10, y: 10, z: 10} + m_Children: [] + m_Father: {fileID: 1283428183} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1764701046 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1764701050} + - component: {fileID: 1764701049} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1764701049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + 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: 5 +--- !u!4 &1764701050 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + m_LocalRotation: {x: 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: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1772227325 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1981142012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1981142013} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1981142013 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1981142012} + m_LocalRotation: {x: 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: 250857271} + m_Father: {fileID: 740851132} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2135305919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2135305920} + - component: {fileID: 2135305921} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2135305920 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_LocalRotation: {x: 0.24194291, y: -0.49854365, z: 0.22107579, w: 0.80252314} + m_LocalPosition: {x: 6.1004148, y: 15.540384, z: -20.566225} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!108 &2135305921 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1.3 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: 3 + m_CustomResolution: -1 + m_Strength: 0.56 + m_Bias: 0.1 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 diff --git a/Source/Assets/TouchScript/Examples/Portal/Portal.unity.meta b/Source/Assets/TouchScript/Examples/Portal/Portal.unity.meta new file mode 100644 index 000000000..bc963d131 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Portal.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 20ddca9320eeb4eb28b7ce5fcb289923 +DefaultImporter: + userData: "6" diff --git a/Source/Assets/TouchScript/Examples/Portal/Prefabs.meta b/Source/Assets/TouchScript/Examples/Portal/Prefabs.meta new file mode 100644 index 000000000..f46a58b2c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 04d6b05909265f14b959a306ec367037 +folderAsset: yes +timeCreated: 1500762512 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 1.prefab b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 1.prefab new file mode 100644 index 000000000..a2f61d994 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 1.prefab @@ -0,0 +1,273 @@ +%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: 1723810235303300} + m_IsPrefabParent: 1 +--- !u!1 &1723810235303300 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4587602474649486} + - component: {fileID: 33699283477361520} + - component: {fileID: 23136522374025466} + - component: {fileID: 114451894822869470} + - component: {fileID: 135508365643771480} + - component: {fileID: 114826848715069466} + - component: {fileID: 114536039364076494} + - component: {fileID: 114380460329550602} + - component: {fileID: 114610899262215960} + - component: {fileID: 54030889479251752} + m_Layer: 0 + m_Name: Planet 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4587602474649486 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + m_LocalRotation: {x: -0.00000008940697, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 5, y: 5, z: 5} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &23136522374025466 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 148079725ce574b75ae65e81f6be1567, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &33699283477361520 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &54030889479251752 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &114380460329550602 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &114451894822869470 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11cabe64e6b9945c88b060d042861428, type: 3} + m_Name: + m_EditorClassIdentifier: + Speed: 100 + RotationSpeed: 30 + FallSpeed: 0.01 +--- !u!114 &114536039364076494 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.01 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &114610899262215960 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 141e75b9b7edb42df80a22a14f03ae4b, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &114826848715069466 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 1 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 1 + projectionPlaneNormal: {x: 0, y: 0, z: 1} +--- !u!135 &135508365643771480 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1723810235303300} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: -0.00000071525574, z: -0.00000023841858} diff --git a/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 1.prefab.meta b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 1.prefab.meta new file mode 100644 index 000000000..85636ffe9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 1.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7c0291284cacbcf4d93907ef9bfae4b9 +timeCreated: 1500762519 +licenseType: Pro +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 2.prefab b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 2.prefab new file mode 100644 index 000000000..baa1e6e82 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 2.prefab @@ -0,0 +1,273 @@ +%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: 1732047919889238} + m_IsPrefabParent: 1 +--- !u!1 &1732047919889238 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4252442136654676} + - component: {fileID: 33531297961261376} + - component: {fileID: 23305764506643510} + - component: {fileID: 114932396362750984} + - component: {fileID: 135434814455161676} + - component: {fileID: 114329650201689084} + - component: {fileID: 114489562153011798} + - component: {fileID: 114347950312683466} + - component: {fileID: 114602335792670362} + - component: {fileID: 54986752027795250} + m_Layer: 0 + m_Name: Planet 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4252442136654676 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 5, y: 5, z: 5} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &23305764506643510 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 150b901d18f3f45d08b29f50aaec86b9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &33531297961261376 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &54986752027795250 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &114329650201689084 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 1 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 1 + projectionPlaneNormal: {x: 0, y: 0, z: 1} +--- !u!114 &114347950312683466 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &114489562153011798 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.01 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &114602335792670362 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 141e75b9b7edb42df80a22a14f03ae4b, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &114932396362750984 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11cabe64e6b9945c88b060d042861428, type: 3} + m_Name: + m_EditorClassIdentifier: + Speed: 100 + RotationSpeed: 10 + FallSpeed: 0.01 +--- !u!135 &135434814455161676 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1732047919889238} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: -0.00000047683716, z: -0.00000023841858} diff --git a/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 2.prefab.meta b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 2.prefab.meta new file mode 100644 index 000000000..7acc63971 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 2.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bff70878d8bdbdd409be0cca1fc3cfce +timeCreated: 1500762529 +licenseType: Pro +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 3.prefab b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 3.prefab new file mode 100644 index 000000000..cb583414c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 3.prefab @@ -0,0 +1,273 @@ +%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: 1069462480597282} + m_IsPrefabParent: 1 +--- !u!1 &1069462480597282 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4675551579099594} + - component: {fileID: 33212346599330584} + - component: {fileID: 23284574870311418} + - component: {fileID: 114146275313109388} + - component: {fileID: 135509675147651788} + - component: {fileID: 114408875339017466} + - component: {fileID: 114920083122602460} + - component: {fileID: 114757214019137374} + - component: {fileID: 114574854580529156} + - component: {fileID: 54113724369616440} + m_Layer: 0 + m_Name: Planet 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4675551579099594 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + m_LocalRotation: {x: -0.00000008940697, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 5, y: 5, z: 5} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &23284574870311418 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 10bd026932ba047dcaca956b30263df6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &33212346599330584 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &54113724369616440 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &114146275313109388 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11cabe64e6b9945c88b060d042861428, type: 3} + m_Name: + m_EditorClassIdentifier: + Speed: 100 + RotationSpeed: 40 + FallSpeed: 0.01 +--- !u!114 &114408875339017466 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 1 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 1 + projectionPlaneNormal: {x: 0, y: 0, z: 1} +--- !u!114 &114574854580529156 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 141e75b9b7edb42df80a22a14f03ae4b, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &114757214019137374 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &114920083122602460 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.01 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!135 &135509675147651788 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1069462480597282} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0.0000009536743, z: -0.00000023841858} diff --git a/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 3.prefab.meta b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 3.prefab.meta new file mode 100644 index 000000000..0a794aa06 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 3.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e6c45ad0ad3ece84b91f569ca505eba9 +timeCreated: 1500762542 +licenseType: Pro +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 4.prefab b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 4.prefab new file mode 100644 index 000000000..a309dbbd3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 4.prefab @@ -0,0 +1,273 @@ +%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: 1680841336266350} + m_IsPrefabParent: 1 +--- !u!1 &1680841336266350 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4567459449971028} + - component: {fileID: 33214459495948154} + - component: {fileID: 23155191792782146} + - component: {fileID: 114421577017359426} + - component: {fileID: 135886790604417350} + - component: {fileID: 114367742515556682} + - component: {fileID: 114222141242542914} + - component: {fileID: 114974252932633120} + - component: {fileID: 114634450885023396} + - component: {fileID: 54059909185387790} + m_Layer: 0 + m_Name: Planet 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4567459449971028 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + m_LocalRotation: {x: -0.00000008940697, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 5, y: 5, z: 5} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &23155191792782146 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 0ed169bc21381479799fe7ba05d2939b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &33214459495948154 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &54059909185387790 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &114222141242542914 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: + enableSmoothing: 0 + smoothingFactor: 0.0001 + positionThreshold: 0.0001 + rotationThreshold: 0.01 + scaleThreshold: 0.0001 + allowChangingFromOutside: 0 +--- !u!114 &114367742515556682 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTransformStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransform: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnTransformComplete: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + type: 1 + screenTransformThreshold: 0.1 + minScreenPointsDistance: 0.5 + projectionProps: 0 + projection: 1 + projectionPlaneNormal: {x: 0, y: 0, z: 1} +--- !u!114 &114421577017359426 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11cabe64e6b9945c88b060d042861428, type: 3} + m_Name: + m_EditorClassIdentifier: + Speed: 100 + RotationSpeed: 20 + FallSpeed: 0.01 +--- !u!114 &114634450885023396 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 141e75b9b7edb42df80a22a14f03ae4b, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!114 &114974252932633120 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + combinePointers: 0 + combinePointersInterval: 0.3 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + ignoreChildren: 0 +--- !u!135 &135886790604417350 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1680841336266350} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: -0.00000047683716, z: -0.00000023841858} diff --git a/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 4.prefab.meta b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 4.prefab.meta new file mode 100644 index 000000000..767bf248d --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Prefabs/Planet 4.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4d11e87ec08ce584a818342513bf6616 +timeCreated: 1500762549 +licenseType: Pro +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Portal/Scripts.meta b/Source/Assets/TouchScript/Examples/Portal/Scripts.meta new file mode 100644 index 000000000..3269f36af --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 2ff914bd5787e4fe4a49bf14072cef8b +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Portal/Scripts/Planet.cs b/Source/Assets/TouchScript/Examples/Portal/Scripts/Planet.cs new file mode 100644 index 000000000..b2e04a0ba --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Scripts/Planet.cs @@ -0,0 +1,77 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Gestures; +using TouchScript.Gestures.TransformGestures; + +namespace TouchScript.Examples.Portal +{ + /// + public class Planet : MonoBehaviour + { + private enum PlanetStatus + { + Free, + Manual, + Falling + } + + public float Speed = 30f; + public float RotationSpeed = 30f; + public float FallSpeed = .01f; + + private PlanetStatus status = PlanetStatus.Free; + + public void Fall() + { + status = PlanetStatus.Falling; + var gesture = GetComponent(); + if (gesture != null) gesture.Cancel(); + } + + private void OnEnable() + { + GetComponent().Pressed += pressedhandler; + GetComponent().Released += releasedHandler; + } + + private void OnDisable() + { + GetComponent().Pressed -= pressedhandler; + GetComponent().Released -= releasedHandler; + } + + private void Update() + { + switch (status) + { + case PlanetStatus.Free: + transform.RotateAround(transform.parent.position, Vector3.up, + Speed * Time.unscaledDeltaTime / transform.localPosition.sqrMagnitude); + break; + case PlanetStatus.Manual: + break; + case PlanetStatus.Falling: + transform.localScale *= 1 - FallSpeed; + transform.localPosition = Vector3.Lerp(transform.localPosition, Vector3.zero, FallSpeed); + if (transform.localScale.x < 0.01) Destroy(gameObject); + break; + } + + transform.Rotate(0, 0, Time.unscaledDeltaTime * RotationSpeed); + } + + void pressedhandler(object sender, System.EventArgs e) + { + status = PlanetStatus.Manual; + } + + void releasedHandler(object sender, System.EventArgs e) + { + if (status != PlanetStatus.Manual) return; + status = PlanetStatus.Free; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Portal/Scripts/Planet.cs.meta b/Source/Assets/TouchScript/Examples/Portal/Scripts/Planet.cs.meta new file mode 100644 index 000000000..9b92c7a2c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Scripts/Planet.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11cabe64e6b9945c88b060d042861428 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Portal/Scripts/Rotator.cs b/Source/Assets/TouchScript/Examples/Portal/Scripts/Rotator.cs new file mode 100644 index 000000000..4b5f86ca0 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Scripts/Rotator.cs @@ -0,0 +1,19 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Examples.Portal +{ + /// + public class Rotator : MonoBehaviour + { + public float RotationSpeed = 1f; + + void Update() + { + transform.localRotation *= Quaternion.Euler(0, 0, Time.unscaledDeltaTime * RotationSpeed); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Portal/Scripts/Rotator.cs.meta b/Source/Assets/TouchScript/Examples/Portal/Scripts/Rotator.cs.meta new file mode 100644 index 000000000..6511fd881 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Scripts/Rotator.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 56095ffd5a0e54ec68c465c11d86c704 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Portal/Scripts/Spawner.cs b/Source/Assets/TouchScript/Examples/Portal/Scripts/Spawner.cs new file mode 100644 index 000000000..29e377c44 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Scripts/Spawner.cs @@ -0,0 +1,40 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Gestures; +using UnityEngine; + +namespace TouchScript.Examples.Portal +{ + /// + public class Spawner : MonoBehaviour + { + public Transform Prefab; + public Transform Position; + + private PressGesture press; + + private void OnEnable() + { + press = GetComponent(); + press.Pressed += pressHandler; + } + + private void OnDisable() + { + press.Pressed -= pressHandler; + } + + private void pressHandler(object sender, EventArgs eventArgs) + { + var target = Instantiate(Prefab, Position.parent); + target.position = Position.position; + + LayerManager.Instance.SetExclusive(target); + press.Cancel(true, true); + LayerManager.Instance.ClearExclusive(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Portal/Scripts/Spawner.cs.meta b/Source/Assets/TouchScript/Examples/Portal/Scripts/Spawner.cs.meta new file mode 100644 index 000000000..5ee5b0f6c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Scripts/Spawner.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 712d87efeee01774088f382a8449caab +timeCreated: 1500762320 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Portal/Scripts/Vortex.cs b/Source/Assets/TouchScript/Examples/Portal/Scripts/Vortex.cs new file mode 100644 index 000000000..bc42ec982 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Scripts/Vortex.cs @@ -0,0 +1,19 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Examples.Portal +{ + /// + public class Vortex : MonoBehaviour + { + private void OnTriggerEnter(Collider other) + { + var planet = other.GetComponent(); + if (planet == null) return; + planet.Fall(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Portal/Scripts/Vortex.cs.meta b/Source/Assets/TouchScript/Examples/Portal/Scripts/Vortex.cs.meta new file mode 100644 index 000000000..c5e7b9268 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Portal/Scripts/Vortex.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d994edf8e68fd4c21ad2771c39731c21 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Pull.meta b/Source/Assets/TouchScript/Examples/Pull.meta new file mode 100644 index 000000000..00e830361 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1a092b00a4e374c60a1f1b5af1727a4c +folderAsset: yes +timeCreated: 1501590523 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Pull/Materials.meta b/Source/Assets/TouchScript/Examples/Pull/Materials.meta new file mode 100644 index 000000000..41948a301 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0d02fe6a7404f4fa8b9b5214e052cd7d +folderAsset: yes +timeCreated: 1501599114 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Pull/Materials/Green.mat b/Source/Assets/TouchScript/Examples/Pull/Materials/Green.mat new file mode 100644 index 000000000..a11dc3831 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Materials/Green.mat @@ -0,0 +1,76 @@ +%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: Green + m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0, g: 1, b: 0.048275948, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Source/Assets/TouchScript/Examples/Pull/Materials/Green.mat.meta b/Source/Assets/TouchScript/Examples/Pull/Materials/Green.mat.meta new file mode 100644 index 000000000..4ff475c12 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Materials/Green.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6a7cc3aeb872a43c9b48602411ff0128 +timeCreated: 1501599163 +licenseType: Pro +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Pull/Prefabs.meta b/Source/Assets/TouchScript/Examples/Pull/Prefabs.meta new file mode 100644 index 000000000..26c7eed13 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e930c60b631064c8282b18e4fd304215 +folderAsset: yes +timeCreated: 1501590612 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Pull/Prefabs/Cube.prefab b/Source/Assets/TouchScript/Examples/Pull/Prefabs/Cube.prefab new file mode 100644 index 000000000..6d1afd749 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Prefabs/Cube.prefab @@ -0,0 +1,276 @@ +%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: 1583770791137080} + m_IsPrefabParent: 1 +--- !u!1 &1187127904395504 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4273383945290788} + - component: {fileID: 120722583279136224} + m_Layer: 0 + m_Name: Line + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1583770791137080 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4092497047216208} + - component: {fileID: 33076793992048592} + - component: {fileID: 65806177754892914} + - component: {fileID: 23586366584321034} + - component: {fileID: 54930536093548728} + - component: {fileID: 114518461671103506} + - component: {fileID: 114334082651901656} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4092497047216208 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1583770791137080} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.02, y: 0.69, z: -2.33} + m_LocalScale: {x: 1.5896826, y: 1.589683, z: 1.589683} + m_Children: + - {fileID: 4273383945290788} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4273383945290788 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1187127904395504} + m_LocalRotation: {x: -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: 4092497047216208} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &23586366584321034 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1583770791137080} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 69c151168e0de486b9df0688ff9e4891, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &33076793992048592 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1583770791137080} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &54930536093548728 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1583770791137080} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &65806177754892914 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1583770791137080} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &114334082651901656 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1583770791137080} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 057fc4dd3742040c9b65eac0a4e3cac7, type: 3} + m_Name: + m_EditorClassIdentifier: + ForceMultiplier: 100 + Line: {fileID: 120722583279136224} +--- !u!114 &114518461671103506 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1583770791137080} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 767c446d703184f6faf8a12a85d591eb, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 0 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] +--- !u!120 &120722583279136224 +LineRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1187127904395504} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 6a7cc3aeb872a43c9b48602411ff0128, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 10} + m_Parameters: + serializedVersion: 2 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0.2 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 0.2 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + m_UseWorldSpace: 1 + m_Loop: 0 diff --git a/Source/Assets/TouchScript/Examples/Pull/Prefabs/Cube.prefab.meta b/Source/Assets/TouchScript/Examples/Pull/Prefabs/Cube.prefab.meta new file mode 100644 index 000000000..eb5fb7666 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Prefabs/Cube.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 21a4063eaa6b1410f8b9be15c9d964df +timeCreated: 1501590642 +licenseType: Pro +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Pull/Pull.unity b/Source/Assets/TouchScript/Examples/Pull/Pull.unity new file mode 100644 index 000000000..6ed0b637b --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Pull.unity @@ -0,0 +1,1990 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &43919907 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1583770791137080, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 43919908} + - component: {fileID: 43919912} + - component: {fileID: 43919911} + - component: {fileID: 43919910} + - component: {fileID: 43919909} + m_Layer: 0 + m_Name: Static Cube (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &43919908 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 43919907} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6.04, y: 0.69, z: 0.21} + m_LocalScale: {x: 1.58968, y: 1.58968, z: 1.58968} + m_Children: [] + m_Father: {fileID: 312263520} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &43919909 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54930536093548728, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 43919907} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &43919910 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 23586366584321034, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 43919907} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 69c151168e0de486b9df0688ff9e4891, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &43919911 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 65806177754892914, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 43919907} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &43919912 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 33076793992048592, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 43919907} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 62216952} + - component: {fileID: 62216957} + - component: {fileID: 62216956} + - component: {fileID: 62216955} + - component: {fileID: 62216954} + - component: {fileID: 62216953} + m_Layer: 0 + m_Name: Scene Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: 0.26945794, y: 0, z: 0, w: 0.96301216} + m_LocalPosition: {x: -1.11, y: 10.1, z: -17.45} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 31.264, y: 0, z: 0} +--- !u!114 &62216953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Scene Camera + basicEditor: 1 + advancedProps: 0 + hitProps: 0 + hit3DObjects: 1 + hit2DObjects: 0 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 0 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 40 + field of view: 30 + orthographic: 0 + orthographic size: 100 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &250857269 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 250857271} + - component: {fileID: 250857270} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &250857270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + 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: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!224 &250857271 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + m_LocalRotation: {x: 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: 922779737} + - {fileID: 1679844150} + m_Father: {fileID: 1981142013} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &312263519 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 312263520} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &312263520 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 312263519} + m_LocalRotation: {x: 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: 497908867} + - {fileID: 1348713904} + - {fileID: 1523632846} + - {fileID: 703341282} + - {fileID: 2086987748} + - {fileID: 525512062} + - {fileID: 43919908} + m_Father: {fileID: 930800601} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &497908867 stripped +Transform: + m_PrefabParentObject: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 1411228864} +--- !u!1 &525512061 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1583770791137080, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 525512062} + - component: {fileID: 525512066} + - component: {fileID: 525512065} + - component: {fileID: 525512064} + - component: {fileID: 525512063} + m_Layer: 0 + m_Name: Static Cube (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &525512062 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 525512061} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -4.27, y: 0.69, z: 2.94} + m_LocalScale: {x: 1.58968, y: 1.58968, z: 1.58968} + m_Children: [] + m_Father: {fileID: 312263520} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &525512063 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54930536093548728, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 525512061} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &525512064 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 23586366584321034, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 525512061} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 69c151168e0de486b9df0688ff9e4891, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &525512065 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 65806177754892914, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 525512061} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &525512066 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 33076793992048592, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 525512061} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &543251036 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[0] + value: + objectReference: {fileID: 62216953} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &584553677 stripped +Transform: + m_PrefabParentObject: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!1001 &599866430 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 930800601} + m_Modifications: + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalPosition.x + value: -0.04 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalPosition.y + value: -12.97 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalPosition.z + value: 0.26 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.y + value: 0.36056674 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9327335 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalScale.x + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalScale.y + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalScale.z + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 100004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 9500000, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_ParentPrefab: {fileID: 100100000, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_IsPrefabParent: 0 +--- !u!1 &703341281 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1583770791137080, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 703341282} + - component: {fileID: 703341286} + - component: {fileID: 703341285} + - component: {fileID: 703341284} + - component: {fileID: 703341283} + m_Layer: 0 + m_Name: Static Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &703341282 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 703341281} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.55, y: 0.69, z: 5.28} + m_LocalScale: {x: 1.58968, y: 1.58968, z: 1.58968} + m_Children: [] + m_Father: {fileID: 312263520} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &703341283 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54930536093548728, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 703341281} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &703341284 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 23586366584321034, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 703341281} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 69c151168e0de486b9df0688ff9e4891, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &703341285 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 65806177754892914, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 703341281} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &703341286 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 33076793992048592, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 703341281} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &721853795 stripped +GameObject: + m_PrefabParentObject: {fileID: 100006, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!64 &721853799 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 721853795} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 1 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 4300006, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} +--- !u!1 &740851131 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 740851132} + - component: {fileID: 740851135} + - component: {fileID: 740851134} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &740851132 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + 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_Children: + - {fileID: 1981142013} + - {fileID: 1552723601} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &740851134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &740851135 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &922779735 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 922779737} + - component: {fileID: 922779736} + m_Layer: 5 + m_Name: Drag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &922779736 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 922779735} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!224 &922779737 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 922779735} + m_LocalRotation: {x: 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: 1149683276} + - {fileID: 1166494019} + m_Father: {fileID: 250857271} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &930800600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 930800601} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &930800601 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_LocalRotation: {x: 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: 2135305920} + - {fileID: 62216952} + - {fileID: 584553677} + - {fileID: 312263520} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1138005899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1138005900} + - component: {fileID: 1138005902} + - component: {fileID: 1138005901} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1138005900 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1138005901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + 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: 26489b03725f747f998c39661c2583b5, 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 &1138005902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} +--- !u!1 &1149683275 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1149683276} + - component: {fileID: 1149683278} + - component: {fileID: 1149683277} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1149683276 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1149683275} + m_LocalRotation: {x: 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: 922779737} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1149683277 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1149683275} + 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: dcd0c08ae57e04a64bd2388ac4057dc6, 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 &1149683278 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1149683275} +--- !u!1 &1166494018 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1166494019} + - component: {fileID: 1166494022} + - component: {fileID: 1166494021} + - component: {fileID: 1166494020} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1166494019 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1166494018} + m_LocalRotation: {x: 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: 922779737} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1166494020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1166494018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &1166494021 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1166494018} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Press and drag \nthe central cube" +--- !u!222 &1166494022 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1166494018} +--- !u!1 &1271849413 stripped +GameObject: + m_PrefabParentObject: {fileID: 100008, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!64 &1271849417 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1271849413} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 1 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 4300004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} +--- !u!1 &1348713903 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1583770791137080, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1348713904} + - component: {fileID: 1348713908} + - component: {fileID: 1348713907} + - component: {fileID: 1348713906} + - component: {fileID: 1348713905} + m_Layer: 0 + m_Name: Static Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1348713904 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1348713903} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.97, y: 0.69, z: 0.26} + m_LocalScale: {x: 1.58968, y: 1.58968, z: 1.58968} + m_Children: [] + m_Father: {fileID: 312263520} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &1348713905 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54930536093548728, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1348713903} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1348713906 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 23586366584321034, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1348713903} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 69c151168e0de486b9df0688ff9e4891, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &1348713907 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 65806177754892914, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1348713903} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1348713908 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 33076793992048592, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1348713903} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1408280580 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1408280581} + - component: {fileID: 1408280583} + - component: {fileID: 1408280582} + - component: {fileID: 1408280584} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1408280581 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1408280582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Release the touch \nto apply the force" +--- !u!222 &1408280583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} +--- !u!114 &1408280584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1001 &1411228864 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 312263520} + m_Modifications: + - target: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, type: 2} + propertyPath: m_LocalPosition.x + value: 0.02 + objectReference: {fileID: 0} + - target: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, type: 2} + propertyPath: m_LocalPosition.y + value: 0.69 + objectReference: {fileID: 0} + - target: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, type: 2} + propertyPath: m_LocalPosition.z + value: -2.33 + objectReference: {fileID: 0} + - target: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 21a4063eaa6b1410f8b9be15c9d964df, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1523632845 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1583770791137080, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1523632846} + - component: {fileID: 1523632850} + - component: {fileID: 1523632849} + - component: {fileID: 1523632848} + - component: {fileID: 1523632847} + m_Layer: 0 + m_Name: Static Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1523632846 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1523632845} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.45, y: 0.69, z: 3.53} + m_LocalScale: {x: 1.58968, y: 1.58968, z: 1.58968} + m_Children: [] + m_Father: {fileID: 312263520} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &1523632847 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54930536093548728, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1523632845} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1523632848 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 23586366584321034, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1523632845} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 69c151168e0de486b9df0688ff9e4891, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &1523632849 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 65806177754892914, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1523632845} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1523632850 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 33076793992048592, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1523632845} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1552723600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1552723601} + - component: {fileID: 1552723603} + - component: {fileID: 1552723602} + - component: {fileID: 1552723604} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1552723601 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_LocalRotation: {x: 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: 740851132} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 178, y: 58} + m_SizeDelta: {x: 320, y: 88} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1552723602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + 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: "Pull\n\x03\nThis example shows how to write a custom gesture.\nPullGesture + on the central cube is written specially for this scene." +--- !u!222 &1552723603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} +--- !u!114 &1552723604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1679844149 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1679844150} + - component: {fileID: 1679844151} + m_Layer: 5 + m_Name: Tap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679844150 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_LocalRotation: {x: 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: 1138005900} + - {fileID: 1408280581} + m_Father: {fileID: 250857271} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1679844151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1764701046 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1764701050} + - component: {fileID: 1764701049} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1764701049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + 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: 5 +--- !u!4 &1764701050 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + m_LocalRotation: {x: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1772227325 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: useDPI + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1981142012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1981142013} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1981142013 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1981142012} + m_LocalRotation: {x: 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: 250857271} + m_Father: {fileID: 740851132} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2086987747 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1583770791137080, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2086987748} + - component: {fileID: 2086987752} + - component: {fileID: 2086987751} + - component: {fileID: 2086987750} + - component: {fileID: 2086987749} + m_Layer: 0 + m_Name: Static Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2086987748 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4092497047216208, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2086987747} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.71, y: 0.69, z: 5.16} + m_LocalScale: {x: 1.58968, y: 1.58968, z: 1.58968} + m_Children: [] + m_Father: {fileID: 312263520} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &2086987749 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54930536093548728, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2086987747} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &2086987750 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 23586366584321034, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2086987747} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 69c151168e0de486b9df0688ff9e4891, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &2086987751 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 65806177754892914, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2086987747} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &2086987752 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 33076793992048592, guid: 21a4063eaa6b1410f8b9be15c9d964df, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2086987747} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2135305919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2135305920} + - component: {fileID: 2135305921} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2135305920 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_LocalRotation: {x: 0.24194291, y: -0.49854365, z: 0.22107579, w: 0.80252314} + m_LocalPosition: {x: 6.1004148, y: 15.540384, z: -20.566225} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 37.5, y: -60.899998, z: 8.2324} +--- !u!108 &2135305921 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1.3 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: 3 + m_CustomResolution: -1 + m_Strength: 0.56 + m_Bias: 0.1 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 diff --git a/Source/Assets/TouchScript/Examples/Pull/Pull.unity.meta b/Source/Assets/TouchScript/Examples/Pull/Pull.unity.meta new file mode 100644 index 000000000..208dcabb4 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Pull.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6696ec8da4feb4725bf860ab58fa830f +timeCreated: 1501590562 +licenseType: Pro +DefaultImporter: + userData: "10" + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Pull/Scripts.meta b/Source/Assets/TouchScript/Examples/Pull/Scripts.meta new file mode 100644 index 000000000..d9a665ab9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d450e111ead04433cb8527f73c6a561a +folderAsset: yes +timeCreated: 1501591264 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Pull/Scripts/Logic.cs b/Source/Assets/TouchScript/Examples/Pull/Scripts/Logic.cs new file mode 100644 index 000000000..a16196f05 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Scripts/Logic.cs @@ -0,0 +1,104 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Tutorial +{ + public class Logic : MonoBehaviour + { + // Force multiplier + public float ForceMultiplier = 100f; + public LineRenderer Line; + + private PullGesture gesture; + private Rigidbody body; + + private Vector3 forceToApply; + private bool shouldApplyForce = false; + + private void OnEnable() + { + body = GetComponent(); + gesture = GetComponent(); + + Line.enabled = false; + + gesture.Pressed += pressedHandler; + gesture.Pulled += pulledHandler; + gesture.Released += releasedHandler; + gesture.Cancelled += cancelledHandler; + + releaseObject(); + } + + private void OnDisable() + { + gesture.Pressed -= pressedHandler; + gesture.Pulled -= pulledHandler; + gesture.Released -= releasedHandler; + gesture.Cancelled -= cancelledHandler; + } + + private void FixedUpdate() + { + // Apply force in FixedUpdate to make physics happy + if (shouldApplyForce) + { + body.AddForce(forceToApply); + shouldApplyForce = false; + } + } + + // Switch to manual mode + private void takeObject() + { + body.isKinematic = true; + Line.enabled = true; + updateLine(); + } + + // Switch to automatic mode + private void releaseObject() + { + body.isKinematic = false; + Line.enabled = false; + } + + // Push the object when the gesture is ended + private void pushObject() + { + forceToApply = ForceMultiplier * gesture.Force; + shouldApplyForce = true; + } + + // Update the line + private void updateLine() + { + Line.SetPosition(0, gesture.StartPosition); + Line.SetPosition(1, gesture.Position); + } + + private void pressedHandler(object sender, System.EventArgs e) + { + takeObject(); + } + + private void pulledHandler(object sender, System.EventArgs e) + { + updateLine(); + } + + private void releasedHandler(object sender, System.EventArgs e) + { + releaseObject(); + pushObject(); + } + + private void cancelledHandler(object sender, System.EventArgs e) + { + releaseObject(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Pull/Scripts/Logic.cs.meta b/Source/Assets/TouchScript/Examples/Pull/Scripts/Logic.cs.meta new file mode 100644 index 000000000..0e939ac08 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Scripts/Logic.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 057fc4dd3742040c9b65eac0a4e3cac7 +timeCreated: 1501597106 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/Pull/Scripts/PullGesture.cs b/Source/Assets/TouchScript/Examples/Pull/Scripts/PullGesture.cs new file mode 100644 index 000000000..f02eaf50f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Scripts/PullGesture.cs @@ -0,0 +1,171 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using UnityEngine; +using TouchScript.Gestures; +using TouchScript.Pointers; +using System; +using TouchScript.Layers; + +// Let's put our gesture into a namespace so it wouldn't clash with other classes in our project +namespace TouchScript.Tutorial +{ + // The class must inherit from Gesture + public class PullGesture : Gesture + { + public event EventHandler Pressed + { + add { pressedInvoker += value; } + remove { pressedInvoker -= value; } + } + + public event EventHandler Pulled + { + add { pulledInvoker += value; } + remove { pulledInvoker -= value; } + } + + public event EventHandler Released + { + add { releasedInvoker += value; } + remove { releasedInvoker -= value; } + } + + public Vector3 StartPosition + { + get + { + switch (State) + { + case GestureState.Began: + case GestureState.Changed: + case GestureState.Ended: + return startPosition; + default: + return transform.position; + } + } + } + + public Vector3 Position + { + get + { + switch (State) + { + case GestureState.Began: + case GestureState.Changed: + case GestureState.Ended: + return projection.ProjectTo(primaryPointer.Position, plane); + default: + return transform.position; + } + } + } + + public Vector3 Force + { + get { return StartPosition - Position; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler pressedInvoker, pulledInvoker, releasedInvoker; + + // The only pointer we are interested in + private Pointer primaryPointer; + + // Layer projection parameters + private ProjectionParams projection; + + // 3D plane to project to + private Plane plane; + + // The world coordinates of the point where the gesture started + private Vector3 startPosition; + + // Pointers pressed this frame + protected override void pointersPressed(IList pointers) + { + if (State == GestureState.Idle) + { + primaryPointer = pointers[0]; + projection = primaryPointer.GetPressData().Layer.GetProjectionParams(primaryPointer); + plane = new Plane(Vector3.up, transform.position); + startPosition = projection.ProjectTo(primaryPointer.Position, plane); + + // Start the gesture + setState(GestureState.Began); + } + } + + // Pointers updated this frame + protected override void pointersUpdated(IList pointers) + { + foreach (var p in pointers) + { + if (p.Id == primaryPointer.Id) + { + // If the pointer we are interested in moved, change the state + setState(GestureState.Changed); + return; + } + } + } + + // Pointers released this frame + protected override void pointersReleased(IList pointers) + { + foreach (var p in pointers) + { + if (p.Id == primaryPointer.Id) + { + // If the pointer we are interested was released, end the gesture + setState(GestureState.Ended); + return; + } + } + } + + // Pointers cancelled this frame + protected override void pointersCancelled(IList pointers) + { + foreach (var p in pointers) + { + if (p.Id == primaryPointer.Id) + { + // If the pointer we are interested was cancelled, cancel the gesture + setState(GestureState.Cancelled); + return; + } + } + } + + // Called when the gesture transitions to Began state + protected override void onBegan() + { + if (pressedInvoker != null) pressedInvoker(this, EventArgs.Empty); + } + + // Called when the gesture transitions to Ended or Recognized states + protected override void onRecognized() + { + if (releasedInvoker != null) releasedInvoker(this, EventArgs.Empty); + } + + // Called when the gesture transitions to Changed state + protected override void onChanged() + { + if (pulledInvoker != null) pulledInvoker(this, EventArgs.Empty); +// Debug.LogFormat("Start position: {0}, current position: {1}, force: {2}", StartPosition, Position, Force.magnitude); + } + + // This method is called when gesture is reset when recognized or failed + protected override void reset() + { + base.reset(); + primaryPointer = null; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Pull/Scripts/PullGesture.cs.meta b/Source/Assets/TouchScript/Examples/Pull/Scripts/PullGesture.cs.meta new file mode 100644 index 000000000..e041b4880 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Pull/Scripts/PullGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 767c446d703184f6faf8a12a85d591eb +timeCreated: 1501591283 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/RawInput.meta b/Source/Assets/TouchScript/Examples/RawInput.meta new file mode 100644 index 000000000..8e93c4192 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: fb16005fe3d3346e9b8f3ffd00cf4f47 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/RawInput/Prefabs.meta b/Source/Assets/TouchScript/Examples/RawInput/Prefabs.meta new file mode 100644 index 000000000..10659e403 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/Prefabs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: fa5fe381834354d57882172e5f64ecd1 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/RawInput/Prefabs/Ball.prefab b/Source/Assets/TouchScript/Examples/RawInput/Prefabs/Ball.prefab new file mode 100644 index 000000000..9b4f6bfab --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/Prefabs/Ball.prefab @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &125364 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 425364} + - 33: {fileID: 3325364} + - 23: {fileID: 2325364} + - 114: {fileID: 11482678} + m_Layer: 0 + m_Name: Ball + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &425364 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125364} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: .5, y: .5, z: .5} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2325364 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125364} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 6e379d1ec9f5fd949891068175de34fe, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3325364 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125364} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &11482678 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 125364} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 55895789e0b15491c9f15cf2249a6ccf, type: 3} + m_Name: + m_EditorClassIdentifier: + Speed: 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: 125364} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Source/Assets/TouchScript/Examples/RawInput/Prefabs/Ball.prefab.meta b/Source/Assets/TouchScript/Examples/RawInput/Prefabs/Ball.prefab.meta new file mode 100644 index 000000000..3ffc46d5c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/Prefabs/Ball.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 970484224830949ada146ff42a9f50e6 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/RawInput/RawInput.unity b/Source/Assets/TouchScript/Examples/RawInput/RawInput.unity new file mode 100644 index 000000000..a892f4c41 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/RawInput.unity @@ -0,0 +1,955 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 62216952} + - component: {fileID: 62216957} + - component: {fileID: 62216956} + - component: {fileID: 62216955} + - component: {fileID: 62216954} + - component: {fileID: 62216953} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: 0.97875386, y: 0, z: 0, w: 0.20503876} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 23.6635, y: -180, z: -180} +--- !u!114 &62216953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f1cd32130056441f8df44d2168b8816, type: 3} + m_Name: + m_EditorClassIdentifier: + Prefab: {fileID: 125364, guid: 970484224830949ada146ff42a9f50e6, type: 2} +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 30 + orthographic: 0 + orthographic size: 10 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &250857269 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 250857271} + - component: {fileID: 250857270} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &250857270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + 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: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!224 &250857271 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + m_LocalRotation: {x: 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: 1679844150} + m_Father: {fileID: 1981142013} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &543251036 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: shouldCreateCameraLayer + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &630877083 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &740851131 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 740851132} + - component: {fileID: 740851135} + - component: {fileID: 740851134} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &740851132 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + 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_Children: + - {fileID: 1981142013} + - {fileID: 1552723601} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &740851134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &740851135 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &930800600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 930800601} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &930800601 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_LocalRotation: {x: 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: 2135305920} + - {fileID: 62216952} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1138005899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1138005900} + - component: {fileID: 1138005902} + - component: {fileID: 1138005901} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1138005900 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1138005901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + 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: 26489b03725f747f998c39661c2583b5, 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 &1138005902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} +--- !u!1 &1408280580 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1408280581} + - component: {fileID: 1408280583} + - component: {fileID: 1408280582} + - component: {fileID: 1408280584} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1408280581 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1408280582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Touch the screen with your fingers to spawn planets +--- !u!222 &1408280583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} +--- !u!114 &1408280584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1552723600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1552723601} + - component: {fileID: 1552723603} + - component: {fileID: 1552723602} + - component: {fileID: 1552723604} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1552723601 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_LocalRotation: {x: 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: 740851132} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 178, y: 48.2} + m_SizeDelta: {x: 320, y: 68.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1552723602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + 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: 'Input + + + This example shows how to use TouchScript simply as a source of touches with no + gestures in scene.' +--- !u!222 &1552723603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} +--- !u!114 &1552723604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1679844149 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1679844150} + - component: {fileID: 1679844151} + m_Layer: 5 + m_Name: Touch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679844150 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_LocalRotation: {x: 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: 1138005900} + - {fileID: 1408280581} + m_Father: {fileID: 250857271} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1679844151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1764701046 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1764701050} + - component: {fileID: 1764701049} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1764701049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + 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: 5 +--- !u!4 &1764701050 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + m_LocalRotation: {x: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1981142012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1981142013} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1981142013 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1981142012} + m_LocalRotation: {x: 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: 250857271} + m_Father: {fileID: 740851132} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2135305919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2135305920} + - component: {fileID: 2135305921} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2135305920 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_LocalRotation: {x: 0.32484895, y: -0.86744815, z: 0.043405317, w: 0.37432998} + m_LocalPosition: {x: 6.1004148, y: 15.540384, z: -20.566225} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!108 &2135305921 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1.3 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: 3 + m_CustomResolution: -1 + m_Strength: 0.56 + m_Bias: 0.1 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 diff --git a/Source/Assets/TouchScript/Examples/RawInput/RawInput.unity.meta b/Source/Assets/TouchScript/Examples/RawInput/RawInput.unity.meta new file mode 100644 index 000000000..803330be1 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/RawInput.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 9ee061879a6b743808a9f9056a52d885 +DefaultImporter: + userData: "1" diff --git a/Source/Assets/TouchScript/Examples/RawInput/Scripts.meta b/Source/Assets/TouchScript/Examples/RawInput/Scripts.meta new file mode 100644 index 000000000..304d57a8e --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: e4b9e0f55ea14406b96b7bce340eb515 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/RawInput/Scripts/Ball.cs b/Source/Assets/TouchScript/Examples/RawInput/Scripts/Ball.cs new file mode 100644 index 000000000..1a2cfc856 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/Scripts/Ball.cs @@ -0,0 +1,21 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Examples.RawInput +{ + /// + public class Ball : MonoBehaviour + { + public float Speed = 1f; + + private void Update() + { + Speed *= 1.01f; + transform.position += transform.forward * Speed * Time.unscaledDeltaTime; + if (Speed > 1000) Destroy(gameObject); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/RawInput/Scripts/Ball.cs.meta b/Source/Assets/TouchScript/Examples/RawInput/Scripts/Ball.cs.meta new file mode 100644 index 000000000..5205d089a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/Scripts/Ball.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 55895789e0b15491c9f15cf2249a6ccf +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/RawInput/Scripts/Spawner.cs b/Source/Assets/TouchScript/Examples/RawInput/Scripts/Spawner.cs new file mode 100644 index 000000000..a4c1a89ae --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/Scripts/Spawner.cs @@ -0,0 +1,45 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Examples.RawInput +{ + /// + public class Spawner : MonoBehaviour + { + public GameObject Prefab; + + private void OnEnable() + { + if (TouchManager.Instance != null) + { + TouchManager.Instance.PointersPressed += pointersPressedHandler; + } + } + + private void OnDisable() + { + if (TouchManager.Instance != null) + { + TouchManager.Instance.PointersPressed -= pointersPressedHandler; + } + } + + private void spawnPrefabAt(Vector2 position) + { + var obj = Instantiate(Prefab) as GameObject; + obj.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(position.x, position.y, 10)); + obj.transform.rotation = transform.rotation; + } + + private void pointersPressedHandler(object sender, PointerEventArgs e) + { + foreach (var pointer in e.Pointers) + { + spawnPrefabAt(pointer.Position); + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/RawInput/Scripts/Spawner.cs.meta b/Source/Assets/TouchScript/Examples/RawInput/Scripts/Spawner.cs.meta new file mode 100644 index 000000000..afd4668b0 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/RawInput/Scripts/Spawner.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f1cd32130056441f8df44d2168b8816 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps.meta b/Source/Assets/TouchScript/Examples/Taps.meta new file mode 100644 index 000000000..696c18810 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 6a75bd459fd68402786f6ac0232faaf2 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Materials.meta b/Source/Assets/TouchScript/Examples/Taps/Materials.meta new file mode 100644 index 000000000..1531cf73e --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Materials.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c3e7d75d18d25492d9d299d85d2d2ced +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Materials/Crate.mat b/Source/Assets/TouchScript/Examples/Taps/Materials/Crate.mat new file mode 100644 index 000000000..b56df1e5a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Materials/Crate.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Crate + m_Shader: {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 6d7cfa3977727472087d7f24d6aa53d1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Source/Assets/TouchScript/Examples/Taps/Materials/Crate.mat.meta b/Source/Assets/TouchScript/Examples/Taps/Materials/Crate.mat.meta new file mode 100644 index 000000000..170e12db4 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Materials/Crate.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 69c151168e0de486b9df0688ff9e4891 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Prefabs.meta b/Source/Assets/TouchScript/Examples/Taps/Prefabs.meta new file mode 100644 index 000000000..a1ed031b3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Prefabs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 799ba9f51e9ec424e8e04b8624463253 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Prefabs/Cube.prefab b/Source/Assets/TouchScript/Examples/Taps/Prefabs/Cube.prefab new file mode 100644 index 000000000..85b8bef64 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Prefabs/Cube.prefab @@ -0,0 +1,204 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &196116 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 496116} + - 33: {fileID: 3396116} + - 65: {fileID: 6596116} + - 23: {fileID: 2396116} + - 114: {fileID: 11414528} + - 54: {fileID: 5475672} + - 114: {fileID: 11437420} + - 114: {fileID: 11416718} + - 114: {fileID: 11456388} + - 114: {fileID: 11451422} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &496116 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -.00999999978, y: .689999998, z: -3.56999993} + m_LocalScale: {x: 1.58968258, y: 1.58968306, z: 1.58968306} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2396116 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 69c151168e0de486b9df0688ff9e4891, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3396116 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &5475672 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: .0500000007 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &6596116 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &11414528 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7bf1ff301204444cc8f47d17ebe55b33, type: 3} + m_Name: + m_EditorClassIdentifier: + Force: 3 + Particles: {fileID: 19846818, guid: 033d613c5d6544a7685ef80e4dcac8e4, type: 2} +--- !u!114 &11416718 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65c8d97aff62a473e888feae3bec54cd, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + advancedProps: 0 + minTouches: 0 + maxTouches: 0 + combineTouches: 0 + combineTouchesInterval: .300000012 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + timeToPress: 1 + distanceLimit: Infinity +--- !u!114 &11437420 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 622cd163aa68a4795a1b7b919bf72d1c, type: 3} + m_Name: + m_EditorClassIdentifier: + Power: 10 +--- !u!114 &11451422 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a878a6ff128243dfb1d89ca0273f059, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + advancedProps: 0 + minTouches: 0 + maxTouches: 0 + combineTouches: 0 + combineTouchesInterval: .300000012 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + numberOfTapsRequired: 1 + timeLimit: Infinity + distanceLimit: Infinity +--- !u!114 &11456388 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 196116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6be551879cd14d739b0188844ef2c60, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + advancedProps: 0 + minTouches: 0 + maxTouches: 0 + combineTouches: 0 + combineTouchesInterval: .300000012 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + ignoreChildren: 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: 196116} + m_IsPrefabParent: 1 diff --git a/Source/Assets/TouchScript/Examples/Taps/Prefabs/Cube.prefab.meta b/Source/Assets/TouchScript/Examples/Taps/Prefabs/Cube.prefab.meta new file mode 100644 index 000000000..4dfad3fff --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Prefabs/Cube.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 3c294c033fb7140d09b0bd33830617bb +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Prefabs/Particles.prefab b/Source/Assets/TouchScript/Examples/Taps/Prefabs/Particles.prefab new file mode 100644 index 000000000..0ba7c8ff5 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Prefabs/Particles.prefab @@ -0,0 +1,1080 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &146818 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 446818} + - 198: {fileID: 19846818} + - 199: {fileID: 19946818} + - 114: {fileID: 11492830} + m_Layer: 0 + m_Name: Particles + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &446818 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146818} + m_LocalRotation: {x: -.707106829, y: 0, z: 0, w: .707106829} + m_LocalPosition: {x: 0, y: 2.75999999, z: 2.38000011} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &11492830 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146818} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8d231b90191d4ffcae71a475e432b7d, type: 3} + m_Name: + m_EditorClassIdentifier: + Delay: 1 +--- !u!198 &19846818 +ParticleSystem: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146818} + lengthInSec: 1 + startDelay: 0 + speed: 1 + randomSeed: 0 + looping: 1 + prewarm: 0 + playOnAwake: 1 + moveWithTransform: 0 + InitialModule: + enabled: 1 + startLifetime: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + startSpeed: + scalar: 2 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: -1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + startColor: + maxGradient: + key0: + serializedVersion: 2 + rgba: 4294967295 + key1: + serializedVersion: 2 + rgba: 4294967295 + key2: + serializedVersion: 2 + rgba: 0 + key3: + serializedVersion: 2 + rgba: 0 + key4: + serializedVersion: 2 + rgba: 0 + key5: + serializedVersion: 2 + rgba: 0 + key6: + serializedVersion: 2 + rgba: 0 + key7: + serializedVersion: 2 + rgba: 0 + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + key0: + serializedVersion: 2 + rgba: 4294967295 + key1: + serializedVersion: 2 + rgba: 4294967295 + key2: + serializedVersion: 2 + rgba: 0 + key3: + serializedVersion: 2 + rgba: 0 + key4: + serializedVersion: 2 + rgba: 0 + key5: + serializedVersion: 2 + rgba: 0 + key6: + serializedVersion: 2 + rgba: 0 + key7: + serializedVersion: 2 + rgba: 0 + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minColor: + serializedVersion: 2 + rgba: 4294967295 + maxColor: + serializedVersion: 2 + rgba: 4278215064 + minMaxState: 0 + startSize: + scalar: .100000001 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: .299999982 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 3 + startRotation: + scalar: 6.28318501 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 3 + gravityModifier: 1 + inheritVelocity: 0 + maxNumParticles: 1000 + ShapeModule: + serializedVersion: 2 + enabled: 1 + type: 0 + radius: .00999999978 + angle: 25 + length: 5 + boxX: 1 + boxY: 1 + boxZ: 1 + placementMode: 0 + m_Mesh: {fileID: 0} + randomDirection: 0 + EmissionModule: + enabled: 1 + m_Type: 0 + rate: + scalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + cnt0: 100 + cnt1: 30 + cnt2: 30 + cnt3: 30 + time0: 0 + time1: 0 + time2: 0 + time3: 0 + m_BurstCount: 1 + SizeModule: + enabled: 0 + curve: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 1 + RotationModule: + enabled: 0 + curve: + scalar: .785398185 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + ColorModule: + enabled: 1 + gradient: + maxGradient: + key0: + serializedVersion: 2 + rgba: 4294967295 + key1: + serializedVersion: 2 + rgba: 16777215 + key2: + serializedVersion: 2 + rgba: 0 + key3: + serializedVersion: 2 + rgba: 0 + key4: + serializedVersion: 2 + rgba: 0 + key5: + serializedVersion: 2 + rgba: 0 + key6: + serializedVersion: 2 + rgba: 0 + key7: + serializedVersion: 2 + rgba: 0 + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 34117 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + key0: + serializedVersion: 2 + rgba: 4294967295 + key1: + serializedVersion: 2 + rgba: 4294967295 + key2: + serializedVersion: 2 + rgba: 0 + key3: + serializedVersion: 2 + rgba: 0 + key4: + serializedVersion: 2 + rgba: 0 + key5: + serializedVersion: 2 + rgba: 0 + key6: + serializedVersion: 2 + rgba: 0 + key7: + serializedVersion: 2 + rgba: 0 + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minColor: + serializedVersion: 2 + rgba: 4294967295 + maxColor: + serializedVersion: 2 + rgba: 4294967295 + minMaxState: 1 + UVModule: + enabled: 0 + frameOverTime: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 1 + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + randomRow: 1 + VelocityModule: + enabled: 0 + x: + scalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + y: + scalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + z: + scalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + inWorldSpace: 1 + ForceModule: + enabled: 0 + x: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + y: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + z: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + inWorldSpace: 1 + randomizePerFrame: 0 + ExternalForcesModule: + enabled: 0 + multiplier: 1 + ClampVelocityModule: + enabled: 0 + x: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + y: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + z: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + magnitude: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + separateAxis: 0 + inWorldSpace: 0 + dampen: 1 + SizeBySpeedModule: + enabled: 0 + curve: + scalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 1 + range: {x: 0, y: 1} + RotationBySpeedModule: + enabled: 0 + curve: + scalar: .785398185 + maxCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + minMaxState: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + maxGradient: + key0: + serializedVersion: 2 + rgba: 4294967295 + key1: + serializedVersion: 2 + rgba: 4294967295 + key2: + serializedVersion: 2 + rgba: 0 + key3: + serializedVersion: 2 + rgba: 0 + key4: + serializedVersion: 2 + rgba: 0 + key5: + serializedVersion: 2 + rgba: 0 + key6: + serializedVersion: 2 + rgba: 0 + key7: + serializedVersion: 2 + rgba: 0 + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + key0: + serializedVersion: 2 + rgba: 4294967295 + key1: + serializedVersion: 2 + rgba: 4294967295 + key2: + serializedVersion: 2 + rgba: 0 + key3: + serializedVersion: 2 + rgba: 0 + key4: + serializedVersion: 2 + rgba: 0 + key5: + serializedVersion: 2 + rgba: 0 + key6: + serializedVersion: 2 + rgba: 0 + key7: + serializedVersion: 2 + rgba: 0 + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minColor: + serializedVersion: 2 + rgba: 4294967295 + maxColor: + serializedVersion: 2 + rgba: 4294967295 + minMaxState: 1 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + type: 0 + plane0: {fileID: 0} + plane1: {fileID: 0} + plane2: {fileID: 0} + plane3: {fileID: 0} + plane4: {fileID: 0} + plane5: {fileID: 0} + dampen: 0 + bounce: 1 + energyLossOnCollision: 0 + minKillSpeed: 0 + particleRadius: .00999999978 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + quality: 0 + voxelSize: .5 + collisionMessages: 0 + SubModule: + enabled: 0 + subEmitterBirth: {fileID: 0} + subEmitterBirth1: {fileID: 0} + subEmitterCollision: {fileID: 0} + subEmitterCollision1: {fileID: 0} + subEmitterDeath: {fileID: 0} + subEmitterDeath1: {fileID: 0} +--- !u!199 &19946818 +ParticleSystemRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 146818} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 10301, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_MaxParticleSize: .5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_SortMode: 0 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 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: 146818} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Source/Assets/TouchScript/Examples/Taps/Prefabs/Particles.prefab.meta b/Source/Assets/TouchScript/Examples/Taps/Prefabs/Particles.prefab.meta new file mode 100644 index 000000000..a628080e4 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Prefabs/Particles.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 033d613c5d6544a7685ef80e4dcac8e4 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Scripts.meta b/Source/Assets/TouchScript/Examples/Taps/Scripts.meta new file mode 100644 index 000000000..521af83c4 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 83f25a4a2b6b8456d81c50d111776a9b +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Scripts/Break.cs b/Source/Assets/TouchScript/Examples/Taps/Scripts/Break.cs new file mode 100644 index 000000000..4ec3f7129 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Scripts/Break.cs @@ -0,0 +1,105 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using UnityEngine; +using TouchScript.Gestures; +using Random = UnityEngine.Random; + +namespace TouchScript.Examples.Tap +{ + /// + public class Break : MonoBehaviour + { + public float Power = 10.0f; + + private LongPressGesture longPressGesture; + private PressGesture pressGesture; + private MeshRenderer rnd; + private bool growing = false; + private float growingTime = 0; + + private Vector3[] directions = + { + new Vector3(1, -1, 1), + new Vector3(-1, -1, 1), + new Vector3(-1, -1, -1), + new Vector3(1, -1, -1), + new Vector3(1, 1, 1), + new Vector3(-1, 1, 1), + new Vector3(-1, 1, -1), + new Vector3(1, 1, -1) + }; + + private void OnEnable() + { + rnd = GetComponent(); + longPressGesture = GetComponent(); + pressGesture = GetComponent(); + + longPressGesture.StateChanged += longPressedHandler; + pressGesture.Pressed += pressedHandler; + } + + private void OnDisable() + { + longPressGesture.StateChanged -= longPressedHandler; + pressGesture.Pressed -= pressedHandler; + } + + private void Update() + { + if (growing) + { + growingTime += Time.unscaledDeltaTime; + rnd.material.color = Color.Lerp(Color.white, Color.red, growingTime); + } + } + + private void startGrowing() + { + growing = true; + } + + private void stopGrowing() + { + growing = false; + growingTime = 0; + rnd.material.color = Color.white; + } + + private void pressedHandler(object sender, EventArgs e) + { + startGrowing(); + } + + private void longPressedHandler(object sender, GestureStateChangeEventArgs e) + { + if (e.State == Gesture.GestureState.Recognized) + { + // if we are not too small + if (transform.localScale.x > 0.05f) + { + // break this cube into 8 parts + for (int i = 0; i < 8; i++) + { + var obj = Instantiate(gameObject) as GameObject; + var cube = obj.transform; + cube.parent = transform.parent; + cube.name = "Cube"; + cube.localScale = 0.5f * transform.localScale; + cube.position = transform.TransformPoint(directions[i] / 4); + cube.GetComponent().AddForce(Power * Random.insideUnitSphere, ForceMode.Impulse); + cube.GetComponent().material.color = Color.white; + } + Destroy(gameObject); + } + } + else if (e.State == Gesture.GestureState.Failed) + { + stopGrowing(); + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Taps/Scripts/Break.cs.meta b/Source/Assets/TouchScript/Examples/Taps/Scripts/Break.cs.meta new file mode 100644 index 000000000..f8bba0309 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Scripts/Break.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 622cd163aa68a4795a1b7b919bf72d1c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Scripts/Kick.cs b/Source/Assets/TouchScript/Examples/Taps/Scripts/Kick.cs new file mode 100644 index 000000000..43029cc9d --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Scripts/Kick.cs @@ -0,0 +1,44 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Gestures; + +namespace TouchScript.Examples.Tap +{ + /// + public class Kick : MonoBehaviour + { + public float Force = 3f; + public ParticleSystem Particles; + + private TapGesture gesture; + private Rigidbody rb; + private Camera activeCamera; + + private void OnEnable() + { + rb = GetComponent(); + activeCamera = GameObject.Find("Scene Camera").GetComponent(); + gesture = GetComponent(); + gesture.Tapped += tappedHandler; + } + + private void OnDisable() + { + gesture.Tapped -= tappedHandler; + } + + private void tappedHandler(object sender, System.EventArgs e) + { + var ray = activeCamera.ScreenPointToRay(gesture.ScreenPosition); + RaycastHit hit; + if (Physics.Raycast(ray, out hit) && hit.transform == transform) + { + rb.AddForceAtPosition(ray.direction * Force, hit.point, ForceMode.Impulse); + Instantiate(Particles, hit.point, Quaternion.identity); + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Taps/Scripts/Kick.cs.meta b/Source/Assets/TouchScript/Examples/Taps/Scripts/Kick.cs.meta new file mode 100644 index 000000000..294ec71cd --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Scripts/Kick.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7bf1ff301204444cc8f47d17ebe55b33 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Scripts/Spawn.cs b/Source/Assets/TouchScript/Examples/Taps/Scripts/Spawn.cs new file mode 100644 index 000000000..29fd674f0 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Scripts/Spawn.cs @@ -0,0 +1,41 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Gestures; +using TouchScript.Hit; +using UnityEngine; + +namespace TouchScript.Examples.Tap +{ + /// + public class Spawn : MonoBehaviour + { + public Transform CubePrefab; + public Transform Container; + public float Scale = .5f; + + private void OnEnable() + { + GetComponent().Tapped += tappedHandler; + } + + private void OnDisable() + { + GetComponent().Tapped -= tappedHandler; + } + + private void tappedHandler(object sender, EventArgs e) + { + var gesture = sender as TapGesture; + HitData hit = gesture.GetScreenPositionHitData(); + + var cube = Instantiate(CubePrefab) as Transform; + cube.parent = Container; + cube.name = "Cube"; + cube.localScale = Vector3.one * Scale * cube.localScale.x; + cube.position = hit.Point + hit.Normal * .5f; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/Taps/Scripts/Spawn.cs.meta b/Source/Assets/TouchScript/Examples/Taps/Scripts/Spawn.cs.meta new file mode 100644 index 000000000..7d17e2a91 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Scripts/Spawn.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f0dccb7916075489e8e35e86d097d75b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/Taps/Taps.unity b/Source/Assets/TouchScript/Examples/Taps/Taps.unity new file mode 100644 index 000000000..f5c2aacd0 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Taps.unity @@ -0,0 +1,1929 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: a07fadb24ea940240afba3afc1a692cc, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 1 + m_BakeResolution: 50 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &62216951 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 62216952} + - component: {fileID: 62216957} + - component: {fileID: 62216956} + - component: {fileID: 62216955} + - component: {fileID: 62216954} + - component: {fileID: 62216953} + m_Layer: 0 + m_Name: Scene Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &62216952 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_LocalRotation: {x: 0.26945794, y: 0, z: 0, w: 0.96301216} + m_LocalPosition: {x: -1.11, y: 10.1, z: -17.45} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 31.264, y: 0, z: 0} +--- !u!114 &62216953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e5768c36d1bb4acea50bd233372843a, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Scene Camera + basicEditor: 1 + advancedProps: 0 + hitProps: 0 + hit3DObjects: 1 + hit2DObjects: 0 + hitWorldSpaceUI: 0 + hitScreenSpaceUI: 0 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + useHitFilters: 0 +--- !u!81 &62216954 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!124 &62216955 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!92 &62216956 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 +--- !u!20 &62216957 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 62216951} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 40 + field of view: 30 + orthographic: 0 + orthographic size: 100 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &110191049 stripped +Transform: + m_PrefabParentObject: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_PrefabInternal: {fileID: 786000067} +--- !u!1 &242343085 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 242343086} + - component: {fileID: 242343088} + - component: {fileID: 242343087} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &242343086 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 242343085} + m_LocalRotation: {x: 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: 1962593004} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &242343087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 242343085} + 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: c67d11cfbeb514b63893cab03e87140c, 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 &242343088 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 242343085} +--- !u!1 &250857269 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 250857271} + - component: {fileID: 250857270} + m_Layer: 5 + m_Name: List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &250857270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + 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: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!224 &250857271 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 250857269} + m_LocalRotation: {x: 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: 922779737} + - {fileID: 1679844150} + - {fileID: 1962593004} + m_Father: {fileID: 1981142013} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &279059992 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 312263520} + m_Modifications: + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.x + value: -1.13 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.y + value: 2.3900001 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.z + value: -3.56999993 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 11414528, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: Force + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.x + value: 1.58968258 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.y + value: 1.58968306 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.z + value: 1.58968306 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &312263519 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 312263520} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &312263520 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 312263519} + m_LocalRotation: {x: 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: 497908867} + - {fileID: 769487672} + - {fileID: 756017745} + - {fileID: 1726188318} + - {fileID: 110191049} + - {fileID: 1411274273} + m_Father: {fileID: 930800601} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &497908867 stripped +Transform: + m_PrefabParentObject: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_PrefabInternal: {fileID: 1411228864} +--- !u!1001 &543251036 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400002, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + propertyPath: layers.Array.data[0] + value: + objectReference: {fileID: 62216953} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1c4dd8a13f501b04f84fe824120f70bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &584553676 stripped +GameObject: + m_PrefabParentObject: {fileID: 100004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!4 &584553677 stripped +Transform: + m_PrefabParentObject: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!114 &584553678 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 584553676} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a878a6ff128243dfb1d89ca0273f059, type: 3} + m_Name: + m_EditorClassIdentifier: + OnStateChange: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + basicEditor: 0 + generalProps: 0 + limitsProps: 0 + advancedProps: 0 + minPointers: 0 + maxPointers: 0 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + sendStateChangeEvents: 0 + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + OnTap: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.Gestures.Gesture+GestureEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + numberOfTapsRequired: 2 + timeLimit: 1 + distanceLimit: Infinity + combinePointers: 0 + combinePointersInterval: 0.3 +--- !u!114 &584553679 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 584553676} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f0dccb7916075489e8e35e86d097d75b, type: 3} + m_Name: + m_EditorClassIdentifier: + CubePrefab: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + Container: {fileID: 312263520} + Scale: 1 +--- !u!1001 &599866430 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 930800601} + m_Modifications: + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalPosition.x + value: -0.04 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalPosition.y + value: -12.97 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalPosition.z + value: 0.26 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.y + value: 0.36056674 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9327335 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalScale.x + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalScale.y + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_LocalScale.z + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 100004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 9500000, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_ParentPrefab: {fileID: 100100000, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_IsPrefabParent: 0 +--- !u!1 &721853795 stripped +GameObject: + m_PrefabParentObject: {fileID: 100006, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!64 &721853799 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 721853795} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 1 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 4300006, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} +--- !u!1 &740851131 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 740851132} + - component: {fileID: 740851135} + - component: {fileID: 740851134} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &740851132 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + 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_Children: + - {fileID: 1981142013} + - {fileID: 1552723601} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &740851134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 640, y: 480} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &740851135 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740851131} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!4 &756017745 stripped +Transform: + m_PrefabParentObject: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_PrefabInternal: {fileID: 1635074073} +--- !u!4 &769487672 stripped +Transform: + m_PrefabParentObject: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_PrefabInternal: {fileID: 1224023293} +--- !u!1001 &786000067 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 312263520} + m_Modifications: + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.x + value: 1.08000004 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.y + value: 2.3900001 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.z + value: -3.56999993 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 11414528, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: Force + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.x + value: 1.58968258 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.y + value: 1.58968306 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.z + value: 1.58968306 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &848195253 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 312263520} + m_Modifications: + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.x + value: -.0900000036 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.y + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.z + value: -3.56999993 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &922779735 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 922779737} + - component: {fileID: 922779736} + m_Layer: 5 + m_Name: Double tap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &922779736 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 922779735} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!224 &922779737 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 922779735} + m_LocalRotation: {x: 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: 1149683276} + - {fileID: 1166494019} + m_Father: {fileID: 250857271} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &930800600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 930800601} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &930800601 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930800600} + m_LocalRotation: {x: 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: 2135305920} + - {fileID: 62216952} + - {fileID: 584553677} + - {fileID: 312263520} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1138005899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1138005900} + - component: {fileID: 1138005902} + - component: {fileID: 1138005901} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1138005900 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1138005901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} + 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: 26489b03725f747f998c39661c2583b5, 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 &1138005902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1138005899} +--- !u!1 &1149683275 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1149683276} + - component: {fileID: 1149683278} + - component: {fileID: 1149683277} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1149683276 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1149683275} + m_LocalRotation: {x: 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: 922779737} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 31, y: 0} + m_SizeDelta: {x: 60, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1149683277 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1149683275} + 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: 5313b5292084b4cb9a1118b00328f971, 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 &1149683278 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1149683275} +--- !u!1 &1166494018 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1166494019} + - component: {fileID: 1166494022} + - component: {fileID: 1166494021} + - component: {fileID: 1166494020} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1166494019 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1166494018} + m_LocalRotation: {x: 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: 922779737} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1166494020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1166494018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &1166494021 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1166494018} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Double tap the table + + to spawn a new crate' +--- !u!222 &1166494022 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1166494018} +--- !u!1001 &1224023293 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 312263520} + m_Modifications: + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.x + value: 2.24000001 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.y + value: .689999998 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.z + value: -3.56999993 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11414528, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: Force + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.x + value: 1.58968258 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.y + value: 1.58968306 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.z + value: 1.58968306 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1271849413 stripped +GameObject: + m_PrefabParentObject: {fileID: 100008, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} + m_PrefabInternal: {fileID: 599866430} +--- !u!64 &1271849417 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1271849413} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 1 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 4300004, guid: 648250201fabe574b8591ee45cddcf4a, type: 3} +--- !u!1 &1399100003 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1399100004} + - component: {fileID: 1399100006} + - component: {fileID: 1399100005} + - component: {fileID: 1399100007} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1399100004 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} + m_LocalRotation: {x: 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: 1962593004} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1399100005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Hold a crate \nto blow it up" +--- !u!222 &1399100006 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} +--- !u!114 &1399100007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1399100003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1 &1408280580 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1408280581} + - component: {fileID: 1408280583} + - component: {fileID: 1408280582} + - component: {fileID: 1408280584} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1408280581 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_LocalRotation: {x: 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: 1679844150} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 177.5, y: 0} + m_SizeDelta: {x: 204.7, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1408280582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Tap a crate \nto kick it" +--- !u!222 &1408280583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} +--- !u!114 &1408280584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1408280580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1001 &1411228864 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 312263520} + m_Modifications: + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.x + value: -.00999999978 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.y + value: .689999998 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.z + value: -3.56999993 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &1411274273 stripped +Transform: + m_PrefabParentObject: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_PrefabInternal: {fileID: 848195253} +--- !u!1 &1552723600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1552723601} + - component: {fileID: 1552723603} + - component: {fileID: 1552723602} + - component: {fileID: 1552723604} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1552723601 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_LocalRotation: {x: 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: 740851132} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 178, y: 78} + m_SizeDelta: {x: 320, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1552723602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + 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: "Taps\n\nThis example shows how to use TapGesture \nand LongPressGesture.\n\nCheck + the Cube prefab." +--- !u!222 &1552723603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} +--- !u!114 &1552723604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1552723600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!1001 &1635074073 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 312263520} + m_Modifications: + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.x + value: -2.22000003 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.y + value: .689999998 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalPosition.z + value: -3.56999993 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11414528, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: Force + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.x + value: 1.58968258 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.y + value: 1.58968306 + objectReference: {fileID: 0} + - target: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + propertyPath: m_LocalScale.z + value: 1.58968306 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1679844149 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1679844150} + - component: {fileID: 1679844151} + m_Layer: 5 + m_Name: Tap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679844150 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_LocalRotation: {x: 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: 1138005900} + - {fileID: 1408280581} + m_Father: {fileID: 250857271} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1679844151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679844149} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!4 &1726188318 stripped +Transform: + m_PrefabParentObject: {fileID: 496116, guid: 3c294c033fb7140d09b0bd33830617bb, type: 2} + m_PrefabInternal: {fileID: 279059992} +--- !u!1 &1764701046 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1764701050} + - component: {fileID: 1764701049} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1764701049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + 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: 5 +--- !u!4 &1764701050 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1764701046} + m_LocalRotation: {x: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1772227325 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22401058, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: useDPI + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: c0dc5781cae4a6348b42ea6b818a3f9c, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1962593003 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1962593004} + - component: {fileID: 1962593005} + m_Layer: 5 + m_Name: Hold + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962593004 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962593003} + m_LocalRotation: {x: 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: 242343086} + - {fileID: 1399100004} + m_Father: {fileID: 250857271} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962593005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962593003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 60 + m_PreferredWidth: -1 + m_PreferredHeight: 60 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!1 &1981142012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1981142013} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1981142013 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1981142012} + m_LocalRotation: {x: 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: 250857271} + m_Father: {fileID: 740851132} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25263783, y: 1} + m_AnchoredPosition: {x: 5, y: 50} + m_SizeDelta: {x: -10, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2135305919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2135305920} + - component: {fileID: 2135305921} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2135305920 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_LocalRotation: {x: 0.24194291, y: -0.49854365, z: 0.22107579, w: 0.80252314} + m_LocalPosition: {x: 6.1004148, y: 15.540384, z: -20.566225} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 930800601} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 37.5, y: -60.899998, z: 8.2324} +--- !u!108 &2135305921 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2135305919} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1.3 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: 3 + m_CustomResolution: -1 + m_Strength: 0.56 + m_Bias: 0.1 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 diff --git a/Source/Assets/TouchScript/Examples/Taps/Taps.unity.meta b/Source/Assets/TouchScript/Examples/Taps/Taps.unity.meta new file mode 100644 index 000000000..38e69afdf --- /dev/null +++ b/Source/Assets/TouchScript/Examples/Taps/Taps.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 5013fa58cea314376b273bd8905581f4 +DefaultImporter: + userData: "2" diff --git a/Source/Assets/TouchScript/Examples/_misc.meta b/Source/Assets/TouchScript/Examples/_misc.meta new file mode 100644 index 000000000..f0f8e9021 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 582fa5a8626f94e5a81d0e96dad79cd6 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Fonts.meta b/Source/Assets/TouchScript/Examples/_misc/Fonts.meta new file mode 100644 index 000000000..1bcb860ad --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Fonts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 30b6b9c7cc86046c5b991089c741f63f +folderAsset: yes +timeCreated: 1470733534 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Fonts/LuckiestGuy.ttf b/Source/Assets/TouchScript/Examples/_misc/Fonts/LuckiestGuy.ttf new file mode 100644 index 000000000..01b535af2 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Fonts/LuckiestGuy.ttf differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Fonts/LuckiestGuy.ttf.meta b/Source/Assets/TouchScript/Examples/_misc/Fonts/LuckiestGuy.ttf.meta new file mode 100644 index 000000000..2e769a68c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Fonts/LuckiestGuy.ttf.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: e423173afdece4d3fa49ed8e89391fce +timeCreated: 1470733538 +licenseType: Pro +TrueTypeFontImporter: + serializedVersion: 2 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 1 + characterPadding: 0 + includeFontData: 1 + use2xBehaviour: 0 + fontNames: [] + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models.meta b/Source/Assets/TouchScript/Examples/_misc/Models.meta new file mode 100644 index 000000000..43966f6d8 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: a186b8594f54f4edb8f623197758b418 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard.meta new file mode 100644 index 000000000..adf8d71bb --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 668c30b12d4544015bddd90d5654fff6 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Board.prefab b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Board.prefab new file mode 100644 index 000000000..1b5de1154 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Board.prefab @@ -0,0 +1,156 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &119512 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 419512} + - 33: {fileID: 3319510} + - 23: {fileID: 2319510} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119514 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 419514} + - 33: {fileID: 3319512} + - 23: {fileID: 2319512} + - 65: {fileID: 6519510} + - 54: {fileID: 5419510} + m_Layer: 0 + m_Name: Board + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &419512 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119512} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -.109999999, z: 0} + m_LocalScale: {x: 10, y: .200000003, z: 10} + m_Children: [] + m_Father: {fileID: 419514} + m_RootOrder: 0 +--- !u!4 &419514 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119514} + m_LocalRotation: {x: 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: 419512} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2319510 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119512} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: bade3b3ccc3024624b44815e95a6af4e, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2319512 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119514} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: c39504b52f7f64f26b5762f1bb63f09c, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3319510 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119512} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3319512 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119514} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &5419510 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119514} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: .0500000007 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 14 + m_CollisionDetection: 0 +--- !u!65 &6519510 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119514} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 10, y: .200000003, z: 10} + m_Center: {x: 0, y: -.100000001, z: 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: 119514} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Board.prefab.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Board.prefab.meta new file mode 100644 index 000000000..49afc055b --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Board.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 4af91eff6c67b4995be4765a62f7eb5d +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.mat b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.mat new file mode 100644 index 000000000..4cd9be7a9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.mat @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: CheckerDark + m_Shader: {fileID: 3, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 0330d1f1771374fae9044385bd891906, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.mat.meta new file mode 100644 index 000000000..da147e449 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: b5c4be3614b4447869f4bfd2124b81c0 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.prefab b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.prefab new file mode 100644 index 000000000..9360a00b6 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.prefab @@ -0,0 +1,154 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &191238 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 491238} + - 33: {fileID: 3391238} + - 23: {fileID: 2391238} + - 64: {fileID: 6491238} + - 54: {fileID: 5484962} + - 114: {fileID: 11416732} + - 114: {fileID: 11409928} + - 114: {fileID: 11499326} + m_Layer: 0 + m_Name: CheckerDark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &491238 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191238} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.47300005, y: .200000003, z: 3.54399991} + m_LocalScale: {x: .899999976, y: .200000003, z: .899999976} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2391238 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191238} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: b5c4be3614b4447869f4bfd2124b81c0, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3391238 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191238} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &5484962 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191238} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: .0500000007 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 2 +--- !u!64 &6491238 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191238} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 1 + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &11409928 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191238} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 60db96ea91c9945beaa1406a5a90dd9b, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11416732 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191238} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + advancedProps: 0 + minTouches: 0 + maxTouches: 0 + combineTouches: 0 + combineTouchesInterval: .300000012 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + type: 1 + minScreenPointsDistance: .5 + screenTransformThreshold: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 0} +--- !u!114 &11499326 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 191238} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, 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: 191238} + m_IsPrefabParent: 1 diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.prefab.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.prefab.meta new file mode 100644 index 000000000..171aa0f5e --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerDark.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: bb0a05fd2c374477cba1d93212b4600c +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.mat b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.mat new file mode 100644 index 000000000..da9c6bc0e --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.mat @@ -0,0 +1,38 @@ +%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: CheckerLight + m_Shader: {fileID: 3, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 881cb0898be804c0f9b76b1c40936c48, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.mat.meta new file mode 100644 index 000000000..70f5a7bd9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: c7ee63cfba2ae4963a15013267a4e9f6 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.prefab b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.prefab new file mode 100644 index 000000000..caa826817 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.prefab @@ -0,0 +1,154 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &137898 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 437898} + - 33: {fileID: 3337898} + - 23: {fileID: 2337898} + - 64: {fileID: 6437898} + - 54: {fileID: 5442042} + - 114: {fileID: 11490626} + - 114: {fileID: 11489890} + - 114: {fileID: 11427732} + m_Layer: 0 + m_Name: CheckerLight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &437898 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137898} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.50999999, y: .200000003, z: -3.53999996} + m_LocalScale: {x: .899999976, y: .200000003, z: .899999976} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2337898 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137898} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: c7ee63cfba2ae4963a15013267a4e9f6, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3337898 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137898} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &5442042 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137898} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: .0500000007 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 2 +--- !u!64 &6437898 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137898} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 1 + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &11427732 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 978a486d8ecf8437cbb87e8534908895, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11489890 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 60db96ea91c9945beaa1406a5a90dd9b, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11490626 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 137898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11ea9930ecb674732bee27116520fad8, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 0 + advancedProps: 0 + minTouches: 0 + maxTouches: 0 + combineTouches: 0 + combineTouchesInterval: .300000012 + useSendMessage: 0 + sendStateChangeMessages: 0 + sendMessageTarget: {fileID: 0} + requireGestureToFail: {fileID: 0} + friendlyGestures: [] + type: 1 + minScreenPointsDistance: .5 + screenTransformThreshold: 0 + projection: 2 + projectionPlaneNormal: {x: 0, y: 1, z: 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: 137898} + m_IsPrefabParent: 1 diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.prefab.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.prefab.meta new file mode 100644 index 000000000..101c65c4a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerLight.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: b4fd857376bb94265b47bcf5b50f67fa +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Checkerboard.mat b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Checkerboard.mat new file mode 100644 index 000000000..e68521e18 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Checkerboard.mat @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Checkerboard + m_Shader: {fileID: 3, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 6808d445eddc142328b56a1465b299d9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .140957177 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: .682758629, b: 0, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Checkerboard.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Checkerboard.mat.meta new file mode 100644 index 000000000..4765ab063 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/Checkerboard.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: c39504b52f7f64f26b5762f1bb63f09c +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerboardBottom.mat b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerboardBottom.mat new file mode 100644 index 000000000..32ff7c9e2 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerboardBottom.mat @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: CheckerboardBottom + m_Shader: {fileID: 3, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + 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} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: .647058845, g: .313725501, b: 0, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: .724137902, b: 0, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerboardBottom.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerboardBottom.mat.meta new file mode 100644 index 000000000..08c12a0e1 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/CheckerboardBottom.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: bade3b3ccc3024624b44815e95a6af4e +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_dark.jpg b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_dark.jpg new file mode 100644 index 000000000..6f95c8c6c Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_dark.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_dark.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_dark.jpg.meta new file mode 100644 index 000000000..a20be279c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_dark.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 0330d1f1771374fae9044385bd891906 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_light.jpg b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_light.jpg new file mode 100644 index 000000000..9a81dd72c Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_light.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_light.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_light.jpg.meta new file mode 100644 index 000000000..53051c67e --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checker_light.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 881cb0898be804c0f9b76b1c40936c48 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checkerboard.jpg b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checkerboard.jpg new file mode 100644 index 000000000..34df7ba3a Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checkerboard.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checkerboard.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checkerboard.jpg.meta new file mode 100644 index 000000000..ce98f06d2 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Checkerboard/checkerboard.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 6808d445eddc142328b56a1465b299d9 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Table.meta new file mode 100644 index 000000000..b85c4c273 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Table.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 2da83ffad7a6c654c98ee1390ea92617 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials.meta new file mode 100644 index 000000000..fadd9eafc --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 088e18c0008f50c42873ccae076318a4 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.jpg b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.jpg new file mode 100644 index 000000000..076cc57b8 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.jpg.meta new file mode 100644 index 000000000..25b971351 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 1bd4269a1e460f449bb6752f18f8bcaa +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.mat b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.mat new file mode 100644 index 000000000..8a43c5137 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.mat @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: table_chair_01 + m_Shader: {fileID: 2, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 1bd4269a1e460f449bb6752f18f8bcaa, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 63d1a0496dfc6704fade73b805f83072, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: .729497612, b: .588235259, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.mat.meta new file mode 100644 index 000000000..7aaa36c2f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 658d0a6601bdfc54e9bffb7089fcbe11 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01_norms.jpg b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01_norms.jpg new file mode 100644 index 000000000..15a008be3 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01_norms.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01_norms.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01_norms.jpg.meta new file mode 100644 index 000000000..0006dd6be --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Table/Materials/table_chair_01_norms.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 63d1a0496dfc6704fade73b805f83072 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table/table_and_chair.FBX b/Source/Assets/TouchScript/Examples/_misc/Models/Table/table_and_chair.FBX new file mode 100644 index 000000000..512b95350 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Models/Table/table_and_chair.FBX differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Models/Table/table_and_chair.FBX.meta b/Source/Assets/TouchScript/Examples/_misc/Models/Table/table_and_chair.FBX.meta new file mode 100644 index 000000000..331858531 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Models/Table/table_and_chair.FBX.meta @@ -0,0 +1,82 @@ +fileFormatVersion: 2 +guid: 648250201fabe574b8591ee45cddcf4a +ModelImporter: + serializedVersion: 16 + fileIDToRecycleName: + 100000: Object018 + 100002: Object022 + 100004: //RootNode + 100006: chair + 100008: table + 400000: Object018 + 400002: Object022 + 400004: //RootNode + 400006: chair + 400008: table + 2300000: Object018 + 2300002: Object022 + 2300004: chair + 2300006: table + 3300000: Object018 + 3300002: Object022 + 3300004: chair + 3300006: table + 4300000: Object018 + 4300002: Object022 + 4300004: table + 4300006: chair + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 2 + additionalBone: 1 + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts.meta b/Source/Assets/TouchScript/Examples/_misc/Scripts.meta new file mode 100644 index 000000000..5b13e3c1f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d1dcf8eeadac74f178853777dd3e966f +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/Checker.cs b/Source/Assets/TouchScript/Examples/_misc/Scripts/Checker.cs new file mode 100644 index 000000000..3782cf0d8 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/Checker.cs @@ -0,0 +1,58 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using UnityEngine; +using TouchScript.Behaviors; +using TouchScript.Gestures.TransformGestures; + +namespace TouchScript.Examples +{ + /// + /// This component controlls the movement of a Checker on the Board. + /// + public class Checker : MonoBehaviour + { + private TransformGesture gesture; + private Transformer transformer; + private Rigidbody rb; + + private void OnEnable() + { + // The gesture + gesture = GetComponent(); + // Transformer component actually MOVES the object + transformer = GetComponent(); + rb = GetComponent(); + + transformer.enabled = false; + rb.isKinematic = false; + + // Subscribe to gesture events + gesture.TransformStarted += transformStartedHandler; + gesture.TransformCompleted += transformCompletedHandler; + } + + private void OnDisable() + { + // Unsubscribe from gesture events + gesture.TransformStarted -= transformStartedHandler; + gesture.TransformCompleted -= transformCompletedHandler; + } + + private void transformStartedHandler(object sender, EventArgs e) + { + // When movement starts we need to tell physics that now WE are moving this object manually + rb.isKinematic = true; + transformer.enabled = true; + } + + private void transformCompletedHandler(object sender, EventArgs e) + { + transformer.enabled = false; + rb.isKinematic = false; + rb.WakeUp(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/Checker.cs.meta b/Source/Assets/TouchScript/Examples/_misc/Scripts/Checker.cs.meta new file mode 100644 index 000000000..37a0baed2 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/Checker.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 60db96ea91c9945beaa1406a5a90dd9b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/ExamplesList.cs b/Source/Assets/TouchScript/Examples/_misc/Scripts/ExamplesList.cs new file mode 100644 index 000000000..47f0ff31e --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/ExamplesList.cs @@ -0,0 +1,22 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +/// +public class ExamplesList : MonoBehaviour +{ + public RectTransform Content; + + void Start() + { + gameObject.SetActive(false); + } + + public void ShowHide() + { + gameObject.SetActive(!gameObject.activeSelf); + Content.localPosition = Vector3.zero; + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/ExamplesList.cs.meta b/Source/Assets/TouchScript/Examples/_misc/Scripts/ExamplesList.cs.meta new file mode 100644 index 000000000..3ce92d5e7 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/ExamplesList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1d184134ce2b24f92834c7bd77c9dcd8 +timeCreated: 1470770698 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/Highlight.cs b/Source/Assets/TouchScript/Examples/_misc/Scripts/Highlight.cs new file mode 100644 index 000000000..a7c4b7e5b --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/Highlight.cs @@ -0,0 +1,42 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Behaviors.UI; + +/// +public class Highlight : MonoBehaviour +{ + public Color OverColor = Color.red; + + private OverHelper over; + private MeshRenderer r; + private Material oldMaterial; + + private void OnEnable() + { + over = GetComponent(); + r = GetComponent(); + oldMaterial = r.sharedMaterial; + + over.Over += overHandler; + over.Out += outHandler; + } + + private void OnDisable() + { + over.Over -= overHandler; + over.Out -= outHandler; + } + + void overHandler(object sender, System.EventArgs e) + { + r.material.color = OverColor; + } + + void outHandler(object sender, System.EventArgs e) + { + r.material = oldMaterial; + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/Highlight.cs.meta b/Source/Assets/TouchScript/Examples/_misc/Scripts/Highlight.cs.meta new file mode 100644 index 000000000..967ec9b42 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/Highlight.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f91ca003806bd40f7938a006eee71921 +timeCreated: 1468203566 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/KillMe.cs b/Source/Assets/TouchScript/Examples/_misc/Scripts/KillMe.cs new file mode 100644 index 000000000..52c84878a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/KillMe.cs @@ -0,0 +1,21 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using System.Collections; + +namespace TouchScript.Examples +{ + /// + public class KillMe : MonoBehaviour + { + public float Delay = 1f; + + private IEnumerator Start() + { + if (Delay != 0) yield return new WaitForSeconds(Delay); + Destroy(gameObject); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/KillMe.cs.meta b/Source/Assets/TouchScript/Examples/_misc/Scripts/KillMe.cs.meta new file mode 100644 index 000000000..fd779306f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/KillMe.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8d231b90191d4ffcae71a475e432b7d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/Runner.cs b/Source/Assets/TouchScript/Examples/_misc/Scripts/Runner.cs new file mode 100644 index 000000000..115c549b9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/Runner.cs @@ -0,0 +1,131 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using TouchScript.Layers; +using System.Collections; +#if UNITY_EDITOR +using UnityEditor; +using System; +#endif +#if UNITY_5_3_OR_NEWER +using UnityEngine.SceneManagement; + +#endif + +namespace TouchScript.Examples +{ + /// + public class Runner : MonoBehaviour + { + private static Runner instance; + private TouchLayer layer; + + public void LoadLevel(string name) + { +#if UNITY_5_3_OR_NEWER + SceneManager.LoadScene(name); +#else + Application.LoadLevel(name); +#endif + } + + public void LoadNextLevel() + { +#if UNITY_5_3_OR_NEWER + SceneManager.LoadScene((SceneManager.GetActiveScene().buildIndex + 1) % SceneManager.sceneCountInBuildSettings); +#else + Application.LoadLevel((Application.loadedLevel + 1)%Application.levelCount); +#endif + } + + public void LoadPreviousLevel() + { +#if UNITY_5_3_OR_NEWER + var newLevel = SceneManager.GetActiveScene().buildIndex - 1; + if (newLevel == 0) newLevel = SceneManager.sceneCountInBuildSettings - 1; + SceneManager.LoadScene(newLevel); +#else + var newLevel = Application.loadedLevel - 1; + if (newLevel == 0) newLevel = Application.levelCount - 1; + Application.LoadLevel(newLevel); +#endif + } + + private void Start() + { + if (instance == null) + { + instance = this; + DontDestroyOnLoad(gameObject); + } + + layer = GetComponent(); + +#if UNITY_EDITOR + var guids = AssetDatabase.FindAssets("t:Scene", new string[] {"Assets/TouchScript/Examples"}); + if (EditorBuildSettings.scenes.Length != guids.Length) + { + if (EditorUtility.DisplayDialog("Add Example Scenes to Build Settings?", + "You are running Examples scene but example scenes are not added to Build Settings. Do you want to add them now?", "Yes", "No")) + { + var importers = Array.ConvertAll(guids, (string guid) => AssetImporter.GetAtPath(AssetDatabase.GUIDToAssetPath(guid))); + Array.Sort(importers, (AssetImporter a, AssetImporter b) => + { + var i1 = string.IsNullOrEmpty(a.userData) ? 42 : Convert.ToInt32(a.userData); + var i2 = string.IsNullOrEmpty(b.userData) ? 42 : Convert.ToInt32(b.userData); + if (i1 == i2) return 0; + return i1 - i2; + }); + EditorBuildSettings.scenes = Array.ConvertAll(importers, (AssetImporter i) => new EditorBuildSettingsScene(i.assetPath, true)); + EditorUtility.DisplayDialog("Success", "Example scenes were added to Build Settings. Please restart Play Mode.", "OK"); + } + } +#endif + +#if UNITY_5_4_OR_NEWER + SceneManager.sceneLoaded += sceneLoadedHandler; +#endif + +#if UNITY_5_3_OR_NEWER + if (SceneManager.GetActiveScene().name == "Examples" && SceneManager.sceneCountInBuildSettings > 1) +#else + if (Application.loadedLevelName == "Examples" && Application.levelCount > 1) +#endif + { + LoadNextLevel(); + } + } + + private void OnDestroy() + { +#if UNITY_5_4_OR_NEWER + SceneManager.sceneLoaded -= sceneLoadedHandler; +#endif + } + + private void Update() + { + if (Input.GetKeyDown(KeyCode.Escape)) Application.Quit(); + } + +#if UNITY_5_4_OR_NEWER + private void sceneLoadedHandler(Scene scene, LoadSceneMode mode) + { + StartCoroutine(resetUILayer()); + } +#else + private void OnLevelWasLoaded(int num) + { + StartCoroutine(resetUILayer()); + } +#endif + + private IEnumerator resetUILayer() + { + yield return new WaitForEndOfFrame(); + LayerManager.Instance.AddLayer(layer, 0); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/Runner.cs.meta b/Source/Assets/TouchScript/Examples/_misc/Scripts/Runner.cs.meta new file mode 100644 index 000000000..f00e8c52e --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/Runner.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d0145ec13410624f9b2939e5d5a99be +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/ShowMe.cs b/Source/Assets/TouchScript/Examples/_misc/Scripts/ShowMe.cs new file mode 100644 index 000000000..8f3a5d564 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/ShowMe.cs @@ -0,0 +1,18 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using System.Collections; + +/// +public class ShowMe : MonoBehaviour +{ + IEnumerator Start() + { + var canvas = GetComponent(); + canvas.enabled = false; + yield return new WaitForSeconds(.5f); + canvas.enabled = true; + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Examples/_misc/Scripts/ShowMe.cs.meta b/Source/Assets/TouchScript/Examples/_misc/Scripts/ShowMe.cs.meta new file mode 100644 index 000000000..01f169f9a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Scripts/ShowMe.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c534619fb2794426fb1495e64ec4bcb7 +timeCreated: 1470770477 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Shaders.meta b/Source/Assets/TouchScript/Examples/_misc/Shaders.meta new file mode 100644 index 000000000..ab03c748f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Shaders.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 4bdbadc7b966742fc9ee76e195be89ba +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Shaders/BorderDiffuse.shader b/Source/Assets/TouchScript/Examples/_misc/Shaders/BorderDiffuse.shader new file mode 100644 index 000000000..c6c7716cb --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Shaders/BorderDiffuse.shader @@ -0,0 +1,32 @@ +Shader "TouchScript/BorderDiffuse" { +Properties { + _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {} + _Border ("Border Size", Float) = 0 +} + +SubShader { + Tags {"RenderType"="Opaque" "IgnoreProjector"="True"} + LOD 200 + +CGPROGRAM +#pragma surface surf Lambert + +sampler2D _MainTex; +float _Border; + +struct Input { + float2 uv_MainTex; +}; + +void surf (Input IN, inout SurfaceOutput o) { + fixed4 c; + if (IN.uv_MainTex.x < _Border || IN.uv_MainTex.x > 1 - _Border || IN.uv_MainTex.y < _Border || IN.uv_MainTex.y > 1 - _Border) + c = float4(1, 1, 1, 1); + else + c = tex2D(_MainTex, IN.uv_MainTex); + o.Albedo = c.rgb; + o.Alpha = 1; +} +ENDCG +} +} diff --git a/Source/Assets/TouchScript/Examples/_misc/Shaders/BorderDiffuse.shader.meta b/Source/Assets/TouchScript/Examples/_misc/Shaders/BorderDiffuse.shader.meta new file mode 100644 index 000000000..2ec7602e9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Shaders/BorderDiffuse.shader.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c316336e4e7e741118da40d9d340cd27 +ShaderImporter: + defaultTextures: [] + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Shaders/UnlitColor.shader b/Source/Assets/TouchScript/Examples/_misc/Shaders/UnlitColor.shader new file mode 100644 index 000000000..218e91400 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Shaders/UnlitColor.shader @@ -0,0 +1,43 @@ +Shader "TouchScript/UnlitColor" { +Properties { + _Color ("Main Color", Color) = (1,1,1,1) +} + +SubShader { + Tags { "RenderType"="Opaque" } + LOD 100 + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata_t { + float4 vertex : POSITION; + }; + + struct v2f { + float4 vertex : SV_POSITION; + }; + + fixed4 _Color; + + v2f vert (appdata_t v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + return o; + } + + fixed4 frag (v2f i) : COLOR + { + fixed4 col = _Color; + return col; + } + ENDCG + } +} + +} diff --git a/Source/Assets/TouchScript/Examples/_misc/Shaders/UnlitColor.shader.meta b/Source/Assets/TouchScript/Examples/_misc/Shaders/UnlitColor.shader.meta new file mode 100644 index 000000000..a24c2ea56 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Shaders/UnlitColor.shader.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 94cdda6d3ac3444ee82497c3ca14a496 +ShaderImporter: + defaultTextures: [] + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures.meta b/Source/Assets/TouchScript/Examples/_misc/Textures.meta new file mode 100644 index 000000000..738380782 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: ef52875f48c654139b6d6105d8bce5b3 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats.meta new file mode 100644 index 000000000..48ff8c304 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 18fc889fb50d640cba6e3e4d2dc4c95f +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_1.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_1.jpg new file mode 100644 index 000000000..dc3501fda Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_1.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_1.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_1.jpg.meta new file mode 100644 index 000000000..a42bc1e76 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_1.jpg.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 97bf9d574de664236942f6c91db57ef6 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 8 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_2.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_2.jpg new file mode 100644 index 000000000..9164da001 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_2.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_2.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_2.jpg.meta new file mode 100644 index 000000000..36d9b307c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_2.jpg.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 3877e55a8f20d4ed281d3011c791d7a0 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 8 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_3.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_3.jpg new file mode 100644 index 000000000..7522498e8 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_3.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_3.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_3.jpg.meta new file mode 100644 index 000000000..626792b39 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_3.jpg.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 4289a9689f19344b8a9c1fb0d65361ee +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 8 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_4.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_4.jpg new file mode 100644 index 000000000..747eed2f9 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_4.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_4.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_4.jpg.meta new file mode 100644 index 000000000..6bccea9ae --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_4.jpg.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 57a936b69d896483dab1f9afe96e8ff9 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 8 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_5.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_5.jpg new file mode 100644 index 000000000..30492dbcb Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_5.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_5.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_5.jpg.meta new file mode 100644 index 000000000..b87667a30 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_5.jpg.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 7c625bf6ca9a9407bb4d5cdf08367926 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 8 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_6.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_6.jpg new file mode 100644 index 000000000..291cfc4f2 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_6.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_6.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_6.jpg.meta new file mode 100644 index 000000000..3b2125419 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Cats/cat_6.jpg.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 1d22a1f67974a45a1bdfb0503b81ec57 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 8 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Earth.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth.meta new file mode 100644 index 000000000..0011e6b23 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: dc56399a9a56d4b279842d5abe73fb72 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthDiffuse1024x512.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthDiffuse1024x512.png new file mode 100644 index 000000000..c9ca9a5b2 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthDiffuse1024x512.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthDiffuse1024x512.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthDiffuse1024x512.png.meta new file mode 100644 index 000000000..2bfa2a438 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthDiffuse1024x512.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b3f17e6b12a45a343ab1d6c2571b87c7 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: 36 + maxTextureSize: 1024 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthMaterial1024x512.mat b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthMaterial1024x512.mat new file mode 100644 index 000000000..4a0d983ed --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthMaterial1024x512.mat @@ -0,0 +1,54 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: EarthMaterial1024x512 + m_Shader: {fileID: 3, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: b3f17e6b12a45a343ab1d6c2571b87c7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: be33279ab938c43ee87957b7c1a9cdb9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Illum + second: + m_Texture: {fileID: 2800000, guid: b2459ef9e87d4a246beed59ef6f686a6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: 1 + data: + first: + name: _EmissionLM + second: 0 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthMaterial1024x512.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthMaterial1024x512.mat.meta new file mode 100644 index 000000000..f4f629400 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Earth/EarthMaterial1024x512.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 6e379d1ec9f5fd949891068175de34fe +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples.meta new file mode 100644 index 000000000..ee0b7f57e --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ff612c7fb2450453db0aa0aae5024d9f +folderAsset: yes +timeCreated: 1477787804 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Camera.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Camera.png new file mode 100644 index 000000000..8678008c6 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Camera.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Camera.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Camera.png.meta new file mode 100644 index 000000000..d449219cf --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Camera.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: d1c0e7f7a711f4935b11d81582893ee9 +timeCreated: 1477787811 +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: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Checkers.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Checkers.png new file mode 100644 index 000000000..59e0b9a3d Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Checkers.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Checkers.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Checkers.png.meta new file mode 100644 index 000000000..954b1f745 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Checkers.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: af230e20959134865a1c53e6e8edbbe7 +timeCreated: 1477787869 +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: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Colors.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Colors.png new file mode 100644 index 000000000..034b73dce Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Colors.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Colors.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Colors.png.meta new file mode 100644 index 000000000..190b68656 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Colors.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: 2ffae1f119ee1480785aa1061b1ab391 +timeCreated: 1477787932 +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: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Cube.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Cube.png new file mode 100644 index 000000000..add172aca Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Cube.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Cube.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Cube.png.meta new file mode 100644 index 000000000..ba1052a77 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Cube.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: 8ba5d3ffe53b94eb9b457550d9d0c8d8 +timeCreated: 1477787993 +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: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Multiuser.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Multiuser.png new file mode 100644 index 000000000..509e95581 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Multiuser.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Multiuser.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Multiuser.png.meta new file mode 100644 index 000000000..fa7c1a391 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Multiuser.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: 7948ef2b5570c4deaa033186f8e3cada +timeCreated: 1477788047 +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: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Photos.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Photos.png new file mode 100644 index 000000000..b44018261 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Photos.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Photos.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Photos.png.meta new file mode 100644 index 000000000..8aa77d0af --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Photos.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: e2a00bee3078646c684013506c4f40c4 +timeCreated: 1477788133 +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: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Portal.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Portal.png new file mode 100644 index 000000000..e4326afde Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Portal.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Portal.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Portal.png.meta new file mode 100644 index 000000000..43999417c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Portal.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: 1217c44a62d504b718e8d6b10d17c0cb +timeCreated: 1477788189 +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: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Pull.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Pull.png new file mode 100644 index 000000000..718d1d0d6 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Pull.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Pull.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Pull.png.meta new file mode 100644 index 000000000..bbb0c8a4a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Pull.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: ed91d97df020e4a8cb289e68e82485be +timeCreated: 1501601998 +licenseType: Pro +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: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/RawInput.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/RawInput.png new file mode 100644 index 000000000..e1e3c817a Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/RawInput.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/RawInput.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/RawInput.png.meta new file mode 100644 index 000000000..8f6f40b22 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/RawInput.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: 63efac244c09b40f093989ca7d903d38 +timeCreated: 1477788242 +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: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Taps.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Taps.png new file mode 100644 index 000000000..403dc8180 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Taps.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Taps.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Taps.png.meta new file mode 100644 index 000000000..58a8e0c3f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Examples/Taps.png.meta @@ -0,0 +1,58 @@ +fileFormatVersion: 2 +guid: 5a60ebe3657034c78bd3f829dc6b132e +timeCreated: 1477788299 +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: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons.meta new file mode 100644 index 000000000..478387dee --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 1ee4a15bf807b4f74821f1869ed9c9c4 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/drag_media_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/drag_media_gestureworks.png new file mode 100644 index 000000000..838c970cd Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/drag_media_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/drag_media_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/drag_media_gestureworks.png.meta new file mode 100644 index 000000000..d0285d330 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/drag_media_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: c7ea461a5f0ce4b4799c49c68d336bfa +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/keyboard.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/keyboard.png new file mode 100644 index 000000000..8c39fe61e Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/keyboard.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/keyboard.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/keyboard.png.meta new file mode 100644 index 000000000..b6df9f5e3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/keyboard.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: dee235ef089bf4f349c444c9e16ec55e +timeCreated: 1448996285 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/media_rotate_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/media_rotate_gestureworks.png new file mode 100644 index 000000000..e61949ed0 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/media_rotate_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/media_rotate_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/media_rotate_gestureworks.png.meta new file mode 100644 index 000000000..f1f68ad1d --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/media_rotate_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f11c1f99a742949cd822c19bc4f4ef7c +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_double_tap_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_double_tap_gestureworks.png new file mode 100644 index 000000000..7d37ed156 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_double_tap_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_double_tap_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_double_tap_gestureworks.png.meta new file mode 100644 index 000000000..307f28e6c --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_double_tap_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 5313b5292084b4cb9a1118b00328f971 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_drag_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_drag_gestureworks.png new file mode 100644 index 000000000..e48a2dd8b Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_drag_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_drag_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_drag_gestureworks.png.meta new file mode 100644 index 000000000..71c6e36d3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_drag_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 71e59d6fec0b04b60acf6cad4b860a39 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_flick_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_flick_gestureworks.png new file mode 100644 index 000000000..5f019aa32 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_flick_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_flick_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_flick_gestureworks.png.meta new file mode 100644 index 000000000..eb3aa2cea --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_flick_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: dcd0c08ae57e04a64bd2388ac4057dc6 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_hold_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_hold_gestureworks.png new file mode 100644 index 000000000..01a9bde8f Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_hold_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_hold_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_hold_gestureworks.png.meta new file mode 100644 index 000000000..3ff47c9e5 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_hold_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: c67d11cfbeb514b63893cab03e87140c +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_scroll_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_scroll_gestureworks.png new file mode 100644 index 000000000..228419173 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_scroll_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_scroll_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_scroll_gestureworks.png.meta new file mode 100644 index 000000000..0bb9d6098 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_scroll_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 37b137a35edf042a69c32c5281c3629c +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_split_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_split_gestureworks.png new file mode 100644 index 000000000..dce442897 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_split_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_split_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_split_gestureworks.png.meta new file mode 100644 index 000000000..5bbf48519 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_split_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 7458401acc2f94b0899ace3f92830ec5 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_swipe_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_swipe_gestureworks.png new file mode 100644 index 000000000..6324cbf7d Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_swipe_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_swipe_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_swipe_gestureworks.png.meta new file mode 100644 index 000000000..c6e3cff25 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_swipe_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 23908bc10b7a34a7da03dd90170f2b4b +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_tap_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_tap_gestureworks.png new file mode 100644 index 000000000..17e2d2384 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_tap_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_tap_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_tap_gestureworks.png.meta new file mode 100644 index 000000000..bacafdbbe --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_tap_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 26489b03725f747f998c39661c2583b5 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_triple_tap_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_triple_tap_gestureworks.png new file mode 100644 index 000000000..e37106b69 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_triple_tap_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_triple_tap_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_triple_tap_gestureworks.png.meta new file mode 100644 index 000000000..5e94e49b6 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/one_finger_triple_tap_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 950062c009c34451ab993e8ea7cd47e0 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_double_tap_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_double_tap_gestureworks.png new file mode 100644 index 000000000..3ea58c3b3 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_double_tap_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_double_tap_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_double_tap_gestureworks.png.meta new file mode 100644 index 000000000..abf272900 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_double_tap_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 16ac50ef77aad4f139d0aa1cedd607ac +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_drag_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_drag_gestureworks.png new file mode 100644 index 000000000..2dd6fade4 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_drag_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_drag_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_drag_gestureworks.png.meta new file mode 100644 index 000000000..0421d555f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_drag_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 824649cf4fd7146d49f62f76f683801a +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_flick_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_flick_gestureworks.png new file mode 100644 index 000000000..98c623697 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_flick_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_flick_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_flick_gestureworks.png.meta new file mode 100644 index 000000000..51dcdcfa7 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_flick_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 8b378f37729a94029b03e01f9d9adfed +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_hold_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_hold_gestureworks.png new file mode 100644 index 000000000..40f3d3dbf Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_hold_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_hold_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_hold_gestureworks.png.meta new file mode 100644 index 000000000..0a5715390 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_hold_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: cb27de638436f4bdb918a2978ed0b044 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_horizontal_scale_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_horizontal_scale_gestureworks.png new file mode 100644 index 000000000..640daeeb2 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_horizontal_scale_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_horizontal_scale_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_horizontal_scale_gestureworks.png.meta new file mode 100644 index 000000000..c6818dc4f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_horizontal_scale_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 12d942a1eb3ca427798ca22f18b0c721 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_rotate_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_rotate_gestureworks.png new file mode 100644 index 000000000..a9e22ecd8 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_rotate_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_rotate_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_rotate_gestureworks.png.meta new file mode 100644 index 000000000..505c6f755 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_rotate_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: a4d8406d5f5c04e2399bbfa832e5c551 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scale_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scale_gestureworks.png new file mode 100644 index 000000000..f903e1ce2 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scale_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scale_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scale_gestureworks.png.meta new file mode 100644 index 000000000..5c3584edb --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scale_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 4d2e9d1d9030140608b540e419744612 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scroll_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scroll_gestureworks.png new file mode 100644 index 000000000..f93a1e679 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scroll_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scroll_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scroll_gestureworks.png.meta new file mode 100644 index 000000000..2517a53c1 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_scroll_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: deae78f05e0384345b70e1e02bf919e9 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_split_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_split_gestureworks.png new file mode 100644 index 000000000..ff8f4e845 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_split_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_split_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_split_gestureworks.png.meta new file mode 100644 index 000000000..33b183540 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_split_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 8719a72b86cbd44b7a60ddb796139ebc +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_swipe_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_swipe_gestureworks.png new file mode 100644 index 000000000..01151589d Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_swipe_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_swipe_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_swipe_gestureworks.png.meta new file mode 100644 index 000000000..0aa21c19d --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_swipe_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 8458bcaee975044729ced213c6c61c3f +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_tap_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_tap_gestureworks.png new file mode 100644 index 000000000..834d3ecb5 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_tap_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_tap_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_tap_gestureworks.png.meta new file mode 100644 index 000000000..b1aa90a02 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_tap_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 57a7ab354e6564aec8b2acea065c6736 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_triple_tap_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_triple_tap_gestureworks.png new file mode 100644 index 000000000..c78f41f4f Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_triple_tap_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_triple_tap_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_triple_tap_gestureworks.png.meta new file mode 100644 index 000000000..aa09cc6fa --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_triple_tap_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 1b14c882759f74acf8c5afc856617acb +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_vertical_scale_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_vertical_scale_gestureworks.png new file mode 100644 index 000000000..de3fc98a3 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_vertical_scale_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_vertical_scale_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_vertical_scale_gestureworks.png.meta new file mode 100644 index 000000000..a49a8ce3b --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_finger_vertical_scale_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 702ec06d66e404ad3a3e8e1790033c02 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_rotate_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_rotate_gestureworks.png new file mode 100644 index 000000000..b8c80223e Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_rotate_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_rotate_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_rotate_gestureworks.png.meta new file mode 100644 index 000000000..92bc22993 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_rotate_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 5775364d505064dc48b87b8a81403029 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_two_finger_rotate_gestureworks.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_two_finger_rotate_gestureworks.png new file mode 100644 index 000000000..41b0e4445 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_two_finger_rotate_gestureworks.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_two_finger_rotate_gestureworks.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_two_finger_rotate_gestureworks.png.meta new file mode 100644 index 000000000..56e55f087 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Icons/two_hand_two_finger_rotate_gestureworks.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 5198c8ee978fa4695a3a9d0786bb1097 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets.meta new file mode 100644 index 000000000..564b9e2c1 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 19c1264f99657482898c6eca78f3b9b4 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.mat b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.mat new file mode 100644 index 000000000..1f6fdc6e5 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: planet_1 + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: afb065af69d66410e9e24bb3e17e3734, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.mat.meta new file mode 100644 index 000000000..34257bae8 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 150b901d18f3f45d08b29f50aaec86b9 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.png new file mode 100644 index 000000000..ef4ccd89f Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.png.meta new file mode 100644 index 000000000..5a98d94b1 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_1.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: afb065af69d66410e9e24bb3e17e3734 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.mat b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.mat new file mode 100644 index 000000000..e93a1dfa9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: planet_2 + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 290dbd6ec48634a5fac69c87b83e8cef, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.mat.meta new file mode 100644 index 000000000..6f7358dba --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 0ed169bc21381479799fe7ba05d2939b +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.png new file mode 100644 index 000000000..834211d91 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.png.meta new file mode 100644 index 000000000..9e13fc082 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_2.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 290dbd6ec48634a5fac69c87b83e8cef +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.mat b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.mat new file mode 100644 index 000000000..3d94a4afe --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: planet_3 + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: f210d008e8c5244ed9918d009512dfc7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.mat.meta new file mode 100644 index 000000000..d3ac1419e --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 148079725ce574b75ae65e81f6be1567 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.png new file mode 100644 index 000000000..5f777f970 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.png.meta new file mode 100644 index 000000000..9c4e16b1a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_3.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: f210d008e8c5244ed9918d009512dfc7 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.mat b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.mat new file mode 100644 index 000000000..ff6121694 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.mat @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: planet_4 + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e5ea93e568cf64e2ebb852225383a39d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.mat.meta new file mode 100644 index 000000000..3d2f8c482 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 10bd026932ba047dcaca956b30263df6 +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.png new file mode 100644 index 000000000..e74e925b8 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.png.meta new file mode 100644 index 000000000..0d1c58953 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Planets/planet_4.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e5ea93e568cf64e2ebb852225383a39d +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox.meta new file mode 100644 index 000000000..79df1d047 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 37148e31016f943be9241cbb151f17c7 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/Skybox.mat b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/Skybox.mat new file mode 100644 index 000000000..2c839c3b0 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/Skybox.mat @@ -0,0 +1,84 @@ +%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: Skybox + m_Shader: {fileID: 104, guid: 0000000000000000f000000000000000, type: 0} + 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: _FrontTex + second: + m_Texture: {fileID: 2800000, guid: b2fad080717624ed6b17cc8a3010b5e1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BackTex + second: + m_Texture: {fileID: 2800000, guid: d1fae250427984eea9cfe19d1682d998, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _LeftTex + second: + m_Texture: {fileID: 2800000, guid: ebb6e6cf7623a42d48f1598298e96d2d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _RightTex + second: + m_Texture: {fileID: 2800000, guid: 197659d420fa04b71a3a16c774b29e01, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _UpTex + second: + m_Texture: {fileID: 2800000, guid: 248e4623b855742fe9535dabbe401904, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DownTex + second: + m_Texture: {fileID: 2800000, guid: 5cf37230961fd4c3f955aac27be6a8b9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Exposure + second: 1 + data: + first: + name: _Rotation + second: 0 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _Tint + second: {r: .5, g: .5, b: .5, a: .5} diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/Skybox.mat.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/Skybox.mat.meta new file mode 100644 index 000000000..753a34167 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/Skybox.mat.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: a07fadb24ea940240afba3afc1a692cc +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/backImage.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/backImage.jpg new file mode 100644 index 000000000..23c69163c Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/backImage.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/backImage.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/backImage.jpg.meta new file mode 100644 index 000000000..eb7b8fbb8 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/backImage.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: d1fae250427984eea9cfe19d1682d998 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/downImage.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/downImage.jpg new file mode 100644 index 000000000..f6c6cabf6 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/downImage.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/downImage.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/downImage.jpg.meta new file mode 100644 index 000000000..08746fc24 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/downImage.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 5cf37230961fd4c3f955aac27be6a8b9 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/frontImage.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/frontImage.jpg new file mode 100644 index 000000000..737334147 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/frontImage.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/frontImage.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/frontImage.jpg.meta new file mode 100644 index 000000000..1e1ed6af6 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/frontImage.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b2fad080717624ed6b17cc8a3010b5e1 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/leftImage.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/leftImage.jpg new file mode 100644 index 000000000..03ececbb7 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/leftImage.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/leftImage.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/leftImage.jpg.meta new file mode 100644 index 000000000..e23923f28 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/leftImage.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ebb6e6cf7623a42d48f1598298e96d2d +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/rightImage.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/rightImage.jpg new file mode 100644 index 000000000..8ca4e76cd Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/rightImage.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/rightImage.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/rightImage.jpg.meta new file mode 100644 index 000000000..3f48d86dc --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/rightImage.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 197659d420fa04b71a3a16c774b29e01 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/upImage.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/upImage.jpg new file mode 100644 index 000000000..a60819a88 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/upImage.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/upImage.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/upImage.jpg.meta new file mode 100644 index 000000000..141910f61 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Skybox/upImage.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 248e4623b855742fe9535dabbe401904 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/UI.meta new file mode 100644 index 000000000..17718c61f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/UI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 66c01f575ae174ef3b38e9aeb6a2be8f +folderAsset: yes +timeCreated: 1470731059 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_blue.png b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_blue.png new file mode 100644 index 000000000..62280c324 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_blue.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_blue.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_blue.png.meta new file mode 100644 index 000000000..dfbe840e6 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_blue.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: 0afc57b6a109d46f6a1168e3fce8d788 +timeCreated: 1470736874 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_green.png b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_green.png new file mode 100644 index 000000000..d92028304 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_green.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_green.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_green.png.meta new file mode 100644 index 000000000..a2249bbc2 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_green.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: 8c24c9fccfbf94ef08c2da39f7245967 +timeCreated: 1470735958 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_text.png b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_text.png new file mode 100644 index 000000000..0d39c8862 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_text.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_text.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_text.png.meta new file mode 100644 index 000000000..5a1d77aca --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_text.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: 5410db89f39a24e0fa785adf88e19b01 +timeCreated: 1470733972 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_x.png b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_x.png new file mode 100644 index 000000000..b68066a1c Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_x.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_x.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_x.png.meta new file mode 100644 index 000000000..5bfffde1a --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/button_x.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: da634550c6a1c4ff38304b1c8566d809 +timeCreated: 1470731060 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_bg.png b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_bg.png new file mode 100644 index 000000000..7edc2b8fd Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_bg.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_bg.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_bg.png.meta new file mode 100644 index 000000000..1d1f2a3f3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_bg.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: 9162f54c0795b4623b5616fc423eec6a +timeCreated: 1470733131 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + 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: .5, y: .5} + spriteBorder: {x: 59, y: 126, z: 81, w: 127} + spritePixelsToUnits: 200 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_header.png b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_header.png new file mode 100644 index 000000000..1bae23654 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_header.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_header.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_header.png.meta new file mode 100644 index 000000000..7d7e181d3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_header.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: 795edb780ddd9406493b04bb9b8ed002 +timeCreated: 1470731060 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_item.png b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_item.png new file mode 100644 index 000000000..d01705bab Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_item.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_item.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_item.png.meta new file mode 100644 index 000000000..8048ec0fa --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/UI/list_item.png.meta @@ -0,0 +1,56 @@ +fileFormatVersion: 2 +guid: b8fce26041bc947319fee43a8ec9bb5d +timeCreated: 1470731060 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: ui + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Unity.png b/Source/Assets/TouchScript/Examples/_misc/Textures/Unity.png new file mode 100644 index 000000000..8662875fd Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/Unity.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/Unity.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/Unity.png.meta new file mode 100644 index 000000000..27a91b7fa --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/Unity.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 533b9df4691d947d9921a0053b5ce231 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/border100x100.png b/Source/Assets/TouchScript/Examples/_misc/Textures/border100x100.png new file mode 100644 index 000000000..9ba1827ce Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/border100x100.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/border100x100.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/border100x100.png.meta new file mode 100644 index 000000000..a5f2ac87b --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/border100x100.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c9526d00e23c94f788b5b0e8833d5941 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -2 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 14, y: 14, z: 14, w: 14} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/checkerboard2x2.png b/Source/Assets/TouchScript/Examples/_misc/Textures/checkerboard2x2.png new file mode 100644 index 000000000..43e549fa8 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/checkerboard2x2.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/checkerboard2x2.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/checkerboard2x2.png.meta new file mode 100644 index 000000000..4d9b8bfca --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/checkerboard2x2.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 101a2db3cfc4b43ef985335f970658ab +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/close.png b/Source/Assets/TouchScript/Examples/_misc/Textures/close.png new file mode 100644 index 000000000..06e8bc862 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/close.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/close.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/close.png.meta new file mode 100644 index 000000000..1f9ada5d9 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/close.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: afc4b16a1177b45a09ce4e236152d63c +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/crate.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/crate.jpg new file mode 100644 index 000000000..ad3fe9170 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/crate.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/crate.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/crate.jpg.meta new file mode 100644 index 000000000..cfb2f4fa3 --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/crate.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 6d7cfa3977727472087d7f24d6aa53d1 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/rotate.png b/Source/Assets/TouchScript/Examples/_misc/Textures/rotate.png new file mode 100644 index 000000000..ab5c2ec93 Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/rotate.png differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/rotate.png.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/rotate.png.meta new file mode 100644 index 000000000..47164d1fa --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/rotate.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b2173b9606b6741fda0af840ae51b353 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/vortex.jpg b/Source/Assets/TouchScript/Examples/_misc/Textures/vortex.jpg new file mode 100644 index 000000000..df43a8f0e Binary files /dev/null and b/Source/Assets/TouchScript/Examples/_misc/Textures/vortex.jpg differ diff --git a/Source/Assets/TouchScript/Examples/_misc/Textures/vortex.jpg.meta b/Source/Assets/TouchScript/Examples/_misc/Textures/vortex.jpg.meta new file mode 100644 index 000000000..0bc207c0f --- /dev/null +++ b/Source/Assets/TouchScript/Examples/_misc/Textures/vortex.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: db8fa2b50ab1244fd8d75ed3ee8c0ee5 +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: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + 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: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Source/Assets/TouchScript/Modules.meta b/Source/Assets/TouchScript/Modules.meta new file mode 100644 index 000000000..94ee17c69 --- /dev/null +++ b/Source/Assets/TouchScript/Modules.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 20c0f1bf4ccf44b2fa79c4a192a3a609 +folderAsset: yes +timeCreated: 1448726325 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO.meta b/Source/Assets/TouchScript/Modules/TUIO.meta new file mode 100644 index 000000000..bf4ec77bc --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 104fda07addf44be0815a978393ca272 +folderAsset: yes +timeCreated: 1448726325 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO/.gitignore b/Source/Assets/TouchScript/Modules/TUIO/.gitignore new file mode 100644 index 000000000..476447c66 --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/.gitignore @@ -0,0 +1 @@ +/Libraries/*.dll \ No newline at end of file diff --git a/Source/Assets/TouchScript/Modules/TUIO/Editor.meta b/Source/Assets/TouchScript/Modules/TUIO/Editor.meta new file mode 100644 index 000000000..64ccf3cdd --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5bd573ab30d2a4d02b2f5408d17cee0f +folderAsset: yes +timeCreated: 1448726325 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO/Editor/InputSources.meta b/Source/Assets/TouchScript/Modules/TUIO/Editor/InputSources.meta new file mode 100644 index 000000000..fe72ab030 --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Editor/InputSources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ca52d0e59e84743a5a19c9246f1aebcc +folderAsset: yes +timeCreated: 1448726325 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO/Editor/InputSources/TuioInputEditor.cs b/Source/Assets/TouchScript/Modules/TUIO/Editor/InputSources/TuioInputEditor.cs new file mode 100644 index 000000000..a50fac3a2 --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Editor/InputSources/TuioInputEditor.cs @@ -0,0 +1,57 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_TUIO +using TouchScript.InputSources; +using UnityEditor; +using UnityEngine; + +namespace TouchScript.Editor.InputSources +{ + [CustomEditor(typeof(TuioInput), true)] + internal sealed class TuioInputEditor : InputSourceEditor + { + private static readonly GUIContent INPUT_TYPES = new GUIContent("Input Types", "Supported input types."); + + private TuioInput instance; + private SerializedProperty supportedInputs; + private SerializedProperty tuioPort; + + protected override void OnEnable() + { + base.OnEnable(); + + instance = target as TuioInput; + supportedInputs = serializedObject.FindProperty("supportedInputs"); + tuioPort = serializedObject.FindProperty("tuioPort"); + } + + public override void OnInspectorGUI() + { +#if UNITY_5_6_OR_NEWER + serializedObject.UpdateIfRequiredOrScript(); +#else + serializedObject.UpdateIfDirtyOrScript(); +#endif + + EditorGUILayout.PropertyField(tuioPort); + + var r = EditorGUILayout.GetControlRect(true, 16f, EditorStyles.layerMaskField); + var label = EditorGUI.BeginProperty(r, INPUT_TYPES, supportedInputs); + EditorGUI.BeginChangeCheck(); + r = EditorGUI.PrefixLabel(r, label); + var sMask = (TuioInput.InputType)EditorGUI.EnumMaskField(r, instance.SupportedInputs); + if (EditorGUI.EndChangeCheck()) + { + instance.SupportedInputs = sMask; + EditorUtility.SetDirty(instance); + } + EditorGUI.EndProperty(); + + serializedObject.ApplyModifiedProperties(); + base.OnInspectorGUI(); + } + } +} +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Modules/TUIO/Editor/InputSources/TuioInputEditor.cs.meta b/Source/Assets/TouchScript/Modules/TUIO/Editor/InputSources/TuioInputEditor.cs.meta new file mode 100644 index 000000000..b7575b58b --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Editor/InputSources/TuioInputEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 466a994f34031452990c476db70d141e +timeCreated: 1448726330 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO/Libraries.meta b/Source/Assets/TouchScript/Modules/TUIO/Libraries.meta new file mode 100644 index 000000000..c1a5ede34 --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Libraries.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1813e4f1fe15746b8be49cf2b5ba27c4 +folderAsset: yes +timeCreated: 1448726325 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO/Libraries/OSCsharp.dll.meta b/Source/Assets/TouchScript/Modules/TUIO/Libraries/OSCsharp.dll.meta new file mode 100644 index 000000000..18e5d2e69 --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Libraries/OSCsharp.dll.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: 710b2da019022fc49a1e7fbdf009cd6c +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 1 + settings: + CPU: AnyCPU + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + SamsungTV: + enabled: 0 + settings: + STV_MODEL: STANDARD_13 + WP8: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: False + PlaceholderPath: + Win: + enabled: 1 + settings: + CPU: AnyCPU + Win64: + enabled: 1 + settings: + CPU: AnyCPU + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: False + PlaceholderPath: + SDK: AnySDK + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO/Libraries/TUIOsharp.dll.meta b/Source/Assets/TouchScript/Modules/TUIO/Libraries/TUIOsharp.dll.meta new file mode 100644 index 000000000..7f8062162 --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Libraries/TUIOsharp.dll.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: 79a4d43786071994f99fd36708a4fbb9 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 1 + settings: + CPU: AnyCPU + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + SamsungTV: + enabled: 0 + settings: + STV_MODEL: STANDARD_13 + WP8: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: False + PlaceholderPath: + Win: + enabled: 1 + settings: + CPU: AnyCPU + Win64: + enabled: 1 + settings: + CPU: AnyCPU + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: False + PlaceholderPath: + SDK: AnySDK + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO/Scripts.meta b/Source/Assets/TouchScript/Modules/TUIO/Scripts.meta new file mode 100644 index 000000000..6c3941ce4 --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5b460df0ef72749ddbe25be246e5282a +folderAsset: yes +timeCreated: 1448726325 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO/Scripts/InputSources.meta b/Source/Assets/TouchScript/Modules/TUIO/Scripts/InputSources.meta new file mode 100644 index 000000000..7cba20bdc --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Scripts/InputSources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ad1e1062f8468446da41c7b3c85d84e1 +folderAsset: yes +timeCreated: 1448726325 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Modules/TUIO/Scripts/InputSources/TuioInput.cs b/Source/Assets/TouchScript/Modules/TUIO/Scripts/InputSources/TuioInput.cs new file mode 100644 index 000000000..dcf62db52 --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Scripts/InputSources/TuioInput.cs @@ -0,0 +1,508 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_TUIO +#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_IOS || UNITY_ANDROID +using System; +using System.Collections.Generic; +using TouchScript.Pointers; +using TouchScript.Utils; +using TUIOsharp; +using TUIOsharp.DataProcessors; +using TUIOsharp.Entities; +using UnityEngine; + +namespace TouchScript.InputSources +{ + /// + /// Processes TUIO 1.1 input. + /// + [AddComponentMenu("TouchScript/Input Sources/TUIO Input")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_InputSources_TuioInput.htm")] + public sealed class TuioInput : InputSource + { + #region Constants + + /// + /// Type of TUIO input object. + /// + [Flags] + public enum InputType + { + /// + /// Pointer. + /// + Cursors = 1 << 0, + + /// + /// Shape. + /// + Blobs = 1 << 1, + + /// + /// Tagged object. + /// + Objects = 1 << 2 + } + + #endregion + + #region Public properties + + /// + /// Port to listen to. + /// + public int TuioPort + { + get { return tuioPort; } + set + { + if (tuioPort == value) return; + tuioPort = value; + connect(); + } + } + + /// + /// What input types should the input source listen to. + /// + public InputType SupportedInputs + { + get { return supportedInputs; } + set + { + if (supportedInputs == value) return; + supportedInputs = value; + updateInputs(); + } + } + + #endregion + + #region Private variables + + [SerializeField] + private int tuioPort = 3333; + + [SerializeField] + private InputType supportedInputs = InputType.Cursors | InputType.Blobs | InputType.Objects; + + private TuioServer server; + private CursorProcessor cursorProcessor; + private ObjectProcessor objectProcessor; + private BlobProcessor blobProcessor; + + private Dictionary cursorToInternalId = new Dictionary(10); + private Dictionary blobToInternalId = new Dictionary(); + private Dictionary objectToInternalId = new Dictionary(); + private int screenWidth; + private int screenHeight; + + private ObjectPool touchPool; + private ObjectPool objectPool; + + #endregion + + #region Constructor + + public TuioInput() + { + touchPool = new ObjectPool(20, () => new TouchPointer(this), null, resetPointer); + objectPool = new ObjectPool(10, () => new ObjectPointer(this), null, resetPointer); + } + + #endregion + + #region Public methods + + /// + public override bool UpdateInput() + { + if (base.UpdateInput()) return true; + + screenWidth = Screen.width; + screenHeight = Screen.height; + + return true; + } + + /// + public override bool CancelPointer(Pointer pointer, bool shouldReturn) + { + base.CancelPointer(pointer, shouldReturn); + lock (this) + { + if (pointer.Type == Pointer.PointerType.Touch) + { + TuioCursor cursor = null; + foreach (var touchPoint in cursorToInternalId) + { + if (touchPoint.Value.Id == pointer.Id) + { + cursor = touchPoint.Key; + break; + } + } + if (cursor != null) + { + cancelPointer(pointer); + if (shouldReturn) + { + cursorToInternalId[cursor] = internalReturnTouch(pointer as TouchPointer); + } + else + { + cursorToInternalId.Remove(cursor); + } + return true; + } + return false; + } + + TuioObject obj = null; + foreach (var touchPoint in objectToInternalId) + { + if (touchPoint.Value.Id == pointer.Id) + { + obj = touchPoint.Key; + break; + } + } + if (obj != null) + { + cancelPointer(pointer); + if (shouldReturn) + { + objectToInternalId[obj] = internalReturnObject(pointer as ObjectPointer, pointer.Position); + } + else + { + objectToInternalId.Remove(obj); + } + return true; + } + + TuioBlob blob = null; + foreach (var touchPoint in blobToInternalId) + { + if (touchPoint.Value.Id == pointer.Id) + { + blob = touchPoint.Key; + break; + } + } + if (blob != null) + { + cancelPointer(pointer); + if (shouldReturn) + { + blobToInternalId[blob] = internalReturnObject(pointer as ObjectPointer, pointer.Position); + } + else + { + blobToInternalId.Remove(blob); + } + return true; + } + + return false; + } + } + + #endregion + + #region Internal methods + + /// + public override void INTERNAL_DiscardPointer(Pointer pointer) + { + if (pointer.Type == Pointer.PointerType.Touch) + { + touchPool.Release(pointer as TouchPointer); + } + else if (pointer.Type == Pointer.PointerType.Object) + { + objectPool.Release(pointer as ObjectPointer); + } + } + + #endregion + + #region Unity + + /// + protected override void OnEnable() + { + base.OnEnable(); + + screenWidth = Screen.width; + screenHeight = Screen.height; + + cursorProcessor = new CursorProcessor(); + cursorProcessor.CursorAdded += OnCursorAdded; + cursorProcessor.CursorUpdated += OnCursorUpdated; + cursorProcessor.CursorRemoved += OnCursorRemoved; + + blobProcessor = new BlobProcessor(); + blobProcessor.BlobAdded += OnBlobAdded; + blobProcessor.BlobUpdated += OnBlobUpdated; + blobProcessor.BlobRemoved += OnBlobRemoved; + + objectProcessor = new ObjectProcessor(); + objectProcessor.ObjectAdded += OnObjectAdded; + objectProcessor.ObjectUpdated += OnObjectUpdated; + objectProcessor.ObjectRemoved += OnObjectRemoved; + + connect(); + } + + /// + protected override void OnDisable() + { + disconnect(); + base.OnDisable(); + } + + #endregion + + #region Private functions + + private TouchPointer internalAddTouch(Vector2 position) + { + var pointer = touchPool.Get(); + pointer.Position = remapCoordinates(position); + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonDown | Pointer.PointerButtonState.FirstButtonPressed; + addPointer(pointer); + pressPointer(pointer); + return pointer; + } + + private TouchPointer internalReturnTouch(TouchPointer pointer) + { + var newPointer = touchPool.Get(); + newPointer.CopyFrom(pointer); + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonDown | Pointer.PointerButtonState.FirstButtonPressed; + newPointer.Flags |= Pointer.FLAG_RETURNED; + addPointer(newPointer); + pressPointer(newPointer); + return newPointer; + } + + private ObjectPointer internalAddObject(Vector2 position) + { + var pointer = objectPool.Get(); + pointer.Position = remapCoordinates(position); + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonDown | Pointer.PointerButtonState.FirstButtonPressed; + addPointer(pointer); + pressPointer(pointer); + return pointer; + } + + private ObjectPointer internalReturnObject(ObjectPointer pointer, Vector2 position) + { + var newPointer = objectPool.Get(); + newPointer.CopyFrom(pointer); + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonDown | Pointer.PointerButtonState.FirstButtonPressed; + newPointer.Flags |= Pointer.FLAG_RETURNED; + addPointer(newPointer); + pressPointer(newPointer); + return newPointer; + } + + private void connect() + { + if (!Application.isPlaying) return; + if (server != null) disconnect(); + + server = new TuioServer(TuioPort); + server.Connect(); + updateInputs(); + } + + private void disconnect() + { + if (server != null) + { + server.RemoveAllDataProcessors(); + server.Disconnect(); + server = null; + } + + foreach (var i in cursorToInternalId) cancelPointer(i.Value); + foreach (var i in blobToInternalId) cancelPointer(i.Value); + foreach (var i in objectToInternalId) cancelPointer(i.Value); + cursorToInternalId.Clear(); + blobToInternalId.Clear(); + objectToInternalId.Clear(); + } + + private void updateInputs() + { + if (server == null) return; + + if ((supportedInputs & InputType.Cursors) != 0) server.AddDataProcessor(cursorProcessor); + else server.RemoveDataProcessor(cursorProcessor); + if ((supportedInputs & InputType.Blobs) != 0) server.AddDataProcessor(blobProcessor); + else server.RemoveDataProcessor(blobProcessor); + if ((supportedInputs & InputType.Objects) != 0) server.AddDataProcessor(objectProcessor); + else server.RemoveDataProcessor(objectProcessor); + } + + private void updateBlobProperties(ObjectPointer obj, TuioBlob target) + { + obj.Width = target.Width; + obj.Height = target.Height; + obj.Angle = target.Angle; + } + + private void updateObjectProperties(ObjectPointer obj, TuioObject target) + { + obj.ObjectId = target.ClassId; + obj.Angle = target.Angle; + } + + private void resetPointer(Pointer p) + { + p.INTERNAL_Reset(); + } + + #endregion + + #region Event handlers + + private void OnCursorAdded(object sender, TuioCursorEventArgs e) + { + var entity = e.Cursor; + lock (this) + { + var x = entity.X * screenWidth; + var y = (1 - entity.Y) * screenHeight; + cursorToInternalId.Add(entity, internalAddTouch(new Vector2(x, y))); + } + } + + private void OnCursorUpdated(object sender, TuioCursorEventArgs e) + { + var entity = e.Cursor; + lock (this) + { + TouchPointer touch; + if (!cursorToInternalId.TryGetValue(entity, out touch)) return; + + var x = entity.X * screenWidth; + var y = (1 - entity.Y) * screenHeight; + + touch.Position = remapCoordinates(new Vector2(x, y)); + updatePointer(touch); + } + } + + private void OnCursorRemoved(object sender, TuioCursorEventArgs e) + { + var entity = e.Cursor; + lock (this) + { + TouchPointer touch; + if (!cursorToInternalId.TryGetValue(entity, out touch)) return; + + cursorToInternalId.Remove(entity); + releasePointer(touch); + removePointer(touch); + } + } + + private void OnBlobAdded(object sender, TuioBlobEventArgs e) + { + var entity = e.Blob; + lock (this) + { + var x = entity.X * screenWidth; + var y = (1 - entity.Y) * screenHeight; + var touch = internalAddObject(new Vector2(x, y)); + updateBlobProperties(touch, entity); + blobToInternalId.Add(entity, touch); + } + } + + private void OnBlobUpdated(object sender, TuioBlobEventArgs e) + { + var entity = e.Blob; + lock (this) + { + ObjectPointer touch; + if (!blobToInternalId.TryGetValue(entity, out touch)) return; + + var x = entity.X * screenWidth; + var y = (1 - entity.Y) * screenHeight; + + touch.Position = remapCoordinates(new Vector2(x, y)); + updateBlobProperties(touch, entity); + updatePointer(touch); + } + } + + private void OnBlobRemoved(object sender, TuioBlobEventArgs e) + { + var entity = e.Blob; + lock (this) + { + ObjectPointer touch; + if (!blobToInternalId.TryGetValue(entity, out touch)) return; + + blobToInternalId.Remove(entity); + releasePointer(touch); + removePointer(touch); + } + } + + private void OnObjectAdded(object sender, TuioObjectEventArgs e) + { + var entity = e.Object; + lock (this) + { + var x = entity.X * screenWidth; + var y = (1 - entity.Y) * screenHeight; + var touch = internalAddObject(new Vector2(x, y)); + updateObjectProperties(touch, entity); + objectToInternalId.Add(entity, touch); + } + } + + private void OnObjectUpdated(object sender, TuioObjectEventArgs e) + { + var entity = e.Object; + lock (this) + { + ObjectPointer touch; + if (!objectToInternalId.TryGetValue(entity, out touch)) return; + + var x = entity.X * screenWidth; + var y = (1 - entity.Y) * screenHeight; + + touch.Position = remapCoordinates(new Vector2(x, y)); + updateObjectProperties(touch, entity); + updatePointer(touch); + } + } + + private void OnObjectRemoved(object sender, TuioObjectEventArgs e) + { + var entity = e.Object; + lock (this) + { + ObjectPointer touch; + if (!objectToInternalId.TryGetValue(entity, out touch)) return; + + objectToInternalId.Remove(entity); + releasePointer(touch); + removePointer(touch); + } + } + + #endregion + } +} + +#endif +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Modules/TUIO/Scripts/InputSources/TuioInput.cs.meta b/Source/Assets/TouchScript/Modules/TUIO/Scripts/InputSources/TuioInput.cs.meta new file mode 100644 index 000000000..0c3ad1a55 --- /dev/null +++ b/Source/Assets/TouchScript/Modules/TUIO/Scripts/InputSources/TuioInput.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9c4b35b5ee8a443439ce04199575743f +timeCreated: 1448726331 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Plugins.meta b/Source/Assets/TouchScript/Plugins.meta new file mode 100644 index 000000000..7d3c28e8f --- /dev/null +++ b/Source/Assets/TouchScript/Plugins.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4e748cd3d42a59c42aaf04d413a6bd11 +folderAsset: yes +timeCreated: 1457295412 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Plugins/WindowsTouch.meta b/Source/Assets/TouchScript/Plugins/WindowsTouch.meta new file mode 100644 index 000000000..197d240a2 --- /dev/null +++ b/Source/Assets/TouchScript/Plugins/WindowsTouch.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cb1d7db789f20dc46bdb2a85009389cc +folderAsset: yes +timeCreated: 1457295412 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Plugins/WindowsTouch/.gitignore b/Source/Assets/TouchScript/Plugins/WindowsTouch/.gitignore new file mode 100644 index 000000000..1ffb55b97 --- /dev/null +++ b/Source/Assets/TouchScript/Plugins/WindowsTouch/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!WindowsTouch.dll.meta +!x64 \ No newline at end of file diff --git a/Source/Assets/TouchScript/Plugins/WindowsTouch/WindowsTouch.dll.meta b/Source/Assets/TouchScript/Plugins/WindowsTouch/WindowsTouch.dll.meta new file mode 100644 index 000000000..1e04b3ad3 --- /dev/null +++ b/Source/Assets/TouchScript/Plugins/WindowsTouch/WindowsTouch.dll.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f19915b81e7ae204c980cfa00fe7873e +timeCreated: 1457295417 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 1 + settings: + CPU: AnyCPU + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Win: + enabled: 1 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: None + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Plugins/WindowsTouch/x64/WindowsTouch.dll.meta b/Source/Assets/TouchScript/Plugins/WindowsTouch/x64/WindowsTouch.dll.meta new file mode 100644 index 000000000..188319501 --- /dev/null +++ b/Source/Assets/TouchScript/Plugins/WindowsTouch/x64/WindowsTouch.dll.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 8e52c1b48a294e940a1adaa46209e4d7 +timeCreated: 1457295417 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 1 + settings: + CPU: AnyCPU + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 1 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Examples/General Examples/Assets/TouchScript/Prefabs.meta b/Source/Assets/TouchScript/Prefabs.meta similarity index 100% rename from Examples/General Examples/Assets/TouchScript/Prefabs.meta rename to Source/Assets/TouchScript/Prefabs.meta diff --git a/Source/Assets/TouchScript/Prefabs/Cursors.meta b/Source/Assets/TouchScript/Prefabs/Cursors.meta new file mode 100644 index 000000000..fbd865c7c --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: af9d07bfec60f4f0a9e09613cb47f394 +folderAsset: yes +timeCreated: 1478310493 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Prefabs/Cursors.prefab b/Source/Assets/TouchScript/Prefabs/Cursors.prefab new file mode 100644 index 000000000..58008feac --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors.prefab @@ -0,0 +1,116 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22401058} + - component: {fileID: 11400000} + - component: {fileID: 22341586} + m_Layer: 0 + m_Name: Cursors + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1002 &100001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!1002 &400001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!1002 &2000001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!1002 &8100001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!1002 &9200001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 75324aa372886435faa21a4145210f8e, type: 3} + m_Name: + m_EditorClassIdentifier: + generalProps: 0 + advancedProps: 0 + mouseCursor: {fileID: 11416202, guid: a71503570adc6194b9bbc69bf19cc2de, type: 2} + touchCursor: {fileID: 11435582, guid: 7fd82b375cf1cdc45b55e2751d814207, type: 2} + penCursor: {fileID: 11486812, guid: 7af150e8b98b05449aaf9462bd6c7109, type: 2} + objectCursor: {fileID: 11468960, guid: 4230502e1973f4c9e9ef6767dcc8c602, type: 2} + useDPI: 1 + cursorSize: 2 + cursorPixelSize: 64 +--- !u!1002 &11400001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!1002 &12400001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!223 &22341586 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 1 + m_SortingLayerID: 0 + m_SortingOrder: 32767 + m_TargetDisplay: 0 +--- !u!224 &22401058 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 0} + propertyPath: pointerProxy + value: + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 +--- !u!1002 &100100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/Examples/General Examples/Assets/TouchScript/Prefabs/Touch Debugger.prefab.meta b/Source/Assets/TouchScript/Prefabs/Cursors.prefab.meta similarity index 100% rename from Examples/General Examples/Assets/TouchScript/Prefabs/Touch Debugger.prefab.meta rename to Source/Assets/TouchScript/Prefabs/Cursors.prefab.meta diff --git a/Source/Assets/TouchScript/Prefabs/Cursors/Cursor.mat b/Source/Assets/TouchScript/Prefabs/Cursors/Cursor.mat new file mode 100644 index 000000000..6951e644f --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Cursor.mat @@ -0,0 +1,138 @@ +%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: Cursor + m_Shader: {fileID: 4800000, guid: 2af36406130024644b499213db069f78, 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: _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 + 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/Source/Assets/TouchScript/Prefabs/Cursors/Cursor.mat.meta b/Source/Assets/TouchScript/Prefabs/Cursors/Cursor.mat.meta new file mode 100644 index 000000000..814588848 --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Cursor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 10886028a78e7634d8d44ee11f7b1c08 +timeCreated: 1500213727 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Prefabs/Cursors/Mouse Cursor.prefab b/Source/Assets/TouchScript/Prefabs/Cursors/Mouse Cursor.prefab new file mode 100644 index 000000000..fa9cc149a --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Mouse Cursor.prefab @@ -0,0 +1,433 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &152322 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22498922} + - component: {fileID: 22253470} + - component: {fileID: 11415522} + - component: {fileID: 11446012} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &183852 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22471328} + - component: {fileID: 22246154} + - component: {fileID: 11446800} + - component: {fileID: 11419342} + - component: {fileID: 114695260886518812} + m_Layer: 0 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &185820 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22499528} + - component: {fileID: 11416202} + - component: {fileID: 223878911915740246} + - component: {fileID: 225715774982127120} + m_Layer: 0 + m_Name: Mouse Cursor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &189110 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22497446} + - component: {fileID: 22249184} + - component: {fileID: 11453278} + - component: {fileID: 11448672} + - component: {fileID: 114973988835986202} + m_Layer: 0 + m_Name: Default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11415522 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 1, b: 0, 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: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &11416202 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8fbf4dedcb22ba4c955bd24592e0845, type: 3} + m_Name: + m_EditorClassIdentifier: + ShowPointerId: 0 + ShowFlags: 0 + Text: {fileID: 11415522} + DefaultCursor: {fileID: 0} + PressedCursor: {fileID: 114695260886518812} + ShowButtons: 0 +--- !u!114 &11419342 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d78b78253cc71a64ca6bf0978d7ac99e, type: 3} + m_Name: + m_EditorClassIdentifier: + Gradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0, g: 1, b: 0, a: 0.23529412} + key2: {r: 0, g: 1, b: 0, a: 0.23529412} + key3: {r: 0, g: 0, b: 0, a: 1} + key4: {r: 0, g: 0, b: 0, a: 1} + key5: {r: 0, g: 0, b: 0, a: 0.23529412} + key6: {r: 0, g: 0, b: 0, a: 0.25490198} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 31905 + ctime1: 33371 + ctime2: 44754 + ctime3: 46306 + ctime4: 45875 + ctime5: 59068 + ctime6: 0 + ctime7: 0 + atime0: 17591 + atime1: 18712 + atime2: 25007 + atime3: 26042 + atime4: 55791 + atime5: 56826 + atime6: 64242 + atime7: 64571 + m_Mode: 0 + m_NumColorKeys: 4 + m_NumAlphaKeys: 8 + Name: Mouse Pressed + Resolution: 256 +--- !u!114 &11446012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} + 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.541} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &11446800 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 10886028a78e7634d8d44ee11f7b1c08, type: 2} + 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_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &11448672 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189110} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d78b78253cc71a64ca6bf0978d7ac99e, type: 3} + m_Name: + m_EditorClassIdentifier: + Gradient: + serializedVersion: 2 + key0: {r: 0, g: 1, b: 0, a: 1} + key1: {r: 0, g: 1, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0.23529412} + key3: {r: 0, g: 0, b: 0, a: 0.23529412} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 9572 + ctime2: 10779 + ctime3: 46306 + ctime4: 45875 + ctime5: 59068 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 9658 + atime2: 11124 + atime3: 19229 + atime4: 20264 + atime5: 64571 + atime6: 64571 + atime7: 64571 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 5 + Name: Mouse Default + Resolution: 256 +--- !u!114 &11453278 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189110} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 10886028a78e7634d8d44ee11f7b1c08, type: 2} + 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_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &22246154 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} +--- !u!222 &22249184 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189110} +--- !u!222 &22253470 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} +--- !u!224 &22471328 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_LocalRotation: {x: 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: 22499528} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22497446 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189110} + m_LocalRotation: {x: 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: 22499528} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22498922 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} + m_LocalRotation: {x: 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: 22499528} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: 100, y: 64} + m_Pivot: {x: 0, y: 0.5} +--- !u!224 &22499528 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185820} + m_LocalRotation: {x: 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: 22497446} + - {fileID: 22471328} + - {fileID: 22498922} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 500, y: 300} + m_SizeDelta: {x: 64, y: 64} + 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: 185820} + m_IsPrefabParent: 1 +--- !u!114 &114695260886518812 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a709300256ec1e4995018f4f91470aa, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114973988835986202 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a709300256ec1e4995018f4f91470aa, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!223 &223878911915740246 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185820} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!225 &225715774982127120 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185820} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 diff --git a/Source/Assets/TouchScript/Prefabs/Cursors/Mouse Cursor.prefab.meta b/Source/Assets/TouchScript/Prefabs/Cursors/Mouse Cursor.prefab.meta new file mode 100644 index 000000000..de2e3cbbe --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Mouse Cursor.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a71503570adc6194b9bbc69bf19cc2de +timeCreated: 1500147529 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Prefabs/Cursors/Pen Cursor.prefab b/Source/Assets/TouchScript/Prefabs/Cursors/Pen Cursor.prefab new file mode 100644 index 000000000..c77271042 --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Pen Cursor.prefab @@ -0,0 +1,435 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &108352 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22483962} + - component: {fileID: 22239818} + - component: {fileID: 11439998} + - component: {fileID: 11426034} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &118164 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22480400} + - component: {fileID: 11486812} + - component: {fileID: 223912096970254378} + - component: {fileID: 225894359780410702} + m_Layer: 0 + m_Name: Pen Cursor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &133736 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22479482} + - component: {fileID: 22231526} + - component: {fileID: 11469244} + - component: {fileID: 11473414} + - component: {fileID: 114485558856495662} + m_Layer: 0 + m_Name: Default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &167092 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22408358} + - component: {fileID: 22255864} + - component: {fileID: 11426810} + - component: {fileID: 11438738} + - component: {fileID: 114380379277784028} + m_Layer: 0 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11426034 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108352} + 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.541} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &11426810 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 10886028a78e7634d8d44ee11f7b1c08, type: 2} + 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_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &11438738 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d78b78253cc71a64ca6bf0978d7ac99e, type: 3} + m_Name: + m_EditorClassIdentifier: + Gradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.99607843, g: 0.9254902, b: 0, a: 0.23529412} + key2: {r: 0.99607843, g: 0.9254902, b: 0, a: 0.23529412} + key3: {r: 0, g: 0, b: 0, a: 1} + key4: {r: 0, g: 0, b: 0, a: 1} + key5: {r: 0, g: 0, b: 0, a: 0.23529412} + key6: {r: 0, g: 0, b: 0, a: 0.25490198} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 31905 + ctime1: 33371 + ctime2: 44754 + ctime3: 46306 + ctime4: 45875 + ctime5: 59068 + ctime6: 0 + ctime7: 0 + atime0: 17591 + atime1: 18712 + atime2: 25007 + atime3: 26042 + atime4: 55791 + atime5: 56826 + atime6: 64242 + atime7: 64571 + m_Mode: 0 + m_NumColorKeys: 4 + m_NumAlphaKeys: 8 + Name: Pen Pressed + Resolution: 256 +--- !u!114 &11439998 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108352} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.99607843, g: 0.9254902, b: 0, 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: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &11469244 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 10886028a78e7634d8d44ee11f7b1c08, type: 2} + 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_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &11473414 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d78b78253cc71a64ca6bf0978d7ac99e, type: 3} + m_Name: + m_EditorClassIdentifier: + Gradient: + serializedVersion: 2 + key0: {r: 0.99607843, g: 0.92941177, b: 0.003921569, a: 1} + key1: {r: 0.99607843, g: 0.9254902, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0.23529412} + key3: {r: 0, g: 0, b: 0, a: 0.23529412} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 9572 + ctime2: 10779 + ctime3: 46306 + ctime4: 45875 + ctime5: 59068 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 9572 + atime2: 11124 + atime3: 19229 + atime4: 20264 + atime5: 64571 + atime6: 64571 + atime7: 64571 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 5 + Name: Pen Default + Resolution: 256 +--- !u!114 &11486812 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118164} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 181d9c001cb470f44ac60c140a847605, type: 3} + m_Name: + m_EditorClassIdentifier: + ShowPointerId: 0 + ShowFlags: 0 + Text: {fileID: 11439998} + DefaultCursor: {fileID: 114485558856495662} + PressedCursor: {fileID: 114380379277784028} + ShowButtons: 0 + ShowPressure: 0 + ShowRotation: 0 +--- !u!222 &22231526 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133736} +--- !u!222 &22239818 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108352} +--- !u!222 &22255864 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167092} +--- !u!224 &22408358 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167092} + m_LocalRotation: {x: 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: 22480400} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22479482 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133736} + m_LocalRotation: {x: 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: 22480400} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22480400 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118164} + m_LocalRotation: {x: 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: 22479482} + - {fileID: 22408358} + - {fileID: 22483962} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 500, y: 400} + m_SizeDelta: {x: 64, y: 64} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22483962 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 108352} + m_LocalRotation: {x: 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: 22480400} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 3, y: 0.00000071525574} + m_SizeDelta: {x: 100, y: 64} + m_Pivot: {x: 0, 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: 118164} + m_IsPrefabParent: 1 +--- !u!114 &114380379277784028 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a709300256ec1e4995018f4f91470aa, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114485558856495662 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a709300256ec1e4995018f4f91470aa, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!223 &223912096970254378 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118164} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!225 &225894359780410702 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118164} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 diff --git a/Source/Assets/TouchScript/Prefabs/Cursors/Pen Cursor.prefab.meta b/Source/Assets/TouchScript/Prefabs/Cursors/Pen Cursor.prefab.meta new file mode 100644 index 000000000..5df709948 --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Pen Cursor.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7af150e8b98b05449aaf9462bd6c7109 +timeCreated: 1500153289 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Prefabs/Cursors/Pointer.prefab b/Source/Assets/TouchScript/Prefabs/Cursors/Pointer.prefab new file mode 100644 index 000000000..18c2dff48 --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Pointer.prefab @@ -0,0 +1,202 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &117830 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22436736} + - component: {fileID: 22287504} + - component: {fileID: 11421528} + - component: {fileID: 11442452} + m_Layer: 0 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &183852 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22471328} + - component: {fileID: 11468960} + - component: {fileID: 223813922742015622} + - component: {fileID: 225429637618999960} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11421528 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 10886028a78e7634d8d44ee11f7b1c08, type: 2} + 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_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &11442452 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d78b78253cc71a64ca6bf0978d7ac99e, type: 3} + m_Name: + m_EditorClassIdentifier: + Gradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.003921569, g: 0.99607843, b: 0.99607843, a: 0.23529412} + key2: {r: 0.003921569, g: 0.99607843, b: 0.99607843, a: 0.23529412} + key3: {r: 0, g: 0, b: 0, a: 1} + key4: {r: 0, g: 0, b: 0, a: 1} + key5: {r: 0, g: 0, b: 0, a: 0.23529412} + key6: {r: 0, g: 0, b: 0, a: 0.25490198} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 31905 + ctime1: 33371 + ctime2: 44754 + ctime3: 46306 + ctime4: 45875 + ctime5: 59068 + ctime6: 0 + ctime7: 0 + atime0: 17591 + atime1: 18712 + atime2: 25007 + atime3: 26042 + atime4: 55791 + atime5: 56826 + atime6: 64242 + atime7: 64571 + m_Mode: 0 + m_NumColorKeys: 4 + m_NumAlphaKeys: 8 + Name: Pointer Pressed + Resolution: 256 +--- !u!114 &11468960 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cb960f8e83f447beb42da7d064d77e2, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!222 &22287504 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117830} +--- !u!224 &22436736 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 117830} + m_LocalRotation: {x: 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: 22471328} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000091552734, y: 0} + m_SizeDelta: {x: -0.00005722046, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22471328 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_LocalRotation: {x: 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: 22436736} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 500, y: 100} + m_SizeDelta: {x: 64, y: 64} + 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: 183852} + m_IsPrefabParent: 1 +--- !u!223 &223813922742015622 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!225 &225429637618999960 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 diff --git a/Source/Assets/TouchScript/Prefabs/Cursors/Pointer.prefab.meta b/Source/Assets/TouchScript/Prefabs/Cursors/Pointer.prefab.meta new file mode 100644 index 000000000..bdba6c90f --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Pointer.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4230502e1973f4c9e9ef6767dcc8c602 +timeCreated: 1448655580 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Prefabs/Cursors/Touch Cursor.prefab b/Source/Assets/TouchScript/Prefabs/Cursors/Touch Cursor.prefab new file mode 100644 index 000000000..3d6ffbbe2 --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Touch Cursor.prefab @@ -0,0 +1,297 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &152322 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22498922} + - component: {fileID: 22253470} + - component: {fileID: 11415522} + - component: {fileID: 11446012} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &183852 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22471328} + - component: {fileID: 22246154} + - component: {fileID: 11490436} + - component: {fileID: 11433328} + m_Layer: 0 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &185820 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22499528} + - component: {fileID: 11435582} + - component: {fileID: 223147991810450650} + - component: {fileID: 225477107791102178} + m_Layer: 0 + m_Name: Touch Cursor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11415522 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.003921569, g: 0.9960785, b: 0.9960785, 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: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &11433328 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d78b78253cc71a64ca6bf0978d7ac99e, type: 3} + m_Name: + m_EditorClassIdentifier: + Gradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.003921569, g: 0.99607843, b: 0.99607843, a: 0.23529412} + key2: {r: 0.003921569, g: 0.99607843, b: 0.99607843, a: 0.23529412} + key3: {r: 0, g: 0, b: 0, a: 1} + key4: {r: 0, g: 0, b: 0, a: 1} + key5: {r: 0, g: 0, b: 0, a: 0.23529412} + key6: {r: 0, g: 0, b: 0, a: 0.25490198} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 31905 + ctime1: 33371 + ctime2: 44754 + ctime3: 46306 + ctime4: 45875 + ctime5: 59068 + ctime6: 0 + ctime7: 0 + atime0: 17591 + atime1: 18712 + atime2: 25007 + atime3: 26042 + atime4: 55791 + atime5: 56826 + atime6: 64242 + atime7: 64571 + m_Mode: 0 + m_NumColorKeys: 4 + m_NumAlphaKeys: 8 + Name: Touch Pressed + Resolution: 256 +--- !u!114 &11435582 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d3a5cfcc9939fb340b2c3ed29a3d0b5d, type: 3} + m_Name: + m_EditorClassIdentifier: + ShowPointerId: 0 + ShowFlags: 0 + Text: {fileID: 11415522} + ShowPressure: 0 + ShowRotation: 0 +--- !u!114 &11446012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} + 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.541} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 +--- !u!114 &11490436 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 10886028a78e7634d8d44ee11f7b1c08, type: 2} + 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_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &22246154 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} +--- !u!222 &22253470 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} +--- !u!224 &22471328 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183852} + m_LocalRotation: {x: 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: 22499528} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22498922 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152322} + m_LocalRotation: {x: 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: 22499528} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 3, y: 0.00000035762787} + m_SizeDelta: {x: 100, y: 64} + m_Pivot: {x: 0, y: 0.5} +--- !u!224 &22499528 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185820} + m_LocalRotation: {x: 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: 22471328} + - {fileID: 22498922} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 500, y: 200} + m_SizeDelta: {x: 64, y: 64} + 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: 185820} + m_IsPrefabParent: 1 +--- !u!223 &223147991810450650 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185820} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!225 &225477107791102178 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185820} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 diff --git a/Source/Assets/TouchScript/Prefabs/Cursors/Touch Cursor.prefab.meta b/Source/Assets/TouchScript/Prefabs/Cursors/Touch Cursor.prefab.meta new file mode 100644 index 000000000..e71f5ff4c --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/Cursors/Touch Cursor.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7fd82b375cf1cdc45b55e2751d814207 +timeCreated: 1500151683 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Prefabs/TouchManager.prefab b/Source/Assets/TouchScript/Prefabs/TouchManager.prefab new file mode 100644 index 000000000..8e8469645 --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/TouchManager.prefab @@ -0,0 +1,125 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 400002} + - component: {fileID: 11400000} + - component: {fileID: 11478012} + m_Layer: 0 + m_Name: TouchManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 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 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0dd4c394fe06f4ea49e03aaa5e7a8190, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 1 + OnFrameStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.TouchManager+FrameEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnFrameFinish: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.TouchManager+FrameEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnPointersAdd: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.TouchManager+PointerEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnPointersUpdate: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.TouchManager+PointerEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnPointersPress: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.TouchManager+PointerEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnPointersRelease: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.TouchManager+PointerEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnPointersRemove: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.TouchManager+PointerEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + OnPointersCancel: + m_PersistentCalls: + m_Calls: [] + m_TypeName: TouchScript.TouchManager+PointerEvent, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + advancedProps: 0 + displayDevice: {fileID: 0} + shouldCreateCameraLayer: 1 + shouldCreateStandardInput: 1 + useSendMessage: 0 + sendMessageEvents: 60 + sendMessageTarget: {fileID: 0} + useUnityEvents: 0 + layers: [] +--- !u!114 &11478012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e276ccba4f7314d9988af19f9b3a611b, type: 3} + m_Name: + m_EditorClassIdentifier: + advancedProps: 0 + generalProps: 0 + windowsProps: 0 + windows8API: 0 + windows7API: 0 + webGLTouch: 1 + windows8Mouse: 1 + windows7Mouse: 1 + universalWindowsMouse: 1 + emulateSecondMousePointer: 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: 100002} + m_IsPrefabParent: 1 diff --git a/Source/Assets/TouchScript/Prefabs/TouchManager.prefab.meta b/Source/Assets/TouchScript/Prefabs/TouchManager.prefab.meta new file mode 100644 index 000000000..e9e488f7d --- /dev/null +++ b/Source/Assets/TouchScript/Prefabs/TouchManager.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 1c4dd8a13f501b04f84fe824120f70bb +NativeFormatImporter: + userData: diff --git a/Source/Assets/TouchScript/Scripts.meta b/Source/Assets/TouchScript/Scripts.meta new file mode 100644 index 000000000..e5ae18b6f --- /dev/null +++ b/Source/Assets/TouchScript/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1fafa4dea83374ca884720fd4dc5d07e +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors.meta b/Source/Assets/TouchScript/Scripts/Behaviors.meta new file mode 100644 index 000000000..674bf6720 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5413b0f53221c41a0bcd996555cb1926 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors.meta new file mode 100644 index 000000000..2672cf330 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 05beb603034a24fb194b9de8359b2718 +folderAsset: yes +timeCreated: 1448109180 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/CursorManager.cs b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/CursorManager.cs new file mode 100644 index 000000000..d901bf4e8 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/CursorManager.cs @@ -0,0 +1,381 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Pointers; +using TouchScript.Utils.Attributes; +using UnityEngine; +using UnityEngine.Profiling; + +namespace TouchScript.Behaviors.Cursors +{ + /// + /// Pointer visualizer which shows pointer circles with debug text using Unity UI. + /// The script should be placed on an element with RectTransform or a Canvas. A reference prefab is provided in TouchScript package. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_Cursors_CursorManager.htm")] + public class CursorManager : MonoBehaviour + { + #region Public properties + + /// + /// Prefab to use as mouse cursors template. + /// + public PointerCursor MouseCursor + { + get { return mouseCursor; } + set { mouseCursor = value; } + } + + /// + /// Prefab to use as touch cursors template. + /// + public PointerCursor TouchCursor + { + get { return touchCursor; } + set { touchCursor = value; } + } + + /// + /// Prefab to use as pen cursors template. + /// + public PointerCursor PenCursor + { + get { return penCursor; } + set { penCursor = value; } + } + + /// + /// Prefab to use as object cursors template. + /// + public PointerCursor ObjectCursor + { + get { return objectCursor; } + set { objectCursor = value; } + } + + /// + /// Gets or sets whether is using DPI to scale pointer cursors. + /// + /// true if DPI value is used; otherwise, false. + public bool UseDPI + { + get { return useDPI; } + set + { + useDPI = value; + updateCursorSize(); + } + } + + /// + /// Gets or sets the size of pointer cursors in cm. This value is only used when is set to true. + /// + /// The size of pointer cursors in cm. + public float CursorSize + { + get { return cursorSize; } + set + { + cursorSize = value; + updateCursorSize(); + } + } + + /// + /// Cursor size in pixels. + /// + public uint CursorPixelSize + { + get { return cursorPixelSize; } + set + { + cursorPixelSize = value; + updateCursorSize(); + } + } + + #endregion + + #region Private variables + + [SerializeField] + private bool cursorsProps; // Used in the custom inspector + + [SerializeField] + private PointerCursor mouseCursor; + + [SerializeField] + private PointerCursor touchCursor; + + [SerializeField] + private PointerCursor penCursor; + + [SerializeField] + private PointerCursor objectCursor; + + [SerializeField] + [ToggleLeft] + private bool useDPI = true; + + [SerializeField] + private float cursorSize = 1f; + + [SerializeField] + private uint cursorPixelSize = 64; + + private RectTransform rect; + private ObjectPool mousePool; + private ObjectPool touchPool; + private ObjectPool penPool; + private ObjectPool objectPool; + private Dictionary cursors = new Dictionary(10); + +#if UNITY_5_6_OR_NEWER + private CustomSampler cursorSampler; +#endif + + #endregion + + #region Unity methods + + private void Awake() + { +#if UNITY_5_6_OR_NEWER + cursorSampler = CustomSampler.Create("[TouchScript] Update Cursors"); + cursorSampler.Begin(); +#endif + + mousePool = new ObjectPool(2, instantiateMouseProxy, null, clearProxy); + touchPool = new ObjectPool(10, instantiateTouchProxy, null, clearProxy); + penPool = new ObjectPool(2, instantiatePenProxy, null, clearProxy); + objectPool = new ObjectPool(2, instantiateObjectProxy, null, clearProxy); + + updateCursorSize(); + + rect = transform as RectTransform; + if (rect == null) + { + Debug.LogError("CursorManager must be on an UI element!"); + enabled = false; + } + +#if UNITY_5_6_OR_NEWER + cursorSampler.End(); +#endif + } + + private void OnEnable() + { + if (TouchManager.Instance != null) + { + TouchManager.Instance.PointersAdded += pointersAddedHandler; + TouchManager.Instance.PointersRemoved += pointersRemovedHandler; + TouchManager.Instance.PointersPressed += pointersPressedHandler; + TouchManager.Instance.PointersReleased += pointersReleasedHandler; + TouchManager.Instance.PointersUpdated += PointersUpdatedHandler; + TouchManager.Instance.PointersCancelled += pointersCancelledHandler; + } + } + + private void OnDisable() + { + if (TouchManager.Instance != null) + { + TouchManager.Instance.PointersAdded -= pointersAddedHandler; + TouchManager.Instance.PointersRemoved -= pointersRemovedHandler; + TouchManager.Instance.PointersPressed -= pointersPressedHandler; + TouchManager.Instance.PointersReleased -= pointersReleasedHandler; + TouchManager.Instance.PointersUpdated -= PointersUpdatedHandler; + TouchManager.Instance.PointersCancelled -= pointersCancelledHandler; + } + } + + #endregion + + #region Private functions + + private PointerCursor instantiateMouseProxy() + { + return Instantiate(mouseCursor); + } + + private PointerCursor instantiateTouchProxy() + { + return Instantiate(touchCursor); + } + + private PointerCursor instantiatePenProxy() + { + return Instantiate(penCursor); + } + + private PointerCursor instantiateObjectProxy() + { + return Instantiate(objectCursor); + } + + private void clearProxy(PointerCursor cursor) + { + cursor.Hide(); + } + + private void updateCursorSize() + { + if (useDPI) cursorPixelSize = (uint) (cursorSize * TouchManager.Instance.DotsPerCentimeter); + } + + #endregion + + #region Event handlers + + private void pointersAddedHandler(object sender, PointerEventArgs e) + { +#if UNITY_5_6_OR_NEWER + cursorSampler.Begin(); +#endif + + updateCursorSize(); + + var count = e.Pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = e.Pointers[i]; + // Don't show internal pointers + if ((pointer.Flags & Pointer.FLAG_INTERNAL) > 0) continue; + + PointerCursor cursor; + switch (pointer.Type) + { + case Pointer.PointerType.Mouse: + cursor = mousePool.Get(); + break; + case Pointer.PointerType.Touch: + cursor = touchPool.Get(); + break; + case Pointer.PointerType.Pen: + cursor = penPool.Get(); + break; + case Pointer.PointerType.Object: + cursor = objectPool.Get(); + break; + default: + continue; + } + + cursor.Size = cursorPixelSize; + cursor.Init(rect, pointer); + cursors.Add(pointer.Id, cursor); + } + +#if UNITY_5_6_OR_NEWER + cursorSampler.End(); +#endif + } + + private void pointersRemovedHandler(object sender, PointerEventArgs e) + { +#if UNITY_5_6_OR_NEWER + cursorSampler.Begin(); +#endif + + var count = e.Pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = e.Pointers[i]; + PointerCursor cursor; + if (!cursors.TryGetValue(pointer.Id, out cursor)) continue; + cursors.Remove(pointer.Id); + + switch (pointer.Type) + { + case Pointer.PointerType.Mouse: + mousePool.Release(cursor); + break; + case Pointer.PointerType.Touch: + touchPool.Release(cursor); + break; + case Pointer.PointerType.Pen: + penPool.Release(cursor); + break; + case Pointer.PointerType.Object: + objectPool.Release(cursor); + break; + } + } + +#if UNITY_5_6_OR_NEWER + cursorSampler.End(); +#endif + } + + private void pointersPressedHandler(object sender, PointerEventArgs e) + { +#if UNITY_5_6_OR_NEWER + cursorSampler.Begin(); +#endif + + var count = e.Pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = e.Pointers[i]; + PointerCursor cursor; + if (!cursors.TryGetValue(pointer.Id, out cursor)) continue; + cursor.SetState(pointer, PointerCursor.CursorState.Pressed); + } + +#if UNITY_5_6_OR_NEWER + cursorSampler.End(); +#endif + } + + private void PointersUpdatedHandler(object sender, PointerEventArgs e) + { +#if UNITY_5_6_OR_NEWER + cursorSampler.Begin(); +#endif + + var count = e.Pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = e.Pointers[i]; + PointerCursor cursor; + if (!cursors.TryGetValue(pointer.Id, out cursor)) continue; + cursor.UpdatePointer(pointer); + } + +#if UNITY_5_6_OR_NEWER + cursorSampler.End(); +#endif + } + + private void pointersReleasedHandler(object sender, PointerEventArgs e) + { +#if UNITY_5_6_OR_NEWER + cursorSampler.Begin(); +#endif + + var count = e.Pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = e.Pointers[i]; + PointerCursor cursor; + if (!cursors.TryGetValue(pointer.Id, out cursor)) continue; + cursor.SetState(pointer, PointerCursor.CursorState.Released); + } + +#if UNITY_5_6_OR_NEWER + cursorSampler.End(); +#endif + } + + private void pointersCancelledHandler(object sender, PointerEventArgs e) + { + pointersRemovedHandler(sender, e); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/CursorManager.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/CursorManager.cs.meta new file mode 100644 index 000000000..0b725e78b --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/CursorManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 75324aa372886435faa21a4145210f8e +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/MouseCursor.cs b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/MouseCursor.cs new file mode 100644 index 000000000..290259ac7 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/MouseCursor.cs @@ -0,0 +1,91 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Text; +using TouchScript.Behaviors.Cursors.UI; +using TouchScript.Pointers; +using TouchScript.Utils; +using UnityEngine; + +namespace TouchScript.Behaviors.Cursors +{ + /// + /// Cursor for mouse pointers. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_Cursors_MouseCursor.htm")] + public class MouseCursor : TextPointerCursor + { + #region Public properties + + /// + /// Default cursor sub object. + /// + public TextureSwitch DefaultCursor; + + /// + /// Pressed cursor sub object. + /// + public TextureSwitch PressedCursor; + + /// + /// Should the value of be shown on the cursor. + /// + public bool ShowButtons = false; + + #endregion + + #region Protected methods + + /// + protected override void updateOnce(IPointer pointer) + { + switch (state) + { + case CursorState.Released: + case CursorState.Over: + if (DefaultCursor != null) DefaultCursor.Show(); + if (PressedCursor != null) PressedCursor.Hide(); + break; + case CursorState.Pressed: + case CursorState.OverPressed: + if (DefaultCursor != null) DefaultCursor.Hide(); + if (PressedCursor != null) PressedCursor.Show(); + break; + } + + base.updateOnce(pointer); + } + + /// + protected override void generateText(MousePointer pointer, StringBuilder str) + { + base.generateText(pointer, str); + + if (ShowButtons) + { + if (str.Length > 0) str.Append("\n"); + str.Append("Buttons: "); + PointerUtils.PressedButtonsToString(pointer.Buttons, str); + } + } + + /// + protected override bool textIsVisible() + { + return base.textIsVisible() || ShowButtons; + } + + /// + protected override uint gethash(MousePointer pointer) + { + var hash = base.gethash(pointer); + + if (ShowButtons) hash += (uint) (pointer.Buttons & Pointer.PointerButtonState.AnyButtonPressed); + + return hash; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/MouseCursor.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/MouseCursor.cs.meta new file mode 100644 index 000000000..e435bd7cd --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/MouseCursor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c8fbf4dedcb22ba4c955bd24592e0845 +timeCreated: 1500143380 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/ObjectCursor.cs b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/ObjectCursor.cs new file mode 100644 index 000000000..63d6f45d8 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/ObjectCursor.cs @@ -0,0 +1,84 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Text; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Behaviors.Cursors +{ + /// + /// Cursor for object pointers. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_Cursors_ObjectCursor.htm")] + public class ObjectCursor : TextPointerCursor + { + #region Public properties + + /// + /// Should the value of be shown on the cursor. + /// + public bool ShowObjectId = false; + + /// + /// Should the values of and be shown on the cursor. + /// + public bool ShowSize = false; + + /// + /// Should the value of be shown on the cursor. + /// + public bool ShowAngle = false; + + #endregion + + #region Protected methods + + /// + protected override void generateText(ObjectPointer pointer, StringBuilder str) + { + base.generateText(pointer, str); + + if (ShowObjectId) + { + if (str.Length > 0) str.Append("\n"); + str.Append("ObjectId: "); + str.Append(pointer.ObjectId); + } + if (ShowSize) + { + if (str.Length > 0) str.Append("\n"); + str.Append("Size: "); + str.Append(pointer.Width); + str.Append("x"); + str.Append(pointer.Height); + } + if (ShowAngle) + { + if (str.Length > 0) str.Append("\n"); + str.Append("Angle: "); + str.Append(pointer.Angle); + } + } + + /// + protected override bool textIsVisible() + { + return base.textIsVisible() || ShowObjectId || ShowSize || ShowAngle; + } + + /// + protected override uint gethash(ObjectPointer pointer) + { + var hash = base.gethash(pointer); + + if (ShowSize) hash += (uint) (pointer.Width * 1024 + pointer.Height * 1024 * 1024) << 8; + if (ShowAngle) hash += (uint) (pointer.Angle * 1024) << 24; + + return hash; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/ObjectCursor.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/ObjectCursor.cs.meta new file mode 100644 index 000000000..3af02327b --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/ObjectCursor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 278a3da2a34252e45bd08b6726d68e87 +timeCreated: 1500144248 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PenCursor.cs b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PenCursor.cs new file mode 100644 index 000000000..9f531d168 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PenCursor.cs @@ -0,0 +1,115 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Text; +using TouchScript.Behaviors.Cursors.UI; +using TouchScript.Pointers; +using TouchScript.Utils; +using UnityEngine; + +namespace TouchScript.Behaviors.Cursors +{ + /// + /// Cursor for pen pointers. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_Cursors_PenCursor.htm")] + public class PenCursor : TextPointerCursor + { + #region Public properties + + /// + /// Default cursor sub object. + /// + public TextureSwitch DefaultCursor; + + /// + /// Pressed cursor sub object. + /// + public TextureSwitch PressedCursor; + + /// + /// Should the value of be shown on the cursor. + /// + public bool ShowButtons = false; + + /// + /// Should the value of be shown on the cursor. + /// + public bool ShowPressure = false; + + /// + /// Should the value of be shown on the cursor. + /// + public bool ShowRotation = false; + + #endregion + + #region Protected methods + + /// + protected override void updateOnce(IPointer pointer) + { + switch (state) + { + case CursorState.Released: + case CursorState.Over: + if (DefaultCursor != null) DefaultCursor.Show(); + if (PressedCursor != null) PressedCursor.Hide(); + break; + case CursorState.Pressed: + case CursorState.OverPressed: + if (DefaultCursor != null) DefaultCursor.Hide(); + if (PressedCursor != null) PressedCursor.Show(); + break; + } + + base.updateOnce(pointer); + } + + /// + protected override void generateText(PenPointer pointer, StringBuilder str) + { + base.generateText(pointer, str); + + if (ShowButtons) + { + if (str.Length > 0) str.Append("\n"); + str.Append("Buttons: "); + PointerUtils.PressedButtonsToString(pointer.Buttons, str); + } + if (ShowPressure) + { + if (str.Length > 0) str.Append("\n"); + str.Append("Pressure: "); + str.AppendFormat("{0:0.000}", pointer.Pressure); + } + if (ShowRotation) + { + if (str.Length > 0) str.Append("\n"); + str.Append("Rotation: "); + str.Append(pointer.Rotation); + } + } + + /// + protected override bool textIsVisible() + { + return base.textIsVisible() || ShowButtons || ShowPressure || ShowRotation; + } + + /// + protected override uint gethash(PenPointer pointer) + { + var hash = base.gethash(pointer); + + if (ShowButtons) hash += (uint) (pointer.Buttons & Pointer.PointerButtonState.AnyButtonPressed); + if (ShowPressure) hash += (uint) (pointer.Pressure * 1024) << 8; + if (ShowRotation) hash += (uint) (pointer.Rotation * 1024) << 16; + + return hash; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PenCursor.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PenCursor.cs.meta new file mode 100644 index 000000000..d41fff151 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PenCursor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 181d9c001cb470f44ac60c140a847605 +timeCreated: 1500144236 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PointerCursor.cs b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PointerCursor.cs new file mode 100644 index 000000000..dd9ee0321 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PointerCursor.cs @@ -0,0 +1,338 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Text; +using TouchScript.Pointers; +using TouchScript.Utils; +using UnityEngine; +using UnityEngine.UI; + +namespace TouchScript.Behaviors.Cursors +{ + /// + /// Abstract class for pointer cursors with text. + /// + /// Pointer type. + /// + public abstract class TextPointerCursor : PointerCursor where T : IPointer + { + #region Public properties + + /// + /// Should the value of be shown on screen on the cursor. + /// + public bool ShowPointerId = true; + + /// + /// Should the value of be shown on screen on the cursor. + /// + public bool ShowFlags = false; + + /// + /// The link to UI.Text component. + /// + public Text Text; + + #endregion + + #region Private variables + + private static StringBuilder stringBuilder = new StringBuilder(64); + + #endregion + + #region Protected methods + + /// + protected override void updateOnce(IPointer pointer) + { + base.updateOnce(pointer); + + if (Text == null) return; + if (!textIsVisible()) + { + Text.enabled = false; + return; + } + + Text.enabled = true; + stringBuilder.Length = 0; + generateText((T) pointer, stringBuilder); + + Text.text = stringBuilder.ToString(); + } + + /// + /// Generates text for pointer. + /// + /// The pointer. + /// The string builder to use. + protected virtual void generateText(T pointer, StringBuilder str) + { + if (ShowPointerId) + { + str.Append("Id: "); + str.Append(pointer.Id); + } + if (ShowFlags) + { + if (str.Length > 0) str.Append("\n"); + str.Append("Flags: "); + BinaryUtils.ToBinaryString(pointer.Flags, str, 8); + } + } + + /// + /// Indicates if text should be visible. + /// + /// True if pointer text should be displayed; false otherwise. + protected virtual bool textIsVisible() + { + return ShowPointerId || ShowFlags; + } + + /// + /// Typed version of . Returns a hash of a cursor state. + /// + /// The pointer. + /// Integer hash. + protected virtual uint gethash(T pointer) + { + var hash = (uint) state; + if (ShowFlags) hash += pointer.Flags << 3; + return hash; + } + + /// + protected sealed override uint getPointerHash(IPointer pointer) + { + return gethash((T) pointer); + } + + #endregion + } + + /// + /// Visual cursor implementation used by TouchScript. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_Cursors_PointerCursor.htm")] + public class PointerCursor : MonoBehaviour + { + #region Consts + + /// + /// Possible states of a cursor. + /// + public enum CursorState + { + /// + /// Not pressed. + /// + Released, + + /// + /// Pressed. + /// + Pressed, + + /// + /// Over something. + /// + Over, + + /// + /// Over and pressed. + /// + OverPressed + } + + #endregion + + #region Public properties + + /// + /// Cursor size in pixels. + /// + public float Size + { + get { return size; } + set + { + size = value; + if (size > 0) + { + rect.sizeDelta = Vector2.one * size; + } + else + { + size = 0; + rect.sizeDelta = Vector2.one * defaultSize; + } + } + } + + #endregion + + #region Private variables + + /// + /// Current cursor state. + /// + protected CursorState state; + + /// + /// CUrrent cursor state data. + /// + protected object stateData; + + /// + /// Cached RectTransform. + /// + protected RectTransform rect; + + /// + /// Cursor size. + /// + protected float size = 0; + + /// + /// Initial cursor size in pixels. + /// + protected float defaultSize; + + /// + /// Last data hash. + /// + protected uint hash = uint.MaxValue; + + private CanvasGroup group; + + #endregion + + #region Public methods + + /// + /// Initializes (resets) the cursor. + /// + /// Parent container. + /// Pointer this cursor represents. + public void Init(RectTransform parent, IPointer pointer) + { + hash = uint.MaxValue; + group = GetComponent(); + + show(); + rect.SetParent(parent); + rect.SetAsLastSibling(); + state = CursorState.Released; + + UpdatePointer(pointer); + } + + /// + /// Updates the pointer. This method is called when the pointer is moved. + /// + /// Pointer this cursor represents. + public void UpdatePointer(IPointer pointer) + { + rect.anchoredPosition = pointer.Position; + var newHash = getPointerHash(pointer); + if (newHash != hash) updateOnce(pointer); + hash = newHash; + + update(pointer); + } + + /// + /// Sets the state of the cursor. + /// + /// The pointer. + /// The new state. + /// State data. + public void SetState(IPointer pointer, CursorState newState, object data = null) + { + state = newState; + stateData = data; + + var newHash = getPointerHash(pointer); + if (newHash != hash) updateOnce(pointer); + hash = newHash; + } + + /// + /// Hides this instance. + /// + public void Hide() + { + hide(); + } + + #endregion + + #region Unity methods + + private void Awake() + { + rect = transform as RectTransform; + if (rect == null) + { + Debug.LogError("PointerCursor must be on an UI element!"); + enabled = false; + return; + } + rect.anchorMin = rect.anchorMax = Vector2.zero; + defaultSize = rect.sizeDelta.x; + } + + #endregion + + #region Protected methods + + /// + /// Hides (clears) this instance. + /// + protected virtual void hide() + { + group.alpha = 0; +#if UNITY_EDITOR + gameObject.name = "Inactive Pointer"; +#endif + } + + /// + /// Shows this instance. + /// + protected virtual void show() + { + group.alpha = 1; +#if UNITY_EDITOR + gameObject.name = "Pointer"; +#endif + } + + /// + /// This method is called once when the cursor is initialized. + /// + /// The pointer. + protected virtual void updateOnce(IPointer pointer) {} + + /// + /// This method is called every time when the pointer changes. + /// + /// The pointer. + protected virtual void update(IPointer pointer) {} + + /// + /// Returns pointer hash. + /// + /// The pointer. + /// Integer hash value. + protected virtual uint getPointerHash(IPointer pointer) + { + return (uint) state; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PointerCursor.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PointerCursor.cs.meta new file mode 100644 index 000000000..7c9a29c24 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/PointerCursor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7cb960f8e83f447beb42da7d064d77e2 +timeCreated: 1448109185 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/TouchCursor.cs b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/TouchCursor.cs new file mode 100644 index 000000000..e6c1ce249 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/TouchCursor.cs @@ -0,0 +1,71 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Text; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Behaviors.Cursors +{ + /// + /// Cursor for touch pointers. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_Cursors_TouchCursor.htm")] + public class TouchCursor : TextPointerCursor + { + #region Public properties + + /// + /// Should the value of be shown on the cursor. + /// + public bool ShowPressure = false; + + /// + /// Should the value of be shown on the cursor. + /// + public bool ShowRotation = false; + + #endregion + + #region Protected methods + + /// + protected override void generateText(TouchPointer pointer, StringBuilder str) + { + base.generateText(pointer, str); + + if (ShowPressure) + { + if (str.Length > 0) str.Append("\n"); + str.Append("Pressure: "); + str.AppendFormat("{0:0.000}", pointer.Pressure); + } + if (ShowRotation) + { + if (str.Length > 0) str.Append("\n"); + str.Append("Rotation: "); + str.Append(pointer.Rotation); + } + } + + /// + protected override bool textIsVisible() + { + return base.textIsVisible() || ShowPressure || ShowRotation; + } + + /// + protected override uint gethash(TouchPointer pointer) + { + var hash = base.gethash(pointer); + + if (ShowPressure) hash += (uint) (pointer.Pressure * 1024) << 8; + if (ShowRotation) hash += (uint) (pointer.Rotation * 1024) << 16; + + return hash; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/TouchCursor.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/TouchCursor.cs.meta new file mode 100644 index 000000000..1e6680559 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/TouchCursor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d3a5cfcc9939fb340b2c3ed29a3d0b5d +timeCreated: 1500144224 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI.meta new file mode 100644 index 000000000..20a9f09b9 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e004f1e8c67a2194bbd272848892c468 +folderAsset: yes +timeCreated: 1500212489 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/GradientTexture.cs b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/GradientTexture.cs new file mode 100644 index 000000000..2040a1a66 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/GradientTexture.cs @@ -0,0 +1,130 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace TouchScript.Behaviors.Cursors.UI +{ + /// + /// Generates a texture with a circle gradient. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_Cursors_UI_GradientTexture.htm")] + public class GradientTexture : MonoBehaviour + { + /// + /// Resolution in pixels. + /// + public enum Res + { + /// + /// 16x16 + /// + Pix16 = 16, + + /// + /// 32x32 + /// + Pix32 = 32, + + /// + /// 64x64 + /// + Pix64 = 64, + + /// + /// 128x128 + /// + Pix128 = 128, + + /// + /// 256x256 + /// + Pix256 = 256, + + /// + /// 512x512 + /// + Pix512 = 512 + } + + /// + /// The gradient. + /// + public Gradient Gradient = new Gradient(); + + /// + /// Gradient's name. Used to cache textures. + /// + public string Name = "Gradient"; + + /// + /// Texture resolution. + /// + public Res Resolution = Res.Pix128; + + private Texture2D texture; + private static Dictionary textureCache = new Dictionary(); + + /// + /// Generates the gradient texture. + /// + /// Generated texture. + public Texture2D Generate() + { + var res = (int) Resolution; + var tex = new Texture2D(res, 1, TextureFormat.ARGB32, false, true) + { + name = Name, + filterMode = FilterMode.Bilinear, + wrapMode = TextureWrapMode.Clamp + }; + + var colors = new Color[res]; + float div = res; + for (var i = 0; i < res; i++) + { + float t = i / div; + colors[i] = Gradient.Evaluate(t); + } + tex.SetPixels(colors); + tex.Apply(false, true); + + return tex; + } + + private void Start() + { + var hash = Name.GetHashCode(); + if (!textureCache.TryGetValue(hash, out texture)) + { + texture = Generate(); + textureCache.Add(hash, texture); + } + apply(); + } + + private void OnValidate() + { + refresh(); + } + + private void refresh() + { + if (texture != null) + DestroyImmediate(texture); + texture = Generate(); + apply(); + } + + private void apply() + { + var r = GetComponent(); + if (r == null) throw new Exception("GradientTexture must be on an UI element with RawImage component."); + r.texture = texture; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/GradientTexture.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/GradientTexture.cs.meta new file mode 100644 index 000000000..35ce4ef3c --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/GradientTexture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d78b78253cc71a64ca6bf0978d7ac99e +timeCreated: 1500212518 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/TextureSwitch.cs b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/TextureSwitch.cs new file mode 100644 index 000000000..6c3d6ab14 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/TextureSwitch.cs @@ -0,0 +1,40 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Behaviors.Cursors.UI +{ + /// + /// A helper class to turn on and off without causing allocations. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_Cursors_UI_TextureSwitch.htm")] + public class TextureSwitch : MonoBehaviour + { + + private CanvasRenderer r; + + /// + /// Shows this instance. + /// + public void Show() + { + r.SetAlpha(1); + } + + /// + /// Hides this instance. + /// + public void Hide() + { + r.SetAlpha(0); + } + + private void Awake() + { + r = GetComponent(); + } + + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/TextureSwitch.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/TextureSwitch.cs.meta new file mode 100644 index 000000000..516f9df40 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Cursors/UI/TextureSwitch.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1a709300256ec1e4995018f4f91470aa +timeCreated: 1500663748 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Transformer.cs b/Source/Assets/TouchScript/Scripts/Behaviors/Transformer.cs new file mode 100644 index 000000000..af22125cc --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Transformer.cs @@ -0,0 +1,368 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Gestures; +using TouchScript.Gestures.TransformGestures; +using TouchScript.Gestures.TransformGestures.Base; +using TouchScript.Utils.Attributes; +using UnityEngine; + +namespace TouchScript.Behaviors +{ + /// + /// Component which transforms an object according to events from transform gestures: , , and others. + /// + [AddComponentMenu("TouchScript/Behaviors/Transformer")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_Transformer.htm")] + public class Transformer : MonoBehaviour + { + // Here's how it works. + // + // If smoothing is not enabled, the component just gets gesture events in stateChangedHandler(), passes Changed event to manualUpdate() which calls applyValues() to sett updated values. + // The value of transformMask is used to only set values which were changed not to interfere with scripts changing this values. + // + // If smoothing is enabled — targetPosition, targetScale, targetRotation are cached and a lerp from current position to these target positions is applied every frame in update() method. It also checks transformMask to change only needed values. + // If none of the delta values pass the threshold, the component transitions to idle state. + + #region Consts + + /// + /// State for internal Transformer state machine. + /// + private enum TransformerState + { + /// + /// Nothing is happening. + /// + Idle, + + /// + /// The object is under manual control, i.e. user is transforming it. + /// + Manual, + + /// + /// The object is under automatic control, i.e. it's being smoothly moved into target position when user lifted all fingers off. + /// + Automatic + } + + #endregion + + #region Public properties + + /// + /// Gets or sets a value indicating whether Smoothing is enabled. Smoothing allows to reduce jagged movements but adds some visual lag. + /// + /// + /// true if Smoothing is enabled; otherwise, false. + /// + public bool EnableSmoothing + { + get { return enableSmoothing; } + set { enableSmoothing = value; } + } + + /// + /// Gets or sets the smoothing factor. + /// + /// + /// The smoothing factor. Indicates how much smoothing to apply. 0 - no smoothing, 100000 - maximum. + /// + public float SmoothingFactor + { + get { return smoothingFactor * 100000f; } + set { smoothingFactor = Mathf.Clamp(value / 100000f, 0, 1); } + } + + /// + /// Gets or sets the position threshold. + /// + /// + /// Minimum distance between target position and smoothed position when to stop automatic movement. + /// + public float PositionThreshold + { + get { return Mathf.Sqrt(positionThreshold); } + set { positionThreshold = value * value; } + } + + /// + /// Gets or sets the rotation threshold. + /// + /// + /// Minimum angle between target rotation and smoothed rotation when to stop automatic movement. + /// + public float RotationThreshold + { + get { return rotationThreshold; } + set { rotationThreshold = value; } + } + + /// + /// Gets or sets the scale threshold. + /// + /// + /// Minimum difference between target scale and smoothed scale when to stop automatic movement. + /// + public float ScaleThreshold + { + get { return Mathf.Sqrt(scaleThreshold); } + set { scaleThreshold = value * value; } + } + + /// + /// Gets or sets a value indicating whether this transform can be changed from another script. + /// + /// + /// true if this transform can be changed from another script; otherwise, false. + /// + public bool AllowChangingFromOutside + { + get { return allowChangingFromOutside; } + set { allowChangingFromOutside = value; } + } + + #endregion + + #region Private variables + + [SerializeField] + [ToggleLeft] + private bool enableSmoothing = false; + + [SerializeField] + private float smoothingFactor = 1f / 100000f; + + [SerializeField] + private float positionThreshold = 0.01f; + + [SerializeField] + private float rotationThreshold = 0.1f; + + [SerializeField] + private float scaleThreshold = 0.01f; + + [SerializeField] + [ToggleLeft] + private bool allowChangingFromOutside = false; + + private TransformerState state; + + private TransformGestureBase gesture; + private Transform cachedTransform; + + private TransformGesture.TransformType transformMask; + private Vector3 targetPosition, targetScale; + private Quaternion targetRotation; + + // last* variables are needed to detect when Transform's properties were changed outside of this script + private Vector3 lastPosition, lastScale; + private Quaternion lastRotation; + + #endregion + + #region Unity methods + + private void Awake() + { + cachedTransform = transform; + } + + private void OnEnable() + { + gesture = GetComponent(); + gesture.StateChanged += stateChangedHandler; + TouchManager.Instance.FrameFinished += frameFinishedHandler; + + stateIdle(); + } + + private void OnDisable() + { + if (gesture != null) gesture.StateChanged -= stateChangedHandler; + if (TouchManager.Instance != null) + TouchManager.Instance.FrameFinished -= frameFinishedHandler; + + stateIdle(); + } + + #endregion + + #region States + + private void stateIdle() + { + var prevState = state; + setState(TransformerState.Idle); + + if (enableSmoothing && prevState == TransformerState.Automatic) + { + transform.position = lastPosition = targetPosition; + var newLocalScale = lastScale = targetScale; + // prevent recalculating colliders when no scale occurs + if (newLocalScale != transform.localScale) transform.localScale = newLocalScale; + transform.rotation = lastRotation = targetRotation; + } + + transformMask = TransformGesture.TransformType.None; + } + + private void stateManual() + { + setState(TransformerState.Manual); + + targetPosition = lastPosition = cachedTransform.position; + targetRotation = lastRotation = cachedTransform.rotation; + targetScale = lastScale = cachedTransform.localScale; + transformMask = TransformGesture.TransformType.None; + } + + private void stateAutomatic() + { + setState(TransformerState.Automatic); + + if (!enableSmoothing || transformMask == TransformGesture.TransformType.None) stateIdle(); + } + + private void setState(TransformerState newState) + { + state = newState; + } + + #endregion + + #region Private functions + + private void update() + { + if (state == TransformerState.Idle) return; + + if (!enableSmoothing) return; + + var fraction = 1 - Mathf.Pow(smoothingFactor, Time.unscaledDeltaTime); + var changed = false; + + if ((transformMask & TransformGesture.TransformType.Scaling) != 0) + { + var scale = transform.localScale; + if (allowChangingFromOutside) + { + // Changed by someone else. + // Need to make sure to check per component here. + if (!Mathf.Approximately(scale.x, lastScale.x)) + targetScale.x = scale.x; + if (!Mathf.Approximately(scale.y, lastScale.y)) + targetScale.y = scale.y; + if (!Mathf.Approximately(scale.z, lastScale.z)) + targetScale.z = scale.z; + } + var newLocalScale = Vector3.Lerp(scale, targetScale, fraction); + // Prevent recalculating colliders when no scale occurs. + if (newLocalScale != scale) + { + transform.localScale = newLocalScale; + // Something might have adjusted our scale. + lastScale = transform.localScale; + } + + if (state == TransformerState.Automatic && !changed && (targetScale - lastScale).sqrMagnitude > scaleThreshold) changed = true; + } + + if ((transformMask & TransformGesture.TransformType.Rotation) != 0) + { + if (allowChangingFromOutside) + { + // Changed by someone else. + if (transform.rotation != lastRotation) targetRotation = transform.rotation; + } + transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, fraction); + // Something might have adjusted our rotation. + lastRotation = transform.rotation; + + if (state == TransformerState.Automatic && !changed && Quaternion.Angle(targetRotation, lastRotation) > rotationThreshold) changed = true; + } + + if ((transformMask & TransformGesture.TransformType.Translation) != 0) + { + var pos = transform.position; + if (allowChangingFromOutside) + { + // Changed by someone else. + // Need to make sure to check per component here. + if (!Mathf.Approximately(pos.x, lastPosition.x)) + targetPosition.x = pos.x; + if (!Mathf.Approximately(pos.y, lastPosition.y)) + targetPosition.y = pos.y; + if (!Mathf.Approximately(pos.z, lastPosition.z)) + targetPosition.z = pos.z; + } + transform.position = Vector3.Lerp(pos, targetPosition, fraction); + // Something might have adjusted our position (most likely Unity UI). + lastPosition = transform.position; + + if (state == TransformerState.Automatic && !changed && (targetPosition - lastPosition).sqrMagnitude > positionThreshold) changed = true; + } + + if (state == TransformerState.Automatic && !changed) stateIdle(); + } + + private void manualUpdate() + { + if (state != TransformerState.Manual) stateManual(); + + var mask = gesture.TransformMask; + if ((mask & TransformGesture.TransformType.Scaling) != 0) targetScale *= gesture.DeltaScale; + if ((mask & TransformGesture.TransformType.Rotation) != 0) + targetRotation = Quaternion.AngleAxis(gesture.DeltaRotation, gesture.RotationAxis) * targetRotation; + if ((mask & TransformGesture.TransformType.Translation) != 0) targetPosition += gesture.DeltaPosition; + transformMask |= mask; + + gesture.OverrideTargetPosition(targetPosition); + + if (!enableSmoothing) applyValues(); + } + + private void applyValues() + { + if ((transformMask & TransformGesture.TransformType.Scaling) != 0) cachedTransform.localScale = targetScale; + if ((transformMask & TransformGesture.TransformType.Rotation) != 0) cachedTransform.rotation = targetRotation; + if ((transformMask & TransformGesture.TransformType.Translation) != 0) cachedTransform.position = targetPosition; + transformMask = TransformGesture.TransformType.None; + } + + #endregion + + #region Event handlers + + private void stateChangedHandler(object sender, GestureStateChangeEventArgs gestureStateChangeEventArgs) + { + switch (gestureStateChangeEventArgs.State) + { + case Gesture.GestureState.Possible: + stateManual(); + break; + case Gesture.GestureState.Changed: + manualUpdate(); + break; + case Gesture.GestureState.Ended: + case Gesture.GestureState.Cancelled: + stateAutomatic(); + break; + case Gesture.GestureState.Failed: + case Gesture.GestureState.Idle: + if (gestureStateChangeEventArgs.PreviousState == Gesture.GestureState.Possible) stateAutomatic(); + break; + } + } + + private void frameFinishedHandler(object sender, EventArgs eventArgs) + { + update(); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/Transformer.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/Transformer.cs.meta new file mode 100644 index 000000000..e9767a115 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/Transformer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 978a486d8ecf8437cbb87e8534908895 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/UI.meta b/Source/Assets/TouchScript/Scripts/Behaviors/UI.meta new file mode 100644 index 000000000..39f8490be --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/UI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fb6db513e55511045b8e5bf15efdb30d +folderAsset: yes +timeCreated: 1500209323 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/UI/OverHelper.cs b/Source/Assets/TouchScript/Scripts/Behaviors/UI/OverHelper.cs new file mode 100644 index 000000000..03ed25894 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/UI/OverHelper.cs @@ -0,0 +1,145 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Pointers; +using TouchScript.Utils; +using UnityEngine; + +namespace TouchScript.Behaviors.UI +{ + + /// + /// This component listens for pointer events and dispatches event when the first touch enters the area of the GameObject it is attached to and event when the last touch leaves it. + /// + [AddComponentMenu("TouchScript/Behaviors/OverHelper")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Behaviors_UI_OverHelper.htm")] + public class OverHelper : MonoBehaviour + { + + #region Events + + /// + /// Occurs when the first (non-pressed) touch enters the area of the GameObject. + /// + public event EventHandler Over; + + /// + /// Occurs when the last touch leaves the area of the GameObject. + /// + public event EventHandler Out; + + #endregion + + #region Private variable + + private HashSet pointers = new HashSet(); + + #endregion + + #region Unity methods + + private void OnEnable() + { + TouchManager.Instance.PointersAdded += pointersAddedHandler; + TouchManager.Instance.PointersUpdated += pointersUpdatedHandler; + TouchManager.Instance.PointersReleased += pointersReleasedHandler; + TouchManager.Instance.PointersRemoved += pointersRemovedHandler; + TouchManager.Instance.PointersCancelled += pointersRemovedHandler; + } + + private void OnDisable() + { + if (TouchManager.Instance == null) return; + TouchManager.Instance.PointersAdded -= pointersAddedHandler; + TouchManager.Instance.PointersUpdated -= pointersUpdatedHandler; + TouchManager.Instance.PointersReleased -= pointersReleasedHandler; + TouchManager.Instance.PointersRemoved -= pointersRemovedHandler; + TouchManager.Instance.PointersCancelled -= pointersRemovedHandler; + } + + #endregion + + #region Private functions + + private void dispatchOver() + { + if (Over != null) Over.InvokeHandleExceptions(this, EventArgs.Empty); + } + + private void dispatchOut() + { + if (Out != null) Out.InvokeHandleExceptions(this, EventArgs.Empty); + } + + #endregion + + #region Callbacks + + private void pointersAddedHandler(object sender, PointerEventArgs pointerEventArgs) + { + var over = pointers.Count; + var p = pointerEventArgs.Pointers; + var count = p.Count; + for (var i = 0; i < count; i++) + { + var pointer = p[i]; + if (PointerUtils.IsPointerOnTarget(pointer, transform)) pointers.Add(pointer.Id); + } + + if (over == 0 && pointers.Count > 0) dispatchOver(); + } + + private void pointersUpdatedHandler(object sender, PointerEventArgs pointerEventArgs) + { + var over = pointers.Count; + var p = pointerEventArgs.Pointers; + var count = p.Count; + for (var i = 0; i < count; i++) + { + var pointer = p[i]; + if ((pointer.Buttons & Pointer.PointerButtonState.AnyButtonPressed) != 0) continue; // we ignore pressed pointers + if (PointerUtils.IsPointerOnTarget(pointer, transform)) pointers.Add(pointer.Id); + else pointers.Remove(pointer.Id); + } + + if (over == 0 && pointers.Count > 0) dispatchOver(); + else if (over > 0 && pointers.Count == 0) dispatchOut(); + } + + private void pointersReleasedHandler(object sender, PointerEventArgs pointerEventArgs) + { + var over = pointers.Count; + var p = pointerEventArgs.Pointers; + var count = p.Count; + for (var i = 0; i < count; i++) + { + var pointer = p[i]; + if (PointerUtils.IsPointerOnTarget(pointer, transform)) pointers.Add(pointer.Id); + else pointers.Remove(pointer.Id); + } + + if (over == 0 && pointers.Count > 0) dispatchOver(); + else if (over > 0 && pointers.Count == 0) dispatchOut(); + } + + private void pointersRemovedHandler(object sender, PointerEventArgs pointerEventArgs) + { + var over = pointers.Count; + var p = pointerEventArgs.Pointers; + var count = p.Count; + for (var i = 0; i < count; i++) + { + var pointer = p[i]; + pointers.Remove(pointer.Id); + } + + if (over > 0 && pointers.Count == 0) dispatchOut(); + } + + #endregion + + } +} diff --git a/Source/Assets/TouchScript/Scripts/Behaviors/UI/OverHelper.cs.meta b/Source/Assets/TouchScript/Scripts/Behaviors/UI/OverHelper.cs.meta new file mode 100644 index 000000000..e4e79dceb --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Behaviors/UI/OverHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 66f406de0e0ca42828041209d7c5f611 +timeCreated: 1468201700 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Clusters.meta b/Source/Assets/TouchScript/Scripts/Clusters.meta new file mode 100644 index 000000000..670f53bbc --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Clusters.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5c33e9956a93a43478c998eb73358a31 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Clusters/Clusters2D.cs b/Source/Assets/TouchScript/Scripts/Clusters/Clusters2D.cs new file mode 100644 index 000000000..3082e4fcf --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Clusters/Clusters2D.cs @@ -0,0 +1,329 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Clusters +{ + /// + /// Represents a pool of points separated into two clusters. + /// + public sealed class Clusters2D + { + #region Constants + + /// + /// The first cluster. + /// + public const int CLUSTER1 = 0; + + /// + /// The second cluster. + /// + public const int CLUSTER2 = 1; + + #endregion + + #region Public properties + + /// + /// Gets the total number of points in clusters represented by this object. + /// + public int PointsCount + { + get { return points.Count; } + } + + /// + /// Gets or sets minimum distance in pixels between clusters to treat them as two separate clusters. + /// + /// Minimum distance in pixels which must be between cluster centers to consider them as separate clusters. + /// This value is used to set the limit of how close cluster can be. Sometimes very close points shouldn't be treated as being in separate clusters. + public float MinPointsDistance + { + get { return minPointDistance; } + set + { + minPointDistance = value; + minPointDistanceSqr = value * value; + } + } + + /// + /// Indicates that this cluster instance has two valid clusters. + /// + /// true if this instance has clusters; otherwise, false. + public bool HasClusters + { + get + { + if (dirty) distributePoints(); + return hasClusters; + } + } + + #endregion + + #region Private variables + + private List points = new List(); + private bool dirty; + private List cluster1 = new List(); + private List cluster2 = new List(); + private float minPointDistance, minPointDistanceSqr; + private bool hasClusters = false; + + #endregion + + /// + /// Initializes a new instance of the class. + /// + public Clusters2D() + { + MinPointsDistance = 0; + markDirty(); + } + + #region Public methods + + /// + /// Calculates the center position of one of the clusters. + /// + /// Cluster id. Either or . + /// Cluster's centroid position or if cluster contains no pointers. + public Vector2 GetCenterPosition(int id) + { + if (!HasClusters) return TouchManager.INVALID_POSITION; + + Vector2 result; + switch (id) + { + case CLUSTER1: + result = ClusterUtils.Get2DCenterPosition(cluster1); + break; + case CLUSTER2: + result = ClusterUtils.Get2DCenterPosition(cluster2); + break; + default: + return TouchManager.INVALID_POSITION; + } + return result; + } + + /// + /// Calculates previous center position of one of the clusters. + /// + /// Cluster id. Either or . + /// Cluster's centroid previous position or if cluster contains no pointers. + public Vector2 GetPreviousCenterPosition(int id) + { + if (!HasClusters) return TouchManager.INVALID_POSITION; + + Vector2 result; + switch (id) + { + case CLUSTER1: + result = ClusterUtils.GetPrevious2DCenterPosition(cluster1); + break; + case CLUSTER2: + result = ClusterUtils.GetPrevious2DCenterPosition(cluster2); + break; + default: + return TouchManager.INVALID_POSITION; + } + return result; + } + + /// + /// Adds a pointer to cluster. + /// A pointer. + public void AddPoint(Pointer pointer) + { + if (points.Contains(pointer)) return; + + points.Add(pointer); + markDirty(); + } + + /// + /// Adds a list of pointers to cluster. + /// + /// List of pointers. + public void AddPoints(IList pointers) + { + var count = pointers.Count; + for (var i = 0; i < count; i++) AddPoint(pointers[i]); + } + + /// + /// Removes a pointer from cluster. + /// + /// A pointer. + public void RemovePoint(Pointer pointer) + { + if (!points.Contains(pointer)) return; + + points.Remove(pointer); + markDirty(); + } + + /// + /// Removes a list of pointers from cluster. + /// + /// List of pointers. + public void RemovePoints(IList points) + { + var count = points.Count; + for (var i = 0; i < count; i++) RemovePoint(points[i]); + } + + /// + /// Removes all pointers from cluster. + /// + public void RemoveAllPoints() + { + points.Clear(); + markDirty(); + } + + /// + /// Invalidates cluster state. Call this method to recalculate cluster properties. + /// + public void Invalidate() + { + markDirty(); + } + + #endregion + + #region Private functions + + private void distributePoints() + { + cluster1.Clear(); + cluster2.Clear(); + + hasClusters = checkClusters(); + if (!hasClusters) return; + + cluster1.Add(points[0]); + cluster2.Add(points[1]); + + var total = points.Count; + if (total == 2) return; + + var oldHash1 = ""; + var oldHash2 = ""; + var hash1 = "#"; + var hash2 = "#"; + + while (oldHash1 != hash1 || oldHash2 != hash2) + { + var center1 = ClusterUtils.Get2DCenterPosition(cluster1); + var center2 = ClusterUtils.Get2DCenterPosition(cluster2); + Pointer obj1 = null; + Pointer obj2 = null; + + // Take most distant points from cluster1 and cluster2 + var maxDist1 = -float.MaxValue; + var maxDist2 = -float.MaxValue; + for (var i = 0; i < total; i++) + { + var obj = points[i]; + var dist = (center1 - obj.Position).sqrMagnitude; + if (dist > maxDist2) + { + maxDist2 = dist; + obj2 = obj; + } + + dist = (center2 - obj.Position).sqrMagnitude; + if (dist > maxDist1) + { + maxDist1 = dist; + obj1 = obj; + } + } + + // If it is the same point it means that this point is too far away from both clusters and has to be in a separate cluster + if (obj1 == obj2) + { + center1 = (center1 + center2) * .5f; + center2 = obj2.Position; + } + else + { + center1 = obj1.Position; + center2 = obj2.Position; + } + + cluster1.Clear(); + cluster2.Clear(); + + for (var i = 0; i < total; i++) + { + var obj = points[i]; + if ((center1 - obj.Position).sqrMagnitude < (center2 - obj.Position).sqrMagnitude) + { + cluster1.Add(obj); + } + else + { + cluster2.Add(obj); + } + } + + oldHash1 = hash1; + oldHash2 = hash2; + hash1 = ClusterUtils.GetPointsHash(cluster1); + hash2 = ClusterUtils.GetPointsHash(cluster2); + } + + markClean(); + } + + private bool checkClusters() + { + var length = points.Count - 1; + if (length < 1) return false; + if (length == 1) + { + var p1 = points[0].Position; + var p2 = points[1].Position; + var dx = p1.x - p2.x; + var dy = p1.y - p2.y; + if (dx * dx + dy * dy >= minPointDistanceSqr) return true; + return false; + } + + for (var i = 0; i < length; i++) + { + for (var j = i + 1; j <= length; j++) + { + var p1 = points[i].Position; + var p2 = points[j].Position; + var dx = p1.x - p2.x; + var dy = p1.y - p2.y; + if (dx * dx + dy * dy >= minPointDistanceSqr) return true; + } + } + return false; + } + + private void markDirty() + { + dirty = true; + } + + private void markClean() + { + dirty = false; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Clusters/Clusters2D.cs.meta b/Source/Assets/TouchScript/Scripts/Clusters/Clusters2D.cs.meta new file mode 100644 index 000000000..663634cb1 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Clusters/Clusters2D.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5b6085d6e46444dc7a6c9e673016b565 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Core.meta b/Source/Assets/TouchScript/Scripts/Core.meta new file mode 100644 index 000000000..515de20f1 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Core.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bb470f21b40fb46658df225e066112a2 +folderAsset: yes +timeCreated: 1500961062 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Core/DebuggableMonoBehaviour.cs b/Source/Assets/TouchScript/Scripts/Core/DebuggableMonoBehaviour.cs new file mode 100644 index 000000000..61bd36e44 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Core/DebuggableMonoBehaviour.cs @@ -0,0 +1,42 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG +using TouchScript.Utils.Attributes; +#endif +using UnityEngine; + +namespace TouchScript.Core +{ + /// + /// A debuggable component. When built with TOUCHSCRIPT_DEBUG define has a checkbox to turn debug information on and off. + /// + public class DebuggableMonoBehaviour : MonoBehaviour, IDebuggable + { + /// + public virtual bool DebugMode + { + get + { +#if TOUCHSCRIPT_DEBUG + return debugMode; +#else + return false; +#endif + } + set + { +#if TOUCHSCRIPT_DEBUG + debugMode = value; +#endif + } + } + +#if TOUCHSCRIPT_DEBUG + [SerializeField] + [ToggleLeft] + private bool debugMode = false; +#endif + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Core/DebuggableMonoBehaviour.cs.meta b/Source/Assets/TouchScript/Scripts/Core/DebuggableMonoBehaviour.cs.meta new file mode 100644 index 000000000..e34342dbc --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Core/DebuggableMonoBehaviour.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c0727eb6299e14d74accd8ae22d26fec +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Core/GestureManagerInstance.cs b/Source/Assets/TouchScript/Scripts/Core/GestureManagerInstance.cs new file mode 100644 index 000000000..5bbaad504 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Core/GestureManagerInstance.cs @@ -0,0 +1,705 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Gestures; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.Profiling; + +namespace TouchScript.Core +{ + /// + /// Internal implementation of . + /// + internal sealed class GestureManagerInstance : MonoBehaviour, IGestureManager + { + #region Public properties + + /// + /// Gets the instance of GestureManager singleton. + /// + public static IGestureManager Instance + { + get + { + if (shuttingDown) return null; + if (instance == null) + { + if (!Application.isPlaying) return null; + var objects = FindObjectsOfType(); + if (objects.Length == 0) + { + var go = new GameObject("GestureManager Instance"); + instance = go.AddComponent(); + } + else if (objects.Length >= 1) + { + instance = objects[0]; + } + } + return instance; + } + } + + /// + public IGestureDelegate GlobalGestureDelegate { get; set; } + + #endregion + + #region Private variables + + private static GestureManagerInstance instance; + private static bool shuttingDown = false; + + // Upcoming changes + private List gesturesToReset = new List(20); + private Dictionary> pointerToGestures = new Dictionary>(10); + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Temporary collections + + // Temporary collections for update methods. + // Dictionary> - pointers sorted by targets + private Dictionary> pointersOnTarget = new Dictionary>(10); + // Dictionary> - pointers sorted by gesture + private Dictionary> pointersToDispatchForGesture = new Dictionary>(10); + private List activeGesturesThisUpdate = new List(20); + + private Dictionary> hierarchyEndingWithCache = new Dictionary>(4); + private Dictionary> hierarchyBeginningWithCache = new Dictionary>(4); + + #endregion + + #region Pools + + private static ObjectPool> gestureListPool = new ObjectPool>(10, + () => new List(10), null, (l) => l.Clear(), "GestureManager/Gesture"); + + private static ObjectPool> pointerListPool = new ObjectPool>(20, + () => new List(10), null, (l) => l.Clear(), "GestureManager/Pointer"); + + private static ObjectPool> transformListPool = new ObjectPool>(10, + () => new List(10), null, (l) => l.Clear(), "GestureManager/Transform"); + + #endregion + + #region Unity + + private void Awake() + { + if (instance == null) + { + instance = this; + } + else if (instance != this) + { + Destroy(this); + return; + } + + gameObject.hideFlags = HideFlags.HideInHierarchy; + DontDestroyOnLoad(gameObject); + + gestureListPool.WarmUp(20); + pointerListPool.WarmUp(20); + transformListPool.WarmUp(1); + +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Update Gestures"); +#endif + } + + private void OnEnable() + { + var touchManager = TouchManager.Instance; + if (touchManager != null) + { + touchManager.FrameStarted += frameStartedHandler; + touchManager.FrameFinished += frameFinishedHandler; + touchManager.PointersUpdated += pointersUpdatedHandler; + touchManager.PointersPressed += pointersPressedHandler; + touchManager.PointersReleased += pointersReleasedHandler; + touchManager.PointersCancelled += pointersCancelledHandler; + } + } + + private void OnDisable() + { + var touchManager = TouchManager.Instance; + if (touchManager != null) + { + touchManager.FrameStarted -= frameStartedHandler; + touchManager.FrameFinished -= frameFinishedHandler; + touchManager.PointersUpdated -= pointersUpdatedHandler; + touchManager.PointersPressed -= pointersPressedHandler; + touchManager.PointersReleased -= pointersReleasedHandler; + touchManager.PointersCancelled -= pointersCancelledHandler; + } + } + + private void OnApplicationQuit() + { + shuttingDown = true; + } + + #endregion + + #region Internal methods + + internal Gesture.GestureState INTERNAL_GestureChangeState(Gesture gesture, Gesture.GestureState state) + { + bool recognized = false; + switch (state) + { + case Gesture.GestureState.Idle: + case Gesture.GestureState.Possible: + break; + case Gesture.GestureState.Began: + switch (gesture.State) + { + case Gesture.GestureState.Idle: + case Gesture.GestureState.Possible: + break; + default: + print(string.Format("Gesture {0} erroneously tried to enter state {1} from state {2}", + new object[] {gesture, state, gesture.State})); + break; + } + recognized = recognizeGestureIfNotPrevented(gesture); + if (!recognized) + { + if (!gesturesToReset.Contains(gesture)) gesturesToReset.Add(gesture); + return Gesture.GestureState.Failed; + } + break; + case Gesture.GestureState.Changed: + switch (gesture.State) + { + case Gesture.GestureState.Began: + case Gesture.GestureState.Changed: + break; + default: + print(string.Format("Gesture {0} erroneously tried to enter state {1} from state {2}", + new object[] {gesture, state, gesture.State})); + break; + } + break; + case Gesture.GestureState.Failed: + if (!gesturesToReset.Contains(gesture)) gesturesToReset.Add(gesture); + break; + case Gesture.GestureState.Recognized: // Ended + if (!gesturesToReset.Contains(gesture)) gesturesToReset.Add(gesture); + switch (gesture.State) + { + case Gesture.GestureState.Idle: + case Gesture.GestureState.Possible: + recognized = recognizeGestureIfNotPrevented(gesture); + if (!recognized) return Gesture.GestureState.Failed; + break; + case Gesture.GestureState.Began: + case Gesture.GestureState.Changed: + break; + default: + print(string.Format("Gesture {0} erroneously tried to enter state {1} from state {2}", + new object[] {gesture, state, gesture.State})); + break; + } + break; + case Gesture.GestureState.Cancelled: + if (!gesturesToReset.Contains(gesture)) gesturesToReset.Add(gesture); + break; + } + + return state; + } + + #endregion + + #region Private functions + + private void updatePressed(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + var activeTargets = transformListPool.Get(); + var gesturesInHierarchy = gestureListPool.Get(); + var startedGestures = gestureListPool.Get(); + + // Arrange pointers by target. + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + var target = pointer.GetPressData().Target; + if (target == null) continue; + + List list; + if (!pointersOnTarget.TryGetValue(target, out list)) + { + list = pointerListPool.Get(); + pointersOnTarget.Add(target, list); + activeTargets.Add(target); + } + list.Add(pointer); + } + + // Process all targets - get and sort all gestures on targets in hierarchy. + count = activeTargets.Count; + for (var i = 0; i < count; i++) + { + var target = activeTargets[i]; + + // Pointers that hit . + var targetPointers = pointersOnTarget[target]; + var targetPointersCount = targetPointers.Count; + + // Gestures on objects in the hierarchy from "root" to target. + var gesturesOnParentsAndMe = getHierarchyEndingWith(target); + + // Gestures in the target's hierarchy which might affect gestures on the target. + // Gestures on all parents and all children. + gesturesInHierarchy.AddRange(gesturesOnParentsAndMe); + gesturesInHierarchy.AddRange(getHierarchyBeginningWith(target)); + var gesturesInHierarchyCount = gesturesInHierarchy.Count; + + for (var j = 0; j < gesturesInHierarchyCount; j++) + { + var gesture = gesturesInHierarchy[j]; + if (gesture.State == Gesture.GestureState.Began || gesture.State == Gesture.GestureState.Changed) startedGestures.Add(gesture); + } + + var startedCount = startedGestures.Count; + var possibleGestureCount = gesturesOnParentsAndMe.Count; + for (var j = 0; j < possibleGestureCount; j++) + { + // WARNING! Gesture state might change during this loop. + // For example when one of them recognizes. + + var possibleGesture = gesturesOnParentsAndMe[j]; + + // If the gesture is not active it can't start or recognize. + if (!gestureIsActive(possibleGesture)) continue; + + var canReceivePointers = true; + + // For every possible gesture in gesturesInHierarchy we need to check if it prevents gestureOnParentOrMe from getting pointers. + for (var k = 0; k < startedCount; k++) + { + var startedGesture = startedGestures[k]; + + if (possibleGesture == startedGesture) continue; + + // This gesture has started. Is gestureOnParentOrMe allowed to work in parallel? + if (canPreventGesture(startedGesture, possibleGesture)) + { + // activeGesture has already began and prevents gestureOnParentOrMe from getting pointers. + canReceivePointers = false; + break; + } + } + + if (!canReceivePointers) continue; + + // Filter incoming pointers for gesture. + var pointersSentToGesture = pointerListPool.Get(); + for (var k = 0; k < targetPointersCount; k++) + { + var pointer = targetPointers[k]; + if (shouldReceivePointer(possibleGesture, pointer)) pointersSentToGesture.Add(pointer); + } + + // If there are any pointers to send. + if (pointersSentToGesture.Count > 0) + { + if (pointersToDispatchForGesture.ContainsKey(possibleGesture)) + { + pointersToDispatchForGesture[possibleGesture].AddRange(pointersSentToGesture); + pointerListPool.Release(pointersSentToGesture); + } + else + { + // Add gesture to the list of active gestures this update. + activeGesturesThisUpdate.Add(possibleGesture); + pointersToDispatchForGesture.Add(possibleGesture, pointersSentToGesture); + } + } + else + { + pointerListPool.Release(pointersSentToGesture); + } + } + + gesturesInHierarchy.Clear(); + startedGestures.Clear(); + pointerListPool.Release(targetPointers); + } + + gestureListPool.Release(gesturesInHierarchy); + gestureListPool.Release(startedGestures); + transformListPool.Release(activeTargets); + + // Dispatch gesture events with pointers assigned to them. + count = activeGesturesThisUpdate.Count; + for (var i = 0; i < count; i++) + { + var gesture = activeGesturesThisUpdate[i]; + var list = pointersToDispatchForGesture[gesture]; + if (!gestureIsActive(gesture)) + { + pointerListPool.Release(list); + continue; + } + + var numPointers = list.Count; + for (var j = 0; j < numPointers; j++) + { + var pointer = list[j]; + List gestureList; + if (!pointerToGestures.TryGetValue(pointer.Id, out gestureList)) + { + gestureList = gestureListPool.Get(); + pointerToGestures.Add(pointer.Id, gestureList); + } + gestureList.Add(gesture); + } + + gesture.INTERNAL_PointersPressed(list); + pointerListPool.Release(list); + } + + pointersOnTarget.Clear(); + activeGesturesThisUpdate.Clear(); + pointersToDispatchForGesture.Clear(); + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + private void updateUpdated(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + sortPointersForActiveGestures(pointers); + + var count = activeGesturesThisUpdate.Count; + for (var i = 0; i < count; i++) + { + var gesture = activeGesturesThisUpdate[i]; + var list = pointersToDispatchForGesture[gesture]; + if (gestureIsActive(gesture)) + { + gesture.INTERNAL_PointersUpdated(list); + } + pointerListPool.Release(list); + } + + activeGesturesThisUpdate.Clear(); + pointersToDispatchForGesture.Clear(); + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + private void updateReleased(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + sortPointersForActiveGestures(pointers); + + var count = activeGesturesThisUpdate.Count; + for (var i = 0; i < count; i++) + { + var gesture = activeGesturesThisUpdate[i]; + var list = pointersToDispatchForGesture[gesture]; + if (gestureIsActive(gesture)) + { + gesture.INTERNAL_PointersReleased(list); + } + pointerListPool.Release(list); + } + + removePointers(pointers); + activeGesturesThisUpdate.Clear(); + pointersToDispatchForGesture.Clear(); + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + private void updateCancelled(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + sortPointersForActiveGestures(pointers); + + var count = activeGesturesThisUpdate.Count; + for (var i = 0; i < count; i++) + { + var gesture = activeGesturesThisUpdate[i]; + var list = pointersToDispatchForGesture[gesture]; + if (gestureIsActive(gesture)) + { + gesture.INTERNAL_PointersCancelled(list); + } + pointerListPool.Release(list); + } + + removePointers(pointers); + activeGesturesThisUpdate.Clear(); + pointersToDispatchForGesture.Clear(); + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + private void sortPointersForActiveGestures(IList pointers) + { + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + List gestures; + if (!pointerToGestures.TryGetValue(pointer.Id, out gestures)) continue; + + var gestureCount = gestures.Count; + for (var j = 0; j < gestureCount; j++) + { + var gesture = gestures[j]; + List toDispatch; + if (!pointersToDispatchForGesture.TryGetValue(gesture, out toDispatch)) + { + toDispatch = pointerListPool.Get(); + pointersToDispatchForGesture.Add(gesture, toDispatch); + activeGesturesThisUpdate.Add(gesture); + } + toDispatch.Add(pointer); + } + } + } + + private void removePointers(IList pointers) + { + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + List list; + if (!pointerToGestures.TryGetValue(pointer.Id, out list)) continue; + + pointerToGestures.Remove(pointer.Id); + gestureListPool.Release(list); + } + } + + private void resetGestures() + { + if (gesturesToReset.Count == 0) return; + + var count = gesturesToReset.Count; + for (var i = 0; i < count; i++) + { + var gesture = gesturesToReset[i]; + if (Equals(gesture, null)) continue; // Reference comparison + + var activePointers = gesture.ActivePointers; + var activeCount = activePointers.Count; + for (var j = 0; j < activeCount; j++) + { + var pointer = activePointers[j]; + List list; + if (pointerToGestures.TryGetValue(pointer.Id, out list)) list.Remove(gesture); + } + + if (gesture == null) continue; // Unity "null" comparison + gesture.INTERNAL_Reset(); + gesture.INTERNAL_SetState(Gesture.GestureState.Idle); + } + gesturesToReset.Clear(); + } + + private void clearFrameCaches() + { + foreach (var kv in hierarchyEndingWithCache) gestureListPool.Release(kv.Value); + foreach (var kv in hierarchyBeginningWithCache) gestureListPool.Release(kv.Value); + hierarchyEndingWithCache.Clear(); + hierarchyBeginningWithCache.Clear(); + } + + // parent <- parent <- target + private List getHierarchyEndingWith(Transform target) + { + List list; + if (hierarchyEndingWithCache.TryGetValue(target, out list)) return list; + + list = gestureListPool.Get(); + target.GetComponentsInParent(false, list); + hierarchyEndingWithCache.Add(target, list); + + return list; + } + + // target <- child* + private List getHierarchyBeginningWith(Transform target) + { + List list; + if (hierarchyBeginningWithCache.TryGetValue(target, out list)) return list; + + list = gestureListPool.Get(); + target.GetComponentsInChildren(list); + hierarchyBeginningWithCache.Add(target, list); + + return list; + } + + private bool gestureIsActive(Gesture gesture) + { + if (gesture.gameObject.activeInHierarchy == false) return false; + if (gesture.enabled == false) return false; + switch (gesture.State) + { + case Gesture.GestureState.Failed: + case Gesture.GestureState.Recognized: + case Gesture.GestureState.Cancelled: + return false; + default: + return true; + } + } + + private bool recognizeGestureIfNotPrevented(Gesture gesture) + { + if (!shouldBegin(gesture)) return false; + + var gesturesToFail = gestureListPool.Get(); + bool canRecognize = true; + var target = gesture.transform; + + var gesturesInHierarchy = gestureListPool.Get(); + gesturesInHierarchy.AddRange(getHierarchyEndingWith(target)); + gesturesInHierarchy.AddRange(getHierarchyBeginningWith(target)); + + var count = gesturesInHierarchy.Count; + for (var i = 0; i < count; i++) + { + var otherGesture = gesturesInHierarchy[i]; + if (gesture == otherGesture) continue; + if (!gestureIsActive(otherGesture)) continue; + + if (otherGesture.State == Gesture.GestureState.Began || + otherGesture.State == Gesture.GestureState.Changed) + { + if (canPreventGesture(otherGesture, gesture)) + { + canRecognize = false; + break; + } + } + else if (otherGesture.State == Gesture.GestureState.Possible) + { + if (canPreventGesture(gesture, otherGesture)) + { + gesturesToFail.Add(otherGesture); + } + } + } + + if (canRecognize) + { + count = gesturesToFail.Count; + for (var i = 0; i < count; i++) + { + failGesture(gesturesToFail[i]); + } + } + + gestureListPool.Release(gesturesToFail); + gestureListPool.Release(gesturesInHierarchy); + + return canRecognize; + } + + private void failGesture(Gesture gesture) + { + gesture.INTERNAL_SetState(Gesture.GestureState.Failed); + } + + private bool shouldReceivePointer(Gesture gesture, Pointer pointer) + { + bool result = true; + if (GlobalGestureDelegate != null) result = GlobalGestureDelegate.ShouldReceivePointer(gesture, pointer); + return result && gesture.ShouldReceivePointer(pointer); + } + + private bool shouldBegin(Gesture gesture) + { + bool result = true; + if (GlobalGestureDelegate != null) result = GlobalGestureDelegate.ShouldBegin(gesture); + return result && gesture.ShouldBegin(); + } + + private bool canPreventGesture(Gesture first, Gesture second) + { + bool result = true; + if (GlobalGestureDelegate != null) result = !GlobalGestureDelegate.ShouldRecognizeSimultaneously(first, second); + return result && first.CanPreventGesture(second); + } + + #endregion + + #region Pointer events handlers + + private void frameFinishedHandler(object sender, EventArgs eventArgs) + { + resetGestures(); + clearFrameCaches(); + } + + private void frameStartedHandler(object sender, EventArgs eventArgs) + { + resetGestures(); + } + + private void pointersPressedHandler(object sender, PointerEventArgs pointerEventArgs) + { + updatePressed(pointerEventArgs.Pointers); + } + + private void pointersUpdatedHandler(object sender, PointerEventArgs pointerEventArgs) + { + updateUpdated(pointerEventArgs.Pointers); + } + + private void pointersReleasedHandler(object sender, PointerEventArgs pointerEventArgs) + { + updateReleased(pointerEventArgs.Pointers); + } + + private void pointersCancelledHandler(object sender, PointerEventArgs pointerEventArgs) + { + updateCancelled(pointerEventArgs.Pointers); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Core/GestureManagerInstance.cs.meta b/Source/Assets/TouchScript/Scripts/Core/GestureManagerInstance.cs.meta new file mode 100644 index 000000000..6b2838c29 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Core/GestureManagerInstance.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0a69204e9cef74e54ae7e617cc267b6e +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Core/LayerManagerInstance.cs b/Source/Assets/TouchScript/Scripts/Core/LayerManagerInstance.cs new file mode 100644 index 000000000..5c78e6303 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Core/LayerManagerInstance.cs @@ -0,0 +1,279 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Hit; +using TouchScript.Layers; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Core +{ + /// + /// Internal implementation of . + /// + internal sealed class LayerManagerInstance : MonoBehaviour, ILayerManager + { + #region Public properties + + /// + /// Gets the instance of GestureManager singleton. + /// + public static ILayerManager Instance + { + get + { + if (shuttingDown) return null; + if (instance == null) + { + if (!Application.isPlaying) return null; + var objects = FindObjectsOfType(); + if (objects.Length == 0) + { + var go = new GameObject("GestureManager Instance"); + instance = go.AddComponent(); + } + else if (objects.Length >= 1) + { + instance = objects[0]; + } + } + return instance; + } + } + + /// + public IList Layers + { + get { return new List(layers); } + } + + /// + public int LayerCount + { + get { return layerCount; } + } + + /// + public bool HasExclusive + { + get { return exclusiveCount > 0; } + } + + #endregion + + #region Private variables + + private static LayerManagerInstance instance; + private static bool shuttingDown = false; + + private ITouchManager manager; + private List layers = new List(10); + private int layerCount = 0; + + private HashSet exclusive = new HashSet(); + private int exclusiveCount = 0; + private int clearExclusiveDelay = -1; + + #endregion + + #region Temporary variables + + // Used in SetExclusive(). + private List tmpList = new List(20); + + #endregion + + #region Public methods + + /// + public bool AddLayer(TouchLayer layer, int index = -1, bool addIfExists = true) + { + if (layer == null) return false; + + var i = layers.IndexOf(layer); + if (i != -1) + { + if (!addIfExists) return false; + layers.RemoveAt(i); + layerCount--; + } + if (index == 0) + { + layers.Insert(0, layer); + layerCount++; + return i == -1; + } + if (index == -1 || index >= layerCount) + { + layers.Add(layer); + layerCount++; + return i == -1; + } + if (i != -1) + { + if (index < i) layers.Insert(index, layer); + else layers.Insert(index - 1, layer); + layerCount++; + return false; + } + layers.Insert(index, layer); + layerCount++; + return true; + } + + /// + public bool RemoveLayer(TouchLayer layer) + { + if (layer == null) return false; + var result = layers.Remove(layer); + if (result) layerCount--; + return result; + } + + /// + public void ChangeLayerIndex(int at, int to) + { + if (at < 0 || at >= layerCount) return; + if (to < 0 || to >= layerCount) return; + var data = layers[at]; + layers.RemoveAt(at); + layers.Insert(to, data); + } + + /// + public void ForEach(Func action) + { + for (var i = 0; i < layerCount; i++) + { + if (!action(layers[i])) break; + } + } + + /// + public bool GetHitTarget(IPointer pointer, out HitData hit) + { + hit = default(HitData); + + for (var i = 0; i < layerCount; i++) + { + var touchLayer = layers[i]; + if (touchLayer == null) continue; + var result = touchLayer.Hit(pointer, out hit); + switch (result) + { + case HitResult.Hit: + return true; + case HitResult.Discard: + return false; + } + } + + return false; + } + + /// + public void SetExclusive(Transform target, bool includeChildren = false) + { + if (target == null) return; + exclusive.Clear(); + clearExclusiveDelay = -1; + + exclusive.Add(target.GetHashCode()); + exclusiveCount = 1; + if (includeChildren) + { + target.GetComponentsInChildren(tmpList); + foreach (var t in tmpList) exclusive.Add(t.GetHashCode()); + exclusiveCount += tmpList.Count; + } + } + + /// + public void SetExclusive(IEnumerable targets) + { + if (targets == null) return; + exclusive.Clear(); + clearExclusiveDelay = -1; + + foreach (var t in targets) + { + exclusive.Add(t.GetHashCode()); + exclusiveCount++; + } + } + + /// + public bool IsExclusive(Transform target) + { + return exclusive.Contains(target.GetHashCode()); + } + + /// + public void ClearExclusive() + { + // It is incorrect to just set exclusiveCount to zero since the exclusive list is actually needed the next frame. Only after the next frame's FrameEnded event the list can be cleared. + // If we are inside the Pointer Frame, we need to wait for the second FrameEnded (this frame's event included). Otherwise, we need to wait for the next FrameEnded event. + clearExclusiveDelay = manager.IsInsidePointerFrame ? 2 : 1; + } + + #endregion + + #region Unity + + private void Awake() + { + if (instance == null) + { + instance = this; + } + else if (instance != this) + { + Destroy(this); + return; + } + + manager = TouchManager.Instance; + + gameObject.hideFlags = HideFlags.HideInHierarchy; + DontDestroyOnLoad(gameObject); + } + + private void OnEnable() + { + manager.FrameFinished += frameFinishedHandler; + } + + private void OnDisable() + { + manager.FrameFinished -= frameFinishedHandler; + } + + private void OnApplicationQuit() + { + shuttingDown = true; + } + + #endregion + + #region Private functions + + #endregion + + #region Event handlers + + private void frameFinishedHandler(object sender, EventArgs eventArgs) + { + clearExclusiveDelay--; + if (clearExclusiveDelay == 0) + { + exclusive.Clear(); + exclusiveCount = 0; + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Core/LayerManagerInstance.cs.meta b/Source/Assets/TouchScript/Scripts/Core/LayerManagerInstance.cs.meta new file mode 100644 index 000000000..44da71ae4 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Core/LayerManagerInstance.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 61a2ae412ada86b48aa49c2ec1557dcb +timeCreated: 1500755913 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Core/TouchManagerInstance.cs b/Source/Assets/TouchScript/Scripts/Core/TouchManagerInstance.cs new file mode 100644 index 000000000..fee118951 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Core/TouchManagerInstance.cs @@ -0,0 +1,1089 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using TouchScript.Devices.Display; +using TouchScript.Hit; +using TouchScript.InputSources; +using TouchScript.Layers; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.Profiling; +using TouchScript.Core; +#if TOUCHSCRIPT_DEBUG +using TouchScript.Debugging.GL; +using TouchScript.Debugging.Loggers; +#endif +#if UNITY_5_4_OR_NEWER +using UnityEngine.SceneManagement; +#endif + +namespace TouchScript.Core +{ + /// + /// Default implementation of . + /// + public sealed class TouchManagerInstance : DebuggableMonoBehaviour, ITouchManager + { + #region Events + + /// + public event EventHandler FrameStarted + { + add { frameStartedInvoker += value; } + remove { frameStartedInvoker -= value; } + } + + /// + public event EventHandler FrameFinished + { + add { frameFinishedInvoker += value; } + remove { frameFinishedInvoker -= value; } + } + + /// + public event EventHandler PointersAdded + { + add { pointersAddedInvoker += value; } + remove { pointersAddedInvoker -= value; } + } + + /// + public event EventHandler PointersUpdated + { + add { pointersUpdatedInvoker += value; } + remove { pointersUpdatedInvoker -= value; } + } + + /// + public event EventHandler PointersPressed + { + add { pointersPressedInvoker += value; } + remove { pointersPressedInvoker -= value; } + } + + /// + public event EventHandler PointersReleased + { + add { pointersReleasedInvoker += value; } + remove { pointersReleasedInvoker -= value; } + } + + /// + public event EventHandler PointersRemoved + { + add { pointersRemovedInvoker += value; } + remove { pointersRemovedInvoker -= value; } + } + + /// + public event EventHandler PointersCancelled + { + add { pointersCancelledInvoker += value; } + remove { pointersCancelledInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler pointersAddedInvoker, pointersUpdatedInvoker, pointersPressedInvoker, pointersReleasedInvoker, pointersRemovedInvoker, pointersCancelledInvoker; + + private EventHandler frameStartedInvoker, frameFinishedInvoker; + + #endregion + + #region Public properties + + /// + /// Gets the instance of TouchManager singleton. + /// + public static TouchManagerInstance Instance + { + get + { + if (shuttingDown) return null; + if (instance == null) + { + if (!Application.isPlaying) return null; + var objects = FindObjectsOfType(); + if (objects.Length == 0) + { + var go = new GameObject("TouchManager Instance"); + instance = go.AddComponent(); + } + else if (objects.Length >= 1) + { + instance = objects[0]; + } + } + return instance; + } + } + + /// + public IDisplayDevice DisplayDevice + { + get + { + if (displayDevice == null) + { + displayDevice = ScriptableObject.CreateInstance(); + } + return displayDevice; + } + set + { + if (value == null) + { + displayDevice = ScriptableObject.CreateInstance(); + } + else + { + displayDevice = value; + } + UpdateResolution(); + } + } + + /// + public float DPI + { + get { return dpi; } + } + + /// + public bool ShouldCreateCameraLayer + { + get { return shouldCreateCameraLayer; } + set { shouldCreateCameraLayer = value; } + } + + /// + public bool ShouldCreateStandardInput + { + get { return shouldCreateStandardInput; } + set { shouldCreateStandardInput = value; } + } + + /// + public IList Inputs + { + get { return new List(inputs); } + } + + /// + public float DotsPerCentimeter + { + get { return dotsPerCentimeter; } + } + + /// + public int PointersCount + { + get { return pointers.Count; } + } + + /// + public IList Pointers + { + get { return new List(pointers); } + } + + /// + public int PressedPointersCount + { + get { return pressedPointers.Count; } + } + + /// + public IList PressedPointers + { + get { return new List(pressedPointers); } + } + + /// + public bool IsInsidePointerFrame { get; private set; } + + #endregion + + #region Private variables + + private static bool shuttingDown = false; + private static TouchManagerInstance instance; + + private bool shouldCreateCameraLayer = true; + private bool shouldCreateStandardInput = true; + + private IDisplayDevice displayDevice; + private float dpi = 96; + private float dotsPerCentimeter = TouchManager.CM_TO_INCH * 96; + + private ILayerManager layerManager; + + private List inputs = new List(3); + private int inputCount = 0; + + private List pointers = new List(30); + private HashSet pressedPointers = new HashSet(); + private Dictionary idToPointer = new Dictionary(30); + + // Upcoming changes + private List pointersAdded = new List(10); + private HashSet pointersUpdated = new HashSet(); + private HashSet pointersPressed = new HashSet(); + private HashSet pointersReleased = new HashSet(); + private HashSet pointersRemoved = new HashSet(); + private HashSet pointersCancelled = new HashSet(); + + private static ObjectPool> pointerListPool = new ObjectPool>(2, + () => new List(10), null, (l) => l.Clear()); + + private static ObjectPool> intListPool = new ObjectPool>(3, () => new List(10), null, + (l) => l.Clear()); + + private int nextPointerId = 0; + private object pointerLock = new object(); + + // Cache delegates + private Func _layerAddPointer, _layerUpdatePointer, _layerRemovePointer, _layerCancelPointer; + + #endregion + + #region Temporary variables + + // Used in layer dispatch fucntions + private Pointer tmpPointer; + + #endregion + + #region Debug + +#if TOUCHSCRIPT_DEBUG + private IPointerLogger pLogger; +#endif + +#if UNITY_5_6_OR_NEWER + private CustomSampler samplerUpdateInputs, samplerUpdateAdded, samplerUpdatePressed, samplerUpdateUpdated, samplerUpdateReleased, samplerUpdateRemoved, samplerUpdateCancelled; +#endif + + #endregion + + #region Public methods + + /// + public bool AddInput(IInputSource input) + { + if (input == null) return false; + if (inputs.Contains(input)) return true; + inputs.Add(input); + inputCount++; + return true; + } + + /// + public bool RemoveInput(IInputSource input) + { + if (input == null) return false; + var result = inputs.Remove(input); + if (result) inputCount--; + return result; + } + + /// + public void CancelPointer(int id, bool shouldReturn) + { + Pointer pointer; + if (idToPointer.TryGetValue(id, out pointer)) + { + pointer.InputSource.CancelPointer(pointer, shouldReturn); + } + } + + /// + public void CancelPointer(int id) + { + CancelPointer(id, false); + } + + /// + public void UpdateResolution() + { + if (DisplayDevice != null) + { + DisplayDevice.UpdateDPI(); + dpi = DisplayDevice.DPI; + } + else + { + dpi = 96; + } + dotsPerCentimeter = TouchManager.CM_TO_INCH * dpi; +#if TOUCHSCRIPT_DEBUG + debugPointerSize = Vector2.one * dotsPerCentimeter; +#endif + + foreach (var input in inputs) input.UpdateResolution(); + } + + #endregion + + #region Internal methods + + internal void INTERNAL_AddPointer(Pointer pointer) + { + lock (pointerLock) + { + pointer.INTERNAL_Init(nextPointerId); + pointersAdded.Add(pointer); + +#if TOUCHSCRIPT_DEBUG + pLogger.Log(pointer, PointerEvent.IdAllocated); +#endif + + nextPointerId++; + } + } + + internal void INTERNAL_UpdatePointer(int id) + { + lock (pointerLock) + { + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { + // This pointer was added this frame + if (!wasPointerAddedThisFrame(id, out pointer)) + { + // No pointer with such id +#if TOUCHSCRIPT_DEBUG + if (DebugMode) Debug.LogWarning("TouchScript > Pointer with id [" + id + "] is requested to MOVE to but no pointer with such id found."); +#endif + return; + } + } + + pointersUpdated.Add(id); + } + } + + internal void INTERNAL_PressPointer(int id) + { + lock (pointerLock) + { + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { + // This pointer was added this frame + if (!wasPointerAddedThisFrame(id, out pointer)) + { + // No pointer with such id +#if TOUCHSCRIPT_DEBUG + if (DebugMode) + Debug.LogWarning("TouchScript > Pointer with id [" + id + + "] is requested to PRESS but no pointer with such id found."); +#endif + return; + } + } +#if TOUCHSCRIPT_DEBUG + if (!pointersPressed.Add(id)) + if (DebugMode) + Debug.LogWarning("TouchScript > Pointer with id [" + id + + "] is requested to PRESS more than once this frame."); +#else + pointersPressed.Add(id); +#endif + + } + } + + /// + internal void INTERNAL_ReleasePointer(int id) + { + lock (pointerLock) + { + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { + // This pointer was added this frame + if (!wasPointerAddedThisFrame(id, out pointer)) + { + // No pointer with such id +#if TOUCHSCRIPT_DEBUG + if (DebugMode) + Debug.LogWarning("TouchScript > Pointer with id [" + id + + "] is requested to END but no pointer with such id found."); +#endif + return; + } + } +#if TOUCHSCRIPT_DEBUG + if (!pointersReleased.Add(id)) + if (DebugMode) + Debug.LogWarning("TouchScript > Pointer with id [" + id + + "] is requested to END more than once this frame."); +#else + pointersReleased.Add(id); +#endif + + } + } + + /// + internal void INTERNAL_RemovePointer(int id) + { + lock (pointerLock) + { + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { + // This pointer was added this frame + if (!wasPointerAddedThisFrame(id, out pointer)) + { + // No pointer with such id +#if TOUCHSCRIPT_DEBUG + if (DebugMode) + Debug.LogWarning("TouchScript > Pointer with id [" + id + + "] is requested to REMOVE but no pointer with such id found."); +#endif + return; + } + } +#if TOUCHSCRIPT_DEBUG + if (!pointersRemoved.Add(pointer.Id)) + if (DebugMode) + Debug.LogWarning("TouchScript > Pointer with id [" + id + + "] is requested to REMOVE more than once this frame."); +#else + pointersRemoved.Add(pointer.Id); +#endif + + } + } + + /// + internal void INTERNAL_CancelPointer(int id) + { + lock (pointerLock) + { + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { + // This pointer was added this frame + if (!wasPointerAddedThisFrame(id, out pointer)) + { + // No pointer with such id +#if TOUCHSCRIPT_DEBUG + if (DebugMode) + Debug.LogWarning("TouchScript > Pointer with id [" + id + + "] is requested to CANCEL but no pointer with such id found."); +#endif + return; + } + } +#if TOUCHSCRIPT_DEBUG + if (!pointersCancelled.Add(pointer.Id)) + if (DebugMode) + Debug.LogWarning("TouchScript > Pointer with id [" + id + + "] is requested to CANCEL more than once this frame."); +#else + pointersCancelled.Add(pointer.Id); +#endif + + } + } + + #endregion + + #region Unity + + private void Awake() + { + if (instance == null) + { + instance = this; + } + else if (instance != this) + { + Destroy(this); + return; + } + +#if TOUCHSCRIPT_DEBUG + pLogger = Debugging.TouchScriptDebugger.Instance.PointerLogger; +#endif + +#if UNITY_5_4_OR_NEWER + SceneManager.sceneLoaded += sceneLoadedHandler; +#endif + + gameObject.hideFlags = HideFlags.HideInHierarchy; + DontDestroyOnLoad(gameObject); + + layerManager = LayerManager.Instance; + + UpdateResolution(); + + StopAllCoroutines(); + StartCoroutine(lateAwake()); + + pointerListPool.WarmUp(2); + intListPool.WarmUp(3); + + _layerAddPointer = layerAddPointer; + _layerUpdatePointer = layerUpdatePointer; + _layerRemovePointer = layerRemovePointer; + _layerCancelPointer = layerCancelPointer; + +#if UNITY_5_6_OR_NEWER + samplerUpdateInputs = CustomSampler.Create("[TouchScript] Update Inputs"); + samplerUpdateAdded = CustomSampler.Create("[TouchScript] Added Pointers"); + samplerUpdatePressed = CustomSampler.Create("[TouchScript] Press Pointers"); + samplerUpdateUpdated = CustomSampler.Create("[TouchScript] Update Pointers"); + samplerUpdateReleased = CustomSampler.Create("[TouchScript] Release Pointers"); + samplerUpdateRemoved = CustomSampler.Create("[TouchScript] Remove Pointers"); + samplerUpdateCancelled = CustomSampler.Create("[TouchScript] Cancel Pointers"); +#endif + } + +#if UNITY_5_4_OR_NEWER + private void sceneLoadedHandler(Scene scene, LoadSceneMode mode) + { + StopAllCoroutines(); + StartCoroutine(lateAwake()); + } +#else + private void OnLevelWasLoaded(int value) + { + StopAllCoroutines(); + StartCoroutine(lateAwake()); + } +#endif + + private IEnumerator lateAwake() + { + // Wait 2 frames: + // Frame 0: TouchManager adds layers in order + // Frame 1: Layers add themselves + // Frame 2: We add a layer if there are none + yield return null; + yield return null; + + createCameraLayer(); + createInput(); + } + + private void Update() + { + sendFrameStartedToPointers(); + updateInputs(); + updatePointers(); + } + + private void OnApplicationQuit() + { + shuttingDown = true; + } + + #endregion + + #region Private functions + + private void createCameraLayer() + { + if (layerManager.LayerCount == 0 && shouldCreateCameraLayer) + { + if (Camera.main != null) + { + if (Application.isEditor) + Debug.Log( + "[TouchScript] No touch layers found, adding StandardLayer for the main camera. (this message is harmless)"); + var layer = Camera.main.gameObject.AddComponent(); + layerManager.AddLayer(layer); + } + } + } + + private void createInput() + { + if (inputCount == 0 && shouldCreateStandardInput) + { + if (Application.isEditor) + Debug.Log("[TouchScript] No input source found, adding StandardInput. (this message is harmless)"); + GameObject obj = null; + var objects = FindObjectsOfType(); + if (objects.Length == 0) + { + obj = GameObject.Find("TouchScript"); + if (obj == null) obj = new GameObject("TouchScript"); + } + else + { + obj = objects[0].gameObject; + } + obj.AddComponent(); + } + } + + private void updateInputs() + { +#if UNITY_5_6_OR_NEWER + samplerUpdateInputs.Begin(); +#endif + for (var i = 0; i < inputCount; i++) inputs[i].UpdateInput(); +#if UNITY_5_6_OR_NEWER + samplerUpdateInputs.End(); +#endif + } + + private void updateAdded(List pointers) + { +#if UNITY_5_6_OR_NEWER + samplerUpdateAdded.Begin(); +#endif + + var addedCount = pointers.Count; + var list = pointerListPool.Get(); + for (var i = 0; i < addedCount; i++) + { + var pointer = pointers[i]; + list.Add(pointer); + this.pointers.Add(pointer); + idToPointer.Add(pointer.Id, pointer); + +#if TOUCHSCRIPT_DEBUG + pLogger.Log(pointer, PointerEvent.Added); +#endif + + tmpPointer = pointer; + layerManager.ForEach(_layerAddPointer); + tmpPointer = null; + +#if TOUCHSCRIPT_DEBUG + if (DebugMode) addDebugFigureForPointer(pointer); +#endif + } + + if (pointersAddedInvoker != null) + pointersAddedInvoker.InvokeHandleExceptions(this, PointerEventArgs.GetCachedEventArgs(list)); + pointerListPool.Release(list); + +#if UNITY_5_6_OR_NEWER + samplerUpdateAdded.End(); +#endif + } + + private bool layerAddPointer(TouchLayer layer) + { + layer.INTERNAL_AddPointer(tmpPointer); + return true; + } + + private void updateUpdated(List pointers) + { +#if UNITY_5_6_OR_NEWER + samplerUpdateUpdated.Begin(); +#endif + + var updatedCount = pointers.Count; + var list = pointerListPool.Get(); + for (var i = 0; i < updatedCount; i++) + { + var id = pointers[i]; + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { +#if TOUCHSCRIPT_DEBUG + if (DebugMode) + Debug.LogWarning("TouchScript > Id [" + id + + "] was in UPDATED list but no pointer with such id found."); +#endif + continue; + } + list.Add(pointer); + +#if TOUCHSCRIPT_DEBUG + pLogger.Log(pointer, PointerEvent.Updated); +#endif + + var layer = pointer.GetPressData().Layer; + if (layer != null) layer.INTERNAL_UpdatePointer(pointer); + else + { + tmpPointer = pointer; + layerManager.ForEach(_layerUpdatePointer); + tmpPointer = null; + } + +#if TOUCHSCRIPT_DEBUG + if (DebugMode) addDebugFigureForPointer(pointer); +#endif + } + + if (pointersUpdatedInvoker != null) + pointersUpdatedInvoker.InvokeHandleExceptions(this, PointerEventArgs.GetCachedEventArgs(list)); + pointerListPool.Release(list); + +#if UNITY_5_6_OR_NEWER + samplerUpdateUpdated.End(); +#endif + } + + private bool layerUpdatePointer(TouchLayer layer) + { + layer.INTERNAL_UpdatePointer(tmpPointer); + return true; + } + + private void updatePressed(List pointers) + { +#if UNITY_5_6_OR_NEWER + samplerUpdatePressed.Begin(); +#endif + + var pressedCount = pointers.Count; + var list = pointerListPool.Get(); + for (var i = 0; i < pressedCount; i++) + { + var id = pointers[i]; + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { +#if TOUCHSCRIPT_DEBUG + if (DebugMode) + Debug.LogWarning("TouchScript > Id [" + id + + "] was in PRESSED list but no pointer with such id found."); +#endif + continue; + } + list.Add(pointer); + pressedPointers.Add(pointer); + + HitData hit = pointer.GetOverData(); + if (hit.Layer != null) + { + pointer.INTERNAL_SetPressData(hit); + hit.Layer.INTERNAL_PressPointer(pointer); + } + +#if TOUCHSCRIPT_DEBUG + pLogger.Log(pointer, PointerEvent.Pressed); + if (DebugMode) addDebugFigureForPointer(pointer); +#endif + } + + if (pointersPressedInvoker != null) + pointersPressedInvoker.InvokeHandleExceptions(this, PointerEventArgs.GetCachedEventArgs(list)); + pointerListPool.Release(list); + +#if UNITY_5_6_OR_NEWER + samplerUpdatePressed.End(); +#endif + } + + private void updateReleased(List pointers) + { +#if UNITY_5_6_OR_NEWER + samplerUpdateReleased.Begin(); +#endif + + var releasedCount = pointers.Count; + var list = pointerListPool.Get(); + for (var i = 0; i < releasedCount; i++) + { + var id = pointers[i]; + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { +#if TOUCHSCRIPT_DEBUG + if (DebugMode) Debug.LogWarning("TouchScript > Id [" + id + "] was in RELEASED list but no pointer with such id found."); +#endif + continue; + } + list.Add(pointer); + pressedPointers.Remove(pointer); + +#if TOUCHSCRIPT_DEBUG + pLogger.Log(pointer, PointerEvent.Released); +#endif + + var layer = pointer.GetPressData().Layer; + if (layer != null) layer.INTERNAL_ReleasePointer(pointer); + +#if TOUCHSCRIPT_DEBUG + if (DebugMode) addDebugFigureForPointer(pointer); +#endif + } + + if (pointersReleasedInvoker != null) + pointersReleasedInvoker.InvokeHandleExceptions(this, PointerEventArgs.GetCachedEventArgs(list)); + + releasedCount = list.Count; + for (var i = 0; i < releasedCount; i++) + { + var pointer = list[i]; + pointer.INTERNAL_ClearPressData(); + } + pointerListPool.Release(list); + +#if UNITY_5_6_OR_NEWER + samplerUpdateReleased.End(); +#endif + } + + private void updateRemoved(List pointers) + { +#if UNITY_5_6_OR_NEWER + samplerUpdateRemoved.Begin(); +#endif + + var removedCount = pointers.Count; + var list = pointerListPool.Get(); + for (var i = 0; i < removedCount; i++) + { + var id = pointers[i]; + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { +#if TOUCHSCRIPT_DEBUG + if (DebugMode) Debug.LogWarning("TouchScript > Id [" + id + "] was in REMOVED list but no pointer with such id found."); +#endif + continue; + } + idToPointer.Remove(id); + this.pointers.Remove(pointer); + pressedPointers.Remove(pointer); + list.Add(pointer); + +#if TOUCHSCRIPT_DEBUG + pLogger.Log(pointer, PointerEvent.Removed); +#endif + + tmpPointer = pointer; + layerManager.ForEach(_layerRemovePointer); + tmpPointer = null; + +#if TOUCHSCRIPT_DEBUG + if (DebugMode) removeDebugFigureForPointer(pointer); +#endif + } + + if (pointersRemovedInvoker != null) + pointersRemovedInvoker.InvokeHandleExceptions(this, PointerEventArgs.GetCachedEventArgs(list)); + + removedCount = list.Count; + for (var i = 0; i < removedCount; i++) + { + var pointer = list[i]; + pointer.InputSource.INTERNAL_DiscardPointer(pointer); + } + pointerListPool.Release(list); + +#if UNITY_5_6_OR_NEWER + samplerUpdateRemoved.End(); +#endif + } + + private bool layerRemovePointer(TouchLayer layer) + { + layer.INTERNAL_RemovePointer(tmpPointer); + return true; + } + + private void updateCancelled(List pointers) + { +#if UNITY_5_6_OR_NEWER + samplerUpdateCancelled.Begin(); +#endif + + var cancelledCount = pointers.Count; + var list = pointerListPool.Get(); + for (var i = 0; i < cancelledCount; i++) + { + var id = pointers[i]; + Pointer pointer; + if (!idToPointer.TryGetValue(id, out pointer)) + { +#if TOUCHSCRIPT_DEBUG + if (DebugMode) + Debug.LogWarning("TouchScript > Id [" + id + + "] was in CANCELLED list but no pointer with such id found."); +#endif + continue; + } + idToPointer.Remove(id); + this.pointers.Remove(pointer); + pressedPointers.Remove(pointer); + list.Add(pointer); + +#if TOUCHSCRIPT_DEBUG + pLogger.Log(pointer, PointerEvent.Cancelled); +#endif + + tmpPointer = pointer; + layerManager.ForEach(_layerCancelPointer); + tmpPointer = null; + +#if TOUCHSCRIPT_DEBUG + if (DebugMode) removeDebugFigureForPointer(pointer); +#endif + } + + if (pointersCancelledInvoker != null) + pointersCancelledInvoker.InvokeHandleExceptions(this, PointerEventArgs.GetCachedEventArgs(list)); + + for (var i = 0; i < cancelledCount; i++) + { + var pointer = list[i]; + pointer.InputSource.INTERNAL_DiscardPointer(pointer); + } + pointerListPool.Release(list); + +#if UNITY_5_6_OR_NEWER + samplerUpdateCancelled.End(); +#endif + } + + private bool layerCancelPointer(TouchLayer layer) + { + layer.INTERNAL_CancelPointer(tmpPointer); + return true; + } + + private void sendFrameStartedToPointers() + { + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + pointers[i].INTERNAL_FrameStarted(); + } + } + + private void updatePointers() + { + IsInsidePointerFrame = true; + if (frameStartedInvoker != null) frameStartedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + + // need to copy buffers since they might get updated during execution + List addedList = null; + List updatedList = null; + List pressedList = null; + List releasedList = null; + List removedList = null; + List cancelledList = null; + lock (pointerLock) + { + if (pointersAdded.Count > 0) + { + addedList = pointerListPool.Get(); + addedList.AddRange(pointersAdded); + pointersAdded.Clear(); + } + if (pointersUpdated.Count > 0) + { + updatedList = intListPool.Get(); + updatedList.AddRange(pointersUpdated); + pointersUpdated.Clear(); + } + if (pointersPressed.Count > 0) + { + pressedList = intListPool.Get(); + pressedList.AddRange(pointersPressed); + pointersPressed.Clear(); + } + if (pointersReleased.Count > 0) + { + releasedList = intListPool.Get(); + releasedList.AddRange(pointersReleased); + pointersReleased.Clear(); + } + if (pointersRemoved.Count > 0) + { + removedList = intListPool.Get(); + removedList.AddRange(pointersRemoved); + pointersRemoved.Clear(); + } + if (pointersCancelled.Count > 0) + { + cancelledList = intListPool.Get(); + cancelledList.AddRange(pointersCancelled); + pointersCancelled.Clear(); + } + } + + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + pointers[i].INTERNAL_UpdatePosition(); + } + + if (addedList != null) + { + updateAdded(addedList); + pointerListPool.Release(addedList); + } + + if (updatedList != null) + { + updateUpdated(updatedList); + intListPool.Release(updatedList); + } + if (pressedList != null) + { + updatePressed(pressedList); + intListPool.Release(pressedList); + } + if (releasedList != null) + { + updateReleased(releasedList); + intListPool.Release(releasedList); + } + if (removedList != null) + { + updateRemoved(removedList); + intListPool.Release(removedList); + } + if (cancelledList != null) + { + updateCancelled(cancelledList); + intListPool.Release(cancelledList); + } + + if (frameFinishedInvoker != null) frameFinishedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + IsInsidePointerFrame = false; + } + + private bool wasPointerAddedThisFrame(int id, out Pointer pointer) + { + pointer = null; + foreach (var p in pointersAdded) + { + if (p.Id == id) + { + pointer = p; + return true; + } + } + return false; + } + +#if TOUCHSCRIPT_DEBUG + private Vector2 debugPointerSize; + + private void removeDebugFigureForPointer(Pointer pointer) + { + GLDebug.RemoveFigure(TouchManager.DEBUG_GL_TOUCH + pointer.Id); + } + + private void addDebugFigureForPointer(Pointer pointer) + { + GLDebug.DrawSquareScreenSpace(TouchManager.DEBUG_GL_TOUCH + pointer.Id, pointer.Position, 0, debugPointerSize, + GLDebug.MULTIPLY, float.PositiveInfinity); + } +#endif + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Core/TouchManagerInstance.cs.meta b/Source/Assets/TouchScript/Scripts/Core/TouchManagerInstance.cs.meta new file mode 100644 index 000000000..3f672d7e4 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Core/TouchManagerInstance.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d86d3f0426b2f4d0fbf2464eb80bb82d +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging.meta b/Source/Assets/TouchScript/Scripts/Debugging.meta new file mode 100644 index 000000000..ee42eb880 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a5ad27a8cf0eb496896014e5ba7e3064 +folderAsset: yes +timeCreated: 1500411050 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Filters.meta b/Source/Assets/TouchScript/Scripts/Debugging/Filters.meta new file mode 100644 index 000000000..331e6e464 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Filters.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3c6e68831a3cb493b92de8387c4bc2e5 +folderAsset: yes +timeCreated: 1500522281 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerDataFilter.cs b/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerDataFilter.cs new file mode 100644 index 000000000..5fe884e13 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerDataFilter.cs @@ -0,0 +1,20 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using TouchScript.Debugging.Loggers; + +namespace TouchScript.Debugging.Filters +{ + /// + /// A filter of pointer data for . + /// + public interface IPointerDataFilter + { + + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerDataFilter.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerDataFilter.cs.meta new file mode 100644 index 000000000..701149ead --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerDataFilter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9538172481b6a4ba4920474db907b74f +timeCreated: 1500511734 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerLogFilter.cs b/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerLogFilter.cs new file mode 100644 index 000000000..36565637d --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerLogFilter.cs @@ -0,0 +1,25 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using TouchScript.Debugging.Loggers; + +namespace TouchScript.Debugging.Filters +{ + /// + /// A filter of event data for . + /// + public interface IPointerLogFilter + { + /// + /// Checks if an event should be filtered. + /// + /// The log eveny. + /// True if the event should be filtered; false otherwise. + bool Applies(ref PointerLog log); + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerLogFilter.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerLogFilter.cs.meta new file mode 100644 index 000000000..078e12061 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Filters/IPointerLogFilter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e5a25273a78344e5688902b5d13e9a38 +timeCreated: 1500513432 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Filters/PointerLogFilter.cs b/Source/Assets/TouchScript/Scripts/Debugging/Filters/PointerLogFilter.cs new file mode 100644 index 000000000..39d63ed45 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Filters/PointerLogFilter.cs @@ -0,0 +1,39 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using TouchScript.Debugging.Loggers; + +namespace TouchScript.Debugging.Filters +{ + /// + /// An event log filter which filters data by events. + /// + /// + public class PointerLogFilter : IPointerLogFilter + { + /// + /// A binary mask of events based on values. + /// + public uint EventMask { get; set; } + + /// + /// Initializes a new instance of the class. + /// + public PointerLogFilter() + { + EventMask = uint.MaxValue; + } + + /// + public bool Applies(ref PointerLog log) + { + var evt = (int) log.Event; + return (EventMask & (uint) (1 << evt)) != 0; + } + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Filters/PointerLogFilter.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/Filters/PointerLogFilter.cs.meta new file mode 100644 index 000000000..9ba0124f0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Filters/PointerLogFilter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ce62e2e87231b4fdc83e8c56eeb08b89 +timeCreated: 1500522632 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/GL.meta b/Source/Assets/TouchScript/Scripts/Debugging/GL.meta new file mode 100644 index 000000000..6bdfb9d1d --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/GL.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c8b78ed8d23cd4373bebaff448436deb +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/GL/DebugHelper.cs b/Source/Assets/TouchScript/Scripts/Debugging/GL/DebugHelper.cs new file mode 100644 index 000000000..53423adb1 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/GL/DebugHelper.cs @@ -0,0 +1,20 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using UnityEngine; + +namespace TouchScript.Debugging.GL +{ + public static class DebugHelper + { + public static int GetDebugId(Object obj) + { + return int.MinValue + (obj.GetInstanceID() << 10); + } + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/GL/DebugHelper.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/GL/DebugHelper.cs.meta new file mode 100644 index 000000000..5b1668f61 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/GL/DebugHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 62efb084f73cc4f86b954d1a5109e015 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/GL/GLDebug.cs b/Source/Assets/TouchScript/Scripts/Debugging/GL/GLDebug.cs new file mode 100644 index 000000000..59a07e2ee --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/GL/GLDebug.cs @@ -0,0 +1,671 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + * Based on http://pastebin.com/69QP1s45 + */ + + #if TOUCHSCRIPT_DEBUG + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Rendering; +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.Build; +#endif + +namespace TouchScript.Debugging.GL +{ + public class GLDebug : MonoBehaviour + { + public static readonly Color MULTIPLY = new Color(0, 0, 0, 0); + public static readonly Vector2 DEFAULT_SCREEN_SPACE_SCALE = new Vector2(10, 10); + + private static GLDebug instance + { + get + { + if (!_instance && Application.isPlaying) + { + if (Camera.main) + { + _instance = Camera.main.gameObject.AddComponent(); + } + else + { + var go = new GameObject("GLDebug"); + var camera = go.AddComponent(); + camera.clearFlags = CameraClearFlags.Nothing; + camera.depth = 9000; + _instance = go.AddComponent(); + } + } + return _instance; + } + } + + public KeyCode ToggleKey; + public bool DisplayLines = true; + + private static GLDebug _instance; + + private static int nextFigureId = 1; + private Material materialDepthTest; + private Material materialNoDepthTest; + private Material materialMultiplyDepthTest; + private Material materialMultiplyNoDepthTest; + private Dictionary figuresDepthTest; + private Dictionary figuresMultiplyDepthTest; + private Dictionary figuresNoDepthTest; + private Dictionary figuresMultiplyNoDepthTest; + private Dictionary figuresScreenSpace; + private Dictionary figuresMultiplyScreenSpace; + private Dictionary figuresTmp; + + private WaitForEndOfFrame wait; + + #region Public methods + + public static void RemoveFigure(int id) + { + instance.figuresDepthTest.Remove(id); + instance.figuresNoDepthTest.Remove(id); + instance.figuresScreenSpace.Remove(id); + instance.figuresMultiplyDepthTest.Remove(id); + instance.figuresMultiplyNoDepthTest.Remove(id); + instance.figuresMultiplyScreenSpace.Remove(id); + } + + #region Line + + public static int DrawLine(Vector3 start, Vector3 end, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawLine(null, start, end, color, duration, depthTest); + } + + public static int DrawLine(int? id, Vector3 start, Vector3 end, Color? color = null, float duration = 0, bool depthTest = false) + { + return drawFigure(id, new List() {new Line(start, end)}, color ?? Color.white, duration, depthTest); + } + + public static int DrawLineScreenSpace(Vector2 start, Vector2 end, Color? color = null, float duration = 0) + { + return DrawLineScreenSpace(null, start, end, color, duration); + } + + public static int DrawLineScreenSpace(int? id, Vector2 start, Vector2 end, Color? color = null, float duration = 0) + { + return drawFigureScreenSpace(id, new List() {new Line(start, end)}, color ?? Color.white, duration); + } + + #endregion + + #region Ray + + public static int DrawRay(Vector3 start, Vector3 dir, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawRay(null, start, dir, color, duration, depthTest); + } + + public static int DrawRay(int? id, Vector3 start, Vector3 dir, Color? color = null, float duration = 0, bool depthTest = false) + { + if (dir == Vector3.zero) + return 0; + return DrawLine(start, start + dir, color, duration, depthTest); + } + + #endregion + + #region Cross + + public static int DrawCross(Vector3 pos, Quaternion? rot = null, Vector3? scale = null, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawCross(null, Matrix4x4.TRS(pos, rot ?? Quaternion.identity, scale ?? Vector3.one), color, duration, depthTest); + } + + public static int DrawCross(int? id, Vector3 pos, Quaternion? rot = null, Vector3? scale = null, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawCross(id, Matrix4x4.TRS(pos, rot ?? Quaternion.identity, scale ?? Vector3.one), color, duration, depthTest); + } + + public static int DrawCross(Matrix4x4 matrix, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawCross(null, matrix, color, duration, depthTest); + } + + public static int DrawCross(int? id, Matrix4x4 matrix, Color? color = null, float duration = 0, bool depthTest = false) + { + return drawFigure(id, createCrossLines(matrix), color ?? Color.white, duration, depthTest); + } + + public static int DrawCrossScreenSpace(Vector2 pos, float rot = 0, Vector2? scale = null, Color? color = null, float duration = 0) + { + return DrawCrossScreenSpace(null, pos, rot, scale, color, duration); + } + + public static int DrawCrossScreenSpace(int? id, Vector2 pos, float rot = 0, Vector2? scale = null, Color? color = null, float duration = 0) + { + return drawFigureScreenSpace(id, createScreenSpaceCrossLines(pos, rot, scale ?? DEFAULT_SCREEN_SPACE_SCALE), color ?? Color.white, duration); + } + + #endregion + + #region Arrow + + public static int DrawArrow(Vector3 start, Vector3 end, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawArrow(null, start, end, arrowHeadLength, arrowHeadAngle, color, duration, depthTest); + } + + public static int DrawArrow(int? id, Vector3 start, Vector3 end, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20, Color? color = null, float duration = 0, bool depthTest = false) + { + if (start == end) + return 0; + + return drawFigure(id, createArrowLines(start, end, arrowHeadLength, arrowHeadAngle), color ?? Color.white, duration, depthTest); + } + + #endregion + + #region Plane with normal + + public static int DrawPlaneWithNormal(Vector3 pos, Vector3 normal, float scale = 1f, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawPlaneWithNormal(null, pos, normal, scale, color, duration, depthTest); + } + + public static int DrawPlaneWithNormal(int? id, Vector3 pos, Vector3 normal, float scale = 1f, Color? color = null, float duration = 0, bool depthTest = false) + { + var lines = createArrowLines(pos, pos + normal); + lines.AddRange(createCrossLines(Matrix4x4.TRS(pos, Quaternion.LookRotation(normal) * Quaternion.Euler(0, 0, 45f), Vector3.one))); + lines.AddRange(createSquareLines(Matrix4x4.TRS(pos, Quaternion.FromToRotation(Vector3.up, normal), Vector3.one * scale))); + return drawFigure(id, lines, color ?? Color.white, duration, depthTest); + } + + #endregion + + #region Line with cross + + public static int DrawLineWithCross(Vector3 start, Vector3 end, float crossRelativePosition = 0.5f, Vector3? scale = null, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawLineWithCross(null, start, end, crossRelativePosition, scale, color, duration, depthTest); + } + + public static int DrawLineWithCross(int? id, Vector3 start, Vector3 end, float crossRelativePosition = 0.5f, Vector3? scale = null, Color? color = null, float duration = 0, bool depthTest = false) + { + var lines = new List() {new Line(start, end)}; + // TODO: Calculate cross rotation + lines.AddRange(createCrossLines(Matrix4x4.TRS(Vector3.Lerp(start, end, crossRelativePosition), Quaternion.identity, scale ?? Vector3.one))); + return drawFigure(id, lines, color ?? Color.white, duration, depthTest); + } + + public static int DrawLineWithCrossScreenSpace(Vector2 start, Vector2 end, float crossRelativePosition, Vector2? scale = null, Color? color = null, float duration = 0) + { + return DrawLineWithCrossScreenSpace(null, start, end, crossRelativePosition, scale, color, duration); + } + + public static int DrawLineWithCrossScreenSpace(int? id, Vector2 start, Vector2 end, float crossRelativePosition, Vector2? scale = null, Color? color = null, float duration = 0) + { + var lines = new List() {new Line(start, end)}; + lines.AddRange(createScreenSpaceCrossLines(Vector2.Lerp(start, end, crossRelativePosition), Mathf.Atan2(end.y - start.y, end.x - start.x) * Mathf.Rad2Deg + 45f, scale ?? Vector2.one * 10)); + return drawFigureScreenSpace(id, lines, color ?? Color.white, duration); + } + + #endregion + + #region Square + + public static int DrawSquare(Vector3 pos, Quaternion? rot = null, Vector3? scale = null, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawSquare(null, pos, rot, scale, color, duration, depthTest); + } + + public static int DrawSquare(int? id, Vector3 pos, Quaternion? rot = null, Vector3? scale = null, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawSquare(Matrix4x4.TRS(pos, rot ?? Quaternion.identity, scale ?? Vector3.one), color, duration, depthTest); + } + + public static int DrawSquare(Matrix4x4 matrix, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawSquare(null, matrix, color, duration, depthTest); + } + + public static int DrawSquare(int? id, Matrix4x4 matrix, Color? color = null, float duration = 0, bool depthTest = false) + { + return drawFigure(id, createSquareLines(matrix), color ?? Color.white, duration, depthTest); + } + + public static int DrawSquareScreenSpace(Vector2 pos, float rot = 0, Vector2? scale = null, Color? color = null, float duration = 0) + { + return DrawSquareScreenSpace(null, pos, rot, scale, color, duration); + } + + public static int DrawSquareScreenSpace(int? id, Vector2 pos, float rot = 0, Vector2? scale = null, Color? color = null, float duration = 0) + { + return drawFigureScreenSpace(id, createScreenSpaceSquareLines(pos, rot, scale ?? DEFAULT_SCREEN_SPACE_SCALE), color ?? Color.white, duration); + } + + #endregion + + #region Cube + + public static int DrawCube(Vector3 pos, Quaternion? rot = null, Vector3? scale = null, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawCube(null, pos, rot, scale, color, duration, depthTest); + } + + public static int DrawCube(int? id, Vector3 pos, Quaternion? rot = null, Vector3? scale = null, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawCube(Matrix4x4.TRS(pos, rot ?? Quaternion.identity, scale ?? Vector3.one), color, duration, depthTest); + } + + public static int DrawCube(Matrix4x4 matrix, Color? color = null, float duration = 0, bool depthTest = false) + { + return DrawCube(null, matrix, color, duration, depthTest); + } + + public static int DrawCube(int? id, Matrix4x4 matrix, Color? color = null, float duration = 0, bool depthTest = false) + { + return drawFigure(id, createCubeLines(matrix), color ?? Color.white, duration, depthTest); + } + + #endregion + + #endregion + + #region Unity methods + + private void Awake() + { + if (_instance) + { + Destroy(this); + return; + } + + _instance = this; + figuresDepthTest = new Dictionary(); + figuresNoDepthTest = new Dictionary(); + figuresScreenSpace = new Dictionary(); + figuresMultiplyDepthTest = new Dictionary(); + figuresMultiplyNoDepthTest = new Dictionary(); + figuresMultiplyScreenSpace = new Dictionary(); + figuresTmp = new Dictionary(); + wait = new WaitForEndOfFrame(); + + setMaterials(); + } + + private void Update() + { + if (Input.GetKeyDown(ToggleKey)) + DisplayLines = !DisplayLines; + } + + private IEnumerator OnPostRender() + { + if (!DisplayLines) yield break; + + yield return wait; + + materialDepthTest.SetPass(0); + UnityEngine.GL.Begin(UnityEngine.GL.LINES); + figuresDepthTest = draw(figuresDepthTest); + UnityEngine.GL.End(); + + materialMultiplyDepthTest.SetPass(0); + UnityEngine.GL.Begin(UnityEngine.GL.LINES); + figuresMultiplyDepthTest = draw(figuresMultiplyDepthTest); + UnityEngine.GL.End(); + + materialNoDepthTest.SetPass(0); + UnityEngine.GL.Begin(UnityEngine.GL.LINES); + figuresNoDepthTest = draw(figuresNoDepthTest); + UnityEngine.GL.End(); + + materialMultiplyNoDepthTest.SetPass(0); + UnityEngine.GL.Begin(UnityEngine.GL.LINES); + figuresMultiplyNoDepthTest = draw(figuresMultiplyNoDepthTest); + UnityEngine.GL.End(); + + UnityEngine.GL.PushMatrix(); + UnityEngine.GL.LoadPixelMatrix(); + + materialNoDepthTest.SetPass(0); + UnityEngine.GL.Begin(UnityEngine.GL.LINES); + figuresScreenSpace = draw(figuresScreenSpace); + UnityEngine.GL.End(); + + materialMultiplyNoDepthTest.SetPass(0); + UnityEngine.GL.Begin(UnityEngine.GL.LINES); + figuresMultiplyScreenSpace = draw(figuresMultiplyScreenSpace); + UnityEngine.GL.End(); + UnityEngine.GL.PopMatrix(); + } + + #endregion + + #region Private functions + + #region Misc + + private Dictionary draw(Dictionary figures) + { + figuresTmp.Clear(); + var newFigures = figuresTmp; + foreach (var key in figures.Keys) + { + var value = figures[key]; + value.Duration = value.Draw(); + if (value.Duration > 0) + { + newFigures[key] = value; + } + } + figuresTmp = figures; + return newFigures; + } + + private void setMaterials() + { + materialDepthTest = new Material(Shader.Find("Hidden/DebugDepthTest")); + materialNoDepthTest = new Material(Shader.Find("Hidden/DebugNoDepthTest")); + materialMultiplyDepthTest = new Material(Shader.Find("Hidden/DebugMultiplyDepthTest")); + materialMultiplyNoDepthTest = new Material(Shader.Find("Hidden/DebugMultiplyNoDepthTest")); + materialDepthTest.hideFlags = HideFlags.HideAndDontSave; + materialNoDepthTest.hideFlags = HideFlags.HideAndDontSave; + materialMultiplyDepthTest.hideFlags = HideFlags.HideAndDontSave; + materialMultiplyNoDepthTest.hideFlags = HideFlags.HideAndDontSave; + } + + #endregion + + #region Figure creation + + private static int drawFigure(int? id, List lines, Color color, float duration = 0, bool depthTest = false) + { + if (duration == 0 && !instance.DisplayLines) + return 0; + + int figureId; + if (id.HasValue) + { + figureId = id.Value; + RemoveFigure(figureId); + } + else + { + figureId = nextFigureId++; + } + if (depthTest) + { + if (color == MULTIPLY) instance.figuresMultiplyDepthTest.Add(figureId, new Figure(figureId, lines, Color.white, duration)); + else instance.figuresDepthTest.Add(figureId, new Figure(figureId, lines, color, duration)); + } + else + { + if (color == MULTIPLY) instance.figuresMultiplyNoDepthTest.Add(figureId, new Figure(figureId, lines, Color.white, duration)); + else instance.figuresNoDepthTest.Add(figureId, new Figure(figureId, lines, color, duration)); + } + return figureId; + } + + private static int drawFigureScreenSpace(int? id, List lines, Color color, float duration = 0) + { + if (duration == 0 && !instance.DisplayLines) + return 0; + + int figureId; + if (id.HasValue) + { + figureId = id.Value; + RemoveFigure(figureId); + } + else + { + figureId = nextFigureId++; + } + + if (color == MULTIPLY) instance.figuresMultiplyScreenSpace.Add(figureId, new Figure(figureId, lines, Color.white, duration)); + else instance.figuresScreenSpace.Add(figureId, new Figure(figureId, lines, color, duration)); + return figureId; + } + + #endregion + + #region Line helpers + + private static List createCrossLines(Matrix4x4 matrix) + { + Vector3 + p_1 = matrix.MultiplyPoint3x4(new Vector3(-.5f, 0, 0)), + p_2 = matrix.MultiplyPoint3x4(new Vector3(.5f, 0, 0)), + p_3 = matrix.MultiplyPoint3x4(new Vector3(0, -.5f, 0)), + p_4 = matrix.MultiplyPoint3x4(new Vector3(0, .5f, 0)); + + return new List() + { + new Line(p_1, p_2), + new Line(p_3, p_4), + }; + } + + private static List createScreenSpaceCrossLines(Vector2 pos, float rot, Vector2 scale) + { + Vector2 p_1, p_2, p_3, p_4; + float x = .5f * scale.x; + float y = .5f * scale.y; + + if (rot == 0) + { + p_1 = new Vector2(-x, 0) + pos; + p_2 = new Vector2(x, 0) + pos; + p_3 = new Vector2(0, -y) + pos; + p_4 = new Vector2(0, y) + pos; + } + else + { + var cos = Mathf.Cos(rot * Mathf.Deg2Rad); + var sin = Mathf.Sin(rot * Mathf.Deg2Rad); + + p_1 = new Vector2(-x * cos, -x * sin) + pos; + p_2 = new Vector2(x * cos, x * sin) + pos; + p_3 = new Vector2(y * sin, -y * cos) + pos; + p_4 = new Vector2(-y * sin, y * cos) + pos; + } + + return new List() + { + new Line(p_1, p_2), + new Line(p_3, p_4), + }; + } + + private static List createArrowLines(Vector3 start, Vector3 end, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20) + { + var dir = end - start; + Vector3 right = Quaternion.LookRotation(dir) * Quaternion.Euler(0, 180 + arrowHeadAngle, 0) * Vector3.forward; + Vector3 left = Quaternion.LookRotation(dir) * Quaternion.Euler(0, 180 - arrowHeadAngle, 0) * Vector3.forward; + + return new List() + { + new Line(start, end), + new Line(end, end + right * arrowHeadLength), + new Line(end, end + left * arrowHeadLength) + }; + } + + private static List createSquareLines(Matrix4x4 matrix) + { + Vector3 + p_1 = matrix.MultiplyPoint3x4(new Vector3(.5f, 0, .5f)), + p_2 = matrix.MultiplyPoint3x4(new Vector3(.5f, 0, -.5f)), + p_3 = matrix.MultiplyPoint3x4(new Vector3(-.5f, 0, -.5f)), + p_4 = matrix.MultiplyPoint3x4(new Vector3(-.5f, 0, .5f)); + + return new List() + { + new Line(p_1, p_2), + new Line(p_2, p_3), + new Line(p_3, p_4), + new Line(p_4, p_1) + }; + } + + private static List createScreenSpaceSquareLines(Vector2 pos, float rot, Vector2 scale) + { + Vector2 p_1, p_2, p_3, p_4; + float x = .5f * scale.x; + float y = .5f * scale.y; + + if (rot == 0) + { + p_1 = new Vector2(x, y) + pos; + p_2 = new Vector2(x, -y) + pos; + p_3 = new Vector2(-x, -y) + pos; + p_4 = new Vector2(-x, y) + pos; + } + else + { + var cos = Mathf.Cos(rot * Mathf.Deg2Rad); + var sin = Mathf.Sin(rot * Mathf.Deg2Rad); + + p_1 = new Vector2(x * cos - y * sin, x * sin + y * cos) + pos; + p_2 = new Vector2(x * cos + y * sin, x * sin - y * cos) + pos; + p_3 = new Vector2(-x * cos + y * sin, -x * sin - y * cos) + pos; + p_4 = new Vector2(-x * cos - y * sin, -x * sin + y * cos) + pos; + } + + return new List() + { + new Line(p_1, p_2), + new Line(p_2, p_3), + new Line(p_3, p_4), + new Line(p_4, p_1) + }; + } + + private static List createCubeLines(Matrix4x4 matrix) + { + Vector3 + down_1 = matrix.MultiplyPoint3x4(new Vector3(.5f, -.5f, .5f)), + down_2 = matrix.MultiplyPoint3x4(new Vector3(.5f, -.5f, -.5f)), + down_3 = matrix.MultiplyPoint3x4(new Vector3(-.5f, -.5f, -.5f)), + down_4 = matrix.MultiplyPoint3x4(new Vector3(-.5f, -.5f, .5f)), + up_1 = matrix.MultiplyPoint3x4(new Vector3(.5f, .5f, .5f)), + up_2 = matrix.MultiplyPoint3x4(new Vector3(.5f, .5f, -.5f)), + up_3 = matrix.MultiplyPoint3x4(new Vector3(-.5f, .5f, -.5f)), + up_4 = matrix.MultiplyPoint3x4(new Vector3(-.5f, .5f, .5f)); + + return new List() + { + new Line(down_1, down_2), + new Line(down_2, down_3), + new Line(down_3, down_4), + new Line(down_4, down_1), + new Line(down_1, up_1), + new Line(down_2, up_2), + new Line(down_3, up_3), + new Line(down_4, up_4), + new Line(up_1, up_2), + new Line(up_2, up_3), + new Line(up_3, up_4), + new Line(up_4, up_1) + }; + } + + #endregion + + #endregion + + #region Structs + + private struct Figure + { + public int Id; + public Color Color; + public float Duration; + public List Lines; + + public Figure(int id, List lines, Color color, float duration) + { + Id = id; + Color = color; + Duration = duration; + Lines = lines; + } + + public float Draw() + { + UnityEngine.GL.Color(Color); + for (var i = 0; i < Lines.Count; i++) + { + Lines[i].Draw(); + } + return Duration - Time.unscaledDeltaTime; + } + } + + private struct Line + { + public Vector3 start; + public Vector3 end; + + public Line(Vector3 start, Vector3 end) + { + this.start = start; + this.end = end; + } + + public void Draw() + { + UnityEngine.GL.Vertex(start); + UnityEngine.GL.Vertex(end); + } + } + + #endregion + } + +#if UNITY_EDITOR + internal class BuildProcessor : IPreprocessBuild, IPostprocessBuild + { + public int callbackOrder + { + get { return 0; } + } + + public void OnPreprocessBuild(BuildTarget target, string path) + { + // Add hidden shaders to the build. + var objs = Resources.FindObjectsOfTypeAll(); + var graphicsSettings = new SerializedObject(objs[0]); + var alwaysIncludedShaders = graphicsSettings.FindProperty("m_AlwaysIncludedShaders"); + insertShaderInProperty(alwaysIncludedShaders, "Hidden/DebugDepthTest"); + insertShaderInProperty(alwaysIncludedShaders, "Hidden/DebugNoDepthTest"); + insertShaderInProperty(alwaysIncludedShaders, "Hidden/DebugMultiplyDepthTest"); + insertShaderInProperty(alwaysIncludedShaders, "Hidden/DebugMultiplyNoDepthTest"); + graphicsSettings.ApplyModifiedProperties(); + } + + public void OnPostprocessBuild(BuildTarget target, string path) + { + // Reverd GraphicsSettings. + var objs = Resources.FindObjectsOfTypeAll(); + var graphicsSettings = new SerializedObject(objs[0]); + var alwaysIncludedShaders = graphicsSettings.FindProperty("m_AlwaysIncludedShaders"); + alwaysIncludedShaders.arraySize = alwaysIncludedShaders.arraySize - 4; + graphicsSettings.ApplyModifiedProperties(); + } + + private void insertShaderInProperty(SerializedProperty prop, string shaderName) + { + var index = prop.arraySize; + prop.InsertArrayElementAtIndex(index); + prop.GetArrayElementAtIndex(index).objectReferenceValue = Shader.Find(shaderName); + } + } +#endif +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/GL/GLDebug.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/GL/GLDebug.cs.meta new file mode 100644 index 000000000..35dd6354f --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/GL/GLDebug.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d2d72c9d6bd55482db3ece50442c7353 +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Loggers.meta b/Source/Assets/TouchScript/Scripts/Debugging/Loggers.meta new file mode 100644 index 000000000..c939545fc --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Loggers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8610da401c05e4500ab00da47d037853 +folderAsset: yes +timeCreated: 1500522275 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileReaderLogger.cs b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileReaderLogger.cs new file mode 100644 index 000000000..bd3d7395a --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileReaderLogger.cs @@ -0,0 +1,134 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using System; +using System.Collections.Generic; +using System.IO; +using TouchScript.Debugging.Filters; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Debugging.Loggers +{ + public class FileReaderLogger : IPointerLogger + { + public const int MIN_POINTER_LIST_SIZE = 1000; + + private int pointerCount = 0; + private BinaryReader reader; + + protected List data = new List(1); + protected List> events = new List>(1); + + /// + public int PointerCount + { + get { return pointerCount; } + } + + public FileReaderLogger(string path) + { + try + { + reader = new BinaryReader(new FileStream(path, FileMode.Open)); + } + catch (IOException e) + { + Debug.LogFormat("Error opening file at '{0}'. {1}", path, e.Message); + } + + try + { + while (true) + { + var type = (Pointer.PointerType) reader.ReadUInt32(); + var log = new PointerLog() + { + Id = reader.ReadInt32(), + Tick = reader.ReadInt64(), + PointerId = reader.ReadInt32(), + Event = (PointerEvent) reader.ReadUInt32(), + State = new PointerState() + { + Buttons = (Pointer.PointerButtonState) reader.ReadUInt32(), + Position = new Vector2(reader.ReadSingle(), reader.ReadSingle()), + PreviousPosition = new Vector2(reader.ReadSingle(), reader.ReadSingle()), + Flags = reader.ReadUInt32(), + Target = null, + TargetPath = reader.ReadString(), + } + }; + + checkId(log.PointerId, type); + var list = getPointerList(log.PointerId); + list.Add(log); + } + } + finally + { + reader.Close(); + } + } + + /// + public void Log(Pointer pointer, PointerEvent evt) + { + throw new NotImplementedException("FileReaderLogger doesn't support writing data."); + } + + /// + public List GetFilteredPointerData(IPointerDataFilter filter = null) + { + //if (filter == null) + return new List(data); + } + + /// + public List GetFilteredLogsForPointer(int id, IPointerLogFilter filter = null) + { + if (id < 0 || id >= pointerCount) + return new List(); + + List list = events[id]; + if (filter == null) + return new List(list); + + var count = list.Count; + List filtered = new List(count); + for (var i = 0; i < count; i++) + { + var item = list[i]; + if (filter.Applies(ref item)) filtered.Add(item); + } + return filtered; + } + + public void Dispose() {} + + private IList getPointerList(int id) + { + return events[id]; + } + + private void checkId(int id, Pointer.PointerType type) + { + if (id > pointerCount) throw new InvalidOperationException("Pointer id desync!"); + else if (id == pointerCount) + { + var list = new List(MIN_POINTER_LIST_SIZE); + events.Add(list); + data.Add(new PointerData() + { + Id = id, + Type = type, + }); + pointerCount++; + } + } + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileReaderLogger.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileReaderLogger.cs.meta new file mode 100644 index 000000000..c6e7e30e2 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileReaderLogger.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cf11ad2c5a60cf64b859ed16fa453e64 +timeCreated: 1500796765 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileWriterLogger.cs b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileWriterLogger.cs new file mode 100644 index 000000000..aedd6ade1 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileWriterLogger.cs @@ -0,0 +1,81 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using System; +using System.Collections.Generic; +using System.IO; +using TouchScript.Debugging.Filters; +using TouchScript.Pointers; +using TouchScript.Utils; +using UnityEngine; + +namespace TouchScript.Debugging.Loggers +{ + public class FileWriterLogger : IPointerLogger + { + private int eventCount = 0; + private BinaryWriter writer; + + /// + public int PointerCount + { + get { throw new NotImplementedException("FileWriterLogger doesn't support reading data."); } + } + + public FileWriterLogger() + { + var path = Path.Combine(Application.dataPath, "../TouchEvents.bin"); + try + { + writer = new BinaryWriter(new FileStream(path, FileMode.Create)); + } + catch (IOException e) + { + Debug.LogFormat("Error creating file at '{0}'. {1}", path, e.Message); + } + } + + /// + public void Log(Pointer pointer, PointerEvent evt) + { + var path = TransformUtils.GetHeirarchyPath(pointer.GetPressData().Target); + + writer.Write((uint) pointer.Type); + writer.Write(eventCount); + writer.Write(DateTime.Now.Ticks); + writer.Write(pointer.Id); + writer.Write((uint) evt); + writer.Write((uint) pointer.Buttons); + writer.Write(pointer.Position.x); + writer.Write(pointer.Position.y); + writer.Write(pointer.PreviousPosition.x); + writer.Write(pointer.PreviousPosition.y); + writer.Write(pointer.Flags); + writer.Write(path ?? ""); + + eventCount++; + } + + /// + public List GetFilteredPointerData(IPointerDataFilter filter = null) + { + throw new NotImplementedException("FileWriterLogger doesn't support reading data."); + } + + /// + public List GetFilteredLogsForPointer(int id, IPointerLogFilter filter = null) + { + throw new NotImplementedException("FileWriterLogger doesn't support reading data."); + } + + public void Dispose() + { + if (writer != null) writer.Close(); + } + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileWriterLogger.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileWriterLogger.cs.meta new file mode 100644 index 000000000..b31f029e0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/FileWriterLogger.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: df991832cfefaf844b8c08c5dd294afc +timeCreated: 1500795302 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Loggers/IPointerLogger.cs b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/IPointerLogger.cs new file mode 100644 index 000000000..49d14ff07 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/IPointerLogger.cs @@ -0,0 +1,108 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using System; +using System.Collections.Generic; +using TouchScript.Debugging.Filters; +using TouchScript.InputSources; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Debugging.Loggers +{ + /// + /// A logger to record pointer events. + /// + public interface IPointerLogger + { + /// + /// The number of different pointers recorded by this logger. + /// + int PointerCount { get; } + + /// + /// Logs the specified event. + /// + /// The pointer. + /// The event. + void Log(Pointer pointer, PointerEvent evt); + + /// + /// Returns a list of pointers. + /// + /// The filter to use. + /// A list of objects. + List GetFilteredPointerData(IPointerDataFilter filter = null); + + /// + /// Returns a lost of pointer events for a pointer. + /// + /// The pointer id. + /// The filter to use. + /// A list of entries. + List GetFilteredLogsForPointer(int id, IPointerLogFilter filter = null); + + /// + /// Releases resources. + /// + void Dispose(); + } + + /// + /// Pointer event. + /// + [Serializable] + public struct PointerLog + { + public int Id; + public long Tick; + public int PointerId; + public PointerEvent Event; + public PointerState State; + } + + /// + /// Pointer state during an event. + /// + [Serializable] + public struct PointerState + { + public Pointer.PointerButtonState Buttons; + public Vector2 Position; + public Vector2 PreviousPosition; + public uint Flags; + public Transform Target; + public string TargetPath; + } + + /// + /// Static pointer data. + /// + [Serializable] + public struct PointerData + { + public int Id; + public Pointer.PointerType Type; + public IInputSource InputSource; + } + + /// + /// Pointer event type. + /// + public enum PointerEvent + { + None, + IdAllocated, + Added, + Updated, + Pressed, + Released, + Removed, + Cancelled + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Loggers/IPointerLogger.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/IPointerLogger.cs.meta new file mode 100644 index 000000000..4064d563b --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/IPointerLogger.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 36c90388cb60e47178ac7aeb22358611 +timeCreated: 1500411210 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Loggers/PointerLogger.cs b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/PointerLogger.cs new file mode 100644 index 000000000..875e83a1c --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/PointerLogger.cs @@ -0,0 +1,136 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using System; +using System.Collections.Generic; +using TouchScript.Debugging.Filters; +using TouchScript.Pointers; +using TouchScript.Utils; + +namespace TouchScript.Debugging.Loggers +{ + /// + /// A default implementation of used in editor. + /// + /// + public class PointerLogger : IPointerLogger + { + #region Consts + + public const int MIN_POINTER_LIST_SIZE = 1000; + + #endregion + + #region Public properties + + /// + public int PointerCount + { + get { return pointerCount; } + } + + #endregion + + #region Private variables + + private int pointerCount = 0; + private int eventCount = 0; + + protected List data = new List(1); + protected List> events = new List>(1); + + #endregion + + #region Public methods + + /// + public virtual void Log(Pointer pointer, PointerEvent evt) + { + var id = checkId(pointer); + + var list = getPointerList(id); + var log = new PointerLog() + { + Id = eventCount, + Tick = DateTime.Now.Ticks, + PointerId = id, + Event = evt, + State = new PointerState() + { + Buttons = pointer.Buttons, + Position = pointer.Position, + PreviousPosition = pointer.PreviousPosition, + Flags = pointer.Flags, + Target = pointer.GetPressData().Target, + TargetPath = TransformUtils.GetHeirarchyPath(pointer.GetPressData().Target), + } + }; + list.Add(log); + eventCount++; + } + + /// + public virtual List GetFilteredPointerData(IPointerDataFilter filter = null) + { + //if (filter == null) + return new List(data); + } + + /// + public virtual List GetFilteredLogsForPointer(int id, IPointerLogFilter filter = null) + { + if (id < 0 || id >= pointerCount) + return new List(); + + List list = events[id]; + if (filter == null) + return new List(list); + + var count = list.Count; + List filtered = new List(count); + for (var i = 0; i < count; i++) + { + var item = list[i]; + if (filter.Applies(ref item)) filtered.Add(item); + } + return filtered; + } + + /// + public virtual void Dispose() {} + + #endregion + + #region Private functions + + private IList getPointerList(int id) + { + return events[id]; + } + + private int checkId(Pointer pointer) + { + var id = pointer.Id; + if (id > pointerCount) throw new InvalidOperationException("Pointer id desync!"); + if (id != pointerCount) return id; + + var list = new List(MIN_POINTER_LIST_SIZE); + events.Add(list); + data.Add(new PointerData() + { + Id = id, + Type = pointer.Type, + }); + pointerCount++; + + return id; + } + + #endregion + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/Loggers/PointerLogger.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/PointerLogger.cs.meta new file mode 100644 index 000000000..ce961f2d5 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/Loggers/PointerLogger.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c562664b792404515b96fe4cbbc06988 +timeCreated: 1500522240 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Debugging/TouchScriptDebugger.cs b/Source/Assets/TouchScript/Scripts/Debugging/TouchScriptDebugger.cs new file mode 100644 index 000000000..382909cf8 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/TouchScriptDebugger.cs @@ -0,0 +1,101 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if TOUCHSCRIPT_DEBUG + +using System.Collections.Generic; +using TouchScript.Debugging.Filters; +using UnityEngine; +using TouchScript.Debugging.Loggers; +using TouchScript.Pointers; + +namespace TouchScript.Debugging +{ + /// + /// A set of debugging tools for TouchScript. + /// + public class TouchScriptDebugger : ScriptableObject + { + /// + /// The singleton instance of the debugger. + /// + public static TouchScriptDebugger Instance + { + get + { + if (instance == null) + { + var objs = Resources.FindObjectsOfTypeAll(); + if (objs.Length > 0) instance = objs[0]; + else + { + instance = CreateInstance(); + instance.hideFlags = HideFlags.HideAndDontSave; + } + } + return instance; + } + } + + /// + /// Current logger to record pointer events. + /// + public IPointerLogger PointerLogger + { + get { return pointerLogger; } + set + { + if (value == null) return; + if (pointerLogger == value) return; + if (pointerLogger != null) pointerLogger.Dispose(); + pointerLogger = value; + } + } + + private static TouchScriptDebugger instance; + private IPointerLogger pointerLogger; + + public void ClearPointerLogger() + { + if (Application.isEditor) + pointerLogger = new DummyLogger(); + else + pointerLogger = new FileWriterLogger(); + } + + private void OnEnable() + { + if (pointerLogger == null) ClearPointerLogger(); + } + + private void OnDisable() + { + if (pointerLogger != null) pointerLogger.Dispose(); + } + + private class DummyLogger : IPointerLogger + { + public int PointerCount + { + get { return 0; } + } + + public void Log(Pointer pointer, PointerEvent evt) {} + + public List GetFilteredPointerData(IPointerDataFilter filter = null) + { + return new List(); + } + + public List GetFilteredLogsForPointer(int id, IPointerLogFilter filter = null) + { + return new List(); + } + + public void Dispose() {} + } + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Debugging/TouchScriptDebugger.cs.meta b/Source/Assets/TouchScript/Scripts/Debugging/TouchScriptDebugger.cs.meta new file mode 100644 index 000000000..6d43f116a --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Debugging/TouchScriptDebugger.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: feb5ce0eed35041f6a2db91bce359f03 +timeCreated: 1500411179 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Devices.meta b/Source/Assets/TouchScript/Scripts/Devices.meta new file mode 100644 index 000000000..a816a56d4 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Devices.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0f0d02fafb4b84027a26a4f6d7869eb7 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Devices/Display.meta b/Source/Assets/TouchScript/Scripts/Devices/Display.meta new file mode 100644 index 000000000..a2b554cce --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Devices/Display.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7d2c38e5cc5ea4b4281bbbba6206ae38 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Devices/Display/DisplayDevice.cs b/Source/Assets/TouchScript/Scripts/Devices/Display/DisplayDevice.cs new file mode 100644 index 000000000..66b1df59f --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Devices/Display/DisplayDevice.cs @@ -0,0 +1,92 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if UNITY_EDITOR +using UnityEditor; +#endif +using UnityEngine; + +namespace TouchScript.Devices.Display +{ + /// + /// A simple display device which inherits from and can be saved in Unity assets. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Devices_Display_DisplayDevice.htm")] + public class DisplayDevice : ScriptableObject, IDisplayDevice + { +#if UNITY_EDITOR + //[MenuItem("Window/TouchScript/CreateDisplayDevice")] + private static DisplayDevice CreateDisplayDevice() + { + var dd = CreateInstance(); + AssetDatabase.CreateAsset(dd, "Assets/DisplayDevice.asset"); + return dd; + } +#endif + + /// + public string Name + { + get { return name; } + set + { + name = value; + base.name = value; + } + } + + /// + public virtual float DPI + { + get { return dpi; } + } + + /// + public virtual float NativeDPI + { + get { return nativeDPI; } + } + + /// + public virtual Vector2 NativeResolution + { + get { return nativeResolution; } + } + + /// + /// Serialized device name. + /// + [SerializeField] + protected new string name = "Unknown Device"; + + /// + /// Serialized device DPI. + /// + [SerializeField] + protected float dpi = 96; + + /// + /// Native device dpi. + /// + [SerializeField] + protected float nativeDPI = 96; + + /// + /// Native device resolution. + /// + [SerializeField] + protected Vector2 nativeResolution = new Vector2(1920, 1080); + + /// + public virtual void UpdateDPI() {} + + /// + /// OnEnable Unity method. + /// + protected virtual void OnEnable() + { + base.name = name; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Devices/Display/DisplayDevice.cs.meta b/Source/Assets/TouchScript/Scripts/Devices/Display/DisplayDevice.cs.meta new file mode 100644 index 000000000..14d5bd4fe --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Devices/Display/DisplayDevice.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3bb766ec5aebe4332b86a7b9b50eb01d +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Devices/Display/GenericDisplayDevice.cs b/Source/Assets/TouchScript/Scripts/Devices/Display/GenericDisplayDevice.cs new file mode 100644 index 000000000..892dd2397 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Devices/Display/GenericDisplayDevice.cs @@ -0,0 +1,245 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Text.RegularExpressions; +#if UNITY_STANDALONE_WIN +using TouchScript.Utils.Platform; +#endif +using UnityEngine; + +namespace TouchScript.Devices.Display +{ + /// + /// Display device which tries to guess current DPI if it's not set by platform. + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Devices_Display_GenericDisplayDevice.htm")] + public class GenericDisplayDevice : DisplayDevice + { + private static bool IsLaptop + { + get + { + if (isLaptop == null) + { + var gpuName = SystemInfo.graphicsDeviceName.ToLower(); + var regex = new Regex(@"^(.*mobile.*|intel hd graphics.*|.*m\s*(series)?\s*(opengl engine)?)$", RegexOptions.IgnoreCase); + if (regex.IsMatch(gpuName)) isLaptop = true; + else isLaptop = false; + } + return isLaptop == true; + } + } + + private static bool? isLaptop = null; + + /// + public override void UpdateDPI() + { + if (Screen.fullScreen) + { + var res = Screen.currentResolution; + dpi = Mathf.Max(res.width / nativeResolution.x, res.height / nativeResolution.y) * nativeDPI; + } + else + { + dpi = nativeDPI; + } + } + + /// + protected override void OnEnable() + { + base.OnEnable(); + + Name = Application.platform.ToString(); + if (IsLaptop) Name += " (Laptop)"; + + updateNativeResulotion(); + updateNativeDPI(); + UpdateDPI(); + } + + private void updateNativeResulotion() + { + switch (Application.platform) + { + // Editors / windowed + case RuntimePlatform.LinuxEditor: + case RuntimePlatform.OSXEditor: + case RuntimePlatform.WindowsEditor: + // This has not been tested and is probably wrong. + if (getHighestResolution(out nativeResolution)) break; + var res = Screen.currentResolution; + nativeResolution = new Vector2(res.width, res.height); + break; + // Mobiles / fullscreen + case RuntimePlatform.Android: + case RuntimePlatform.IPhonePlayer: + case RuntimePlatform.TizenPlayer: + case RuntimePlatform.WSAPlayerARM: + case RuntimePlatform.WSAPlayerX64: + case RuntimePlatform.WSAPlayerX86: + // This has not been tested and is probably wrong. + if (getHighestResolution(out nativeResolution)) break; + res = Screen.currentResolution; + nativeResolution = new Vector2(res.width, res.height); + break; + // PCs + case RuntimePlatform.WindowsPlayer: +#if UNITY_STANDALONE_WIN + int width, height; + WindowsUtils.GetNativeMonitorResolution(out width, out height); + nativeResolution = new Vector2(width, height); +#endif + break; + case RuntimePlatform.LinuxPlayer: + case RuntimePlatform.OSXPlayer: + case RuntimePlatform.WebGLPlayer: + // This has not been tested and is probably wrong. + if (getHighestResolution(out nativeResolution)) break; + res = Screen.currentResolution; + nativeResolution = new Vector2(res.width, res.height); + break; + // Probably TVs + case RuntimePlatform.SamsungTVPlayer: +#if UNITY_5_6_OR_NEWER + case RuntimePlatform.Switch: +#endif + case RuntimePlatform.WiiU: + case RuntimePlatform.XboxOne: + case RuntimePlatform.tvOS: + // This has not been tested and is probably wrong. + if (getHighestResolution(out nativeResolution)) break; + res = Screen.currentResolution; + nativeResolution = new Vector2(res.width, res.height); + break; + case RuntimePlatform.PSP2: + nativeResolution = new Vector2(960, 544); + break; + default: + // This has not been tested and is probably wrong. + if (getHighestResolution(out nativeResolution)) break; + res = Screen.currentResolution; + nativeResolution = new Vector2(res.width, res.height); + break; + } + } + + private void updateNativeDPI() + { + nativeDPI = Screen.dpi; + if (nativeDPI > float.Epsilon) return; + + var res = Screen.currentResolution; + var width = Mathf.Max(res.width, res.height); + var height = Mathf.Min(res.width, res.height); + + switch (Application.platform) + { + // Editors / windowed + case RuntimePlatform.LinuxEditor: + case RuntimePlatform.OSXEditor: + case RuntimePlatform.WindowsEditor: + // PCs + case RuntimePlatform.WindowsPlayer: + case RuntimePlatform.LinuxPlayer: + case RuntimePlatform.OSXPlayer: + case RuntimePlatform.WebGLPlayer: + // This has not been tested and is probably wrong. + // Let's guess + if (width >= 3840) + { + if (height <= 2160) dpi = 150; // 28-31" + else dpi = 200; + } + else if (width >= 2880 && height == 1800) dpi = 220; // 15" retina + else if (width >= 2560) + { + if (height >= 1600) + { + if (IsLaptop) dpi = 226; // 13.3" retina + else dpi = 101; // 30" display + } + else if (height >= 1440) dpi = 109; // 27" iMac + } + else if (width >= 2048) + { + if (height <= 1152) dpi = 100; // 23-27" + else dpi = 171; // 15" laptop + } + else if (width >= 1920) + { + if (height >= 1440) dpi = 110; // 24" + else if (height >= 1200) dpi = 90; // 26-27" + else if (height >= 1080) + { + if (IsLaptop) dpi = 130; // 15" - 18" laptop + else dpi = 92; // +-24" display + } + } + else if (width >= 1680) dpi = 129; // 15" laptop + else if (width >= 1600) dpi = 140; // 13" laptop + else if (width >= 1440) + { + if (height >= 1050) dpi = 125; // 14" laptop + else dpi = 110; // 13" air or 15" macbook pro + } + else if (width >= 1366) dpi = 125; // 10"-14" laptops + else if (width >= 1280) dpi = 110; + else dpi = 96; + break; + // Mobiles / fullscreen + case RuntimePlatform.Android: + case RuntimePlatform.IPhonePlayer: + case RuntimePlatform.TizenPlayer: + case RuntimePlatform.WSAPlayerARM: + case RuntimePlatform.WSAPlayerX64: + case RuntimePlatform.WSAPlayerX86: + // We just hope that mobiles report their DPI correctly + break; + // Probably TVs + case RuntimePlatform.SamsungTVPlayer: +#if UNITY_5_6_OR_NEWER + case RuntimePlatform.Switch: +#endif + case RuntimePlatform.WiiU: + case RuntimePlatform.XboxOne: + case RuntimePlatform.tvOS: + // This has not been tested and is probably wrong. + if (width >= 3840) + { + nativeDPI = 96; + } + else if (width >= 1920) + { + nativeDPI = 50; + } + else + { + nativeDPI = 40; + } + break; + case RuntimePlatform.PSP2: + nativeDPI = 220.68f; + break; + default: + // This has not been tested and is probably wrong. + nativeDPI = 160; + break; + } + } + + private bool getHighestResolution(out Vector2 resolution) + { + resolution = new Vector2(); + + var resolutions = Screen.resolutions; + if (resolutions.Length == 0) return false; + + var r = resolutions[resolutions.Length - 1]; + resolution = new Vector2(r.width, r.height); + return true; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Devices/Display/GenericDisplayDevice.cs.meta b/Source/Assets/TouchScript/Scripts/Devices/Display/GenericDisplayDevice.cs.meta new file mode 100644 index 000000000..796ec6ada --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Devices/Display/GenericDisplayDevice.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0896e97c8d8484717ae2c80c241157d9 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Devices/Display/IDisplayDevice.cs b/Source/Assets/TouchScript/Scripts/Devices/Display/IDisplayDevice.cs new file mode 100644 index 000000000..8525f931f --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Devices/Display/IDisplayDevice.cs @@ -0,0 +1,43 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Devices.Display +{ + /// + /// Represents a device which is used to display touch interface. Incapsulating such properties as . + /// + /// + /// TouchScript uses display device to calculate gesture properties based on device's DPI. This makes it possible to have the same experience on mobile devices with high DPI and large touch surfaces which have low DPI. + /// Current instance of can be accessed via . + /// + public interface IDisplayDevice + { + /// + /// Name of the display device. + /// + string Name { get; } + + /// + /// DPI of the game based on and . + /// + float DPI { get; } + + /// + /// Native DPI of the display device. + /// + float NativeDPI { get; } + + /// + /// Native resolution of the display device. + /// + Vector2 NativeResolution { get; } + + /// + /// Forces to recalculate . + /// + void UpdateDPI(); + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Devices/Display/IDisplayDevice.cs.meta b/Source/Assets/TouchScript/Scripts/Devices/Display/IDisplayDevice.cs.meta new file mode 100644 index 000000000..c6df6b8f4 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Devices/Display/IDisplayDevice.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4abf92e08a63c4a26805b5917d5e0c64 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/GestureManager.cs b/Source/Assets/TouchScript/Scripts/GestureManager.cs new file mode 100644 index 000000000..bbd7996e1 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/GestureManager.cs @@ -0,0 +1,33 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Core; +using UnityEngine; + +namespace TouchScript +{ + /// + /// Facade for current instance of . + /// + /// + /// Why IList instead of Pointer in pointer events? + /// Right now touchesBegan/touchesMoved/touchesEnded methods in Gesture class accept IList as their argument which seems to overcomplicate a lot of stuff and just calling touchBegan(TouchPoint) would be easier. + /// The later approach was tried in 7.0 and reverted in 8.0 since it introduced a really hard to fix gesture priority issue. If with lists a gesture knows all touches changed during current frame, individual touchMoved calls have to be buffered till the end of frame. But there's no way to execute gesture recognition logic at the end of frame in the right hierarchical order. This concern resulted in the following issue: https://github.com/TouchScript/TouchScript/issues/203 + /// + /// + public sealed class GestureManager : MonoBehaviour + { + #region Public properties + + /// + /// Gets the GestureManager instance. + /// + public static IGestureManager Instance + { + get { return GestureManagerInstance.Instance; } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/GestureManager.cs.meta b/Source/Assets/TouchScript/Scripts/GestureManager.cs.meta new file mode 100644 index 000000000..9056a3eec --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/GestureManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8e601f7600f944e56ac4d76e112fd154 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures.meta b/Source/Assets/TouchScript/Scripts/Gestures.meta new file mode 100644 index 000000000..45613e041 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c52b7151036da458387513f807f2f02c +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/FlickGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/FlickGesture.cs new file mode 100644 index 000000000..4b69b4887 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/FlickGesture.cs @@ -0,0 +1,302 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.Profiling; + +namespace TouchScript.Gestures +{ + /// + /// Recognizes fast movement before releasing pointers. Doesn't care how much time pointers were on surface and how much they moved. + /// + [AddComponentMenu("TouchScript/Gestures/Flick Gesture")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_FlickGesture.htm")] + public class FlickGesture : Gesture + { + #region Constants + + /// + /// Message name when gesture is recognized + /// + public const string FLICK_MESSAGE = "OnFlick"; + + /// + /// Direction of a flick. + /// + public enum GestureDirection + { + /// + /// Direction doesn't matter. + /// + Any, + + /// + /// Only horizontal. + /// + Horizontal, + + /// + /// Only vertical. + /// + Vertical, + } + + #endregion + + #region Events + + /// + /// Occurs when gesture is recognized. + /// + public event EventHandler Flicked + { + add { flickedInvoker += value; } + remove { flickedInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler flickedInvoker; + + #endregion + + #region Public properties + + /// + /// Gets or sets time interval in seconds in which pointers must move by for gesture to succeed. + /// + /// Interval in seconds in which pointers must move by for gesture to succeed. + public float FlickTime + { + get { return flickTime; } + set { flickTime = value; } + } + + /// + /// Gets or sets minimum distance in cm to move in before ending gesture for it to be recognized. + /// + /// Minimum distance in cm to move in before ending gesture for it to be recognized. + public float MinDistance + { + get { return minDistance; } + set { minDistance = value; } + } + + /// + /// Gets or sets minimum distance in cm pointers must move to start recognizing this gesture. + /// + /// Minimum distance in cm pointers must move to start recognizing this gesture. + /// Prevents misinterpreting taps. + public float MovementThreshold + { + get { return movementThreshold; } + set { movementThreshold = value; } + } + + /// + /// Gets or sets direction to look for. + /// + /// Direction of movement. + public GestureDirection Direction + { + get { return direction; } + set { direction = value; } + } + + /// + /// Gets flick direction (not normalized) when gesture is recognized. + /// + public Vector2 ScreenFlickVector { get; private set; } + + /// + /// Gets flick time in seconds pointers moved by . + /// + public float ScreenFlickTime { get; private set; } + + #endregion + + #region Private variables + + [SerializeField] + private float flickTime = .1f; + + [SerializeField] + private float minDistance = 1f; + + [SerializeField] + private float movementThreshold = .5f; + + [SerializeField] + private GestureDirection direction = GestureDirection.Any; + + private bool moving = false; + private Vector2 movementBuffer = Vector2.zero; + private bool isActive = false; + private TimedSequence deltaSequence = new TimedSequence(); + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Unity methods + + /// + protected override void Awake() + { + base.Awake(); + +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Flick Gesture"); +#endif + } + + /// + protected void LateUpdate() + { + if (!isActive) return; + + deltaSequence.Add(ScreenPosition - PreviousScreenPosition); + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersPressed(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersPressed(pointers); + + if (pointersNumState == PointersNumState.PassedMaxThreshold || + pointersNumState == PointersNumState.PassedMinMaxThreshold) + { + if (State == GestureState.Possible) setState(GestureState.Failed); + } + else if (pointersNumState == PointersNumState.PassedMinThreshold) + { + // Starting the gesture when it is already active? => we released one finger and pressed again while moving + if (isActive) setState(GestureState.Failed); + else isActive = true; + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersUpdated(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersUpdated(pointers); + + if (isActive || !moving) + { + movementBuffer += ScreenPosition - PreviousScreenPosition; + var dpiMovementThreshold = MovementThreshold * touchManager.DotsPerCentimeter; + if (movementBuffer.sqrMagnitude >= dpiMovementThreshold * dpiMovementThreshold) + { + moving = true; + } + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersReleased(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersReleased(pointers); + + if (NumPointers == 0) + { + if (!isActive || !moving) + { + setState(GestureState.Failed); +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + return; + } + + deltaSequence.Add(ScreenPosition - PreviousScreenPosition); + + float lastTime; + var deltas = deltaSequence.FindElementsLaterThan(Time.unscaledTime - FlickTime, out lastTime); + var totalMovement = Vector2.zero; + var count = deltas.Count; + for (var i = 0; i < count; i++) totalMovement += deltas[i]; + + switch (Direction) + { + case GestureDirection.Horizontal: + totalMovement.y = 0; + break; + case GestureDirection.Vertical: + totalMovement.x = 0; + break; + } + + if (totalMovement.magnitude < MinDistance * touchManager.DotsPerCentimeter) + { + setState(GestureState.Failed); + } + else + { + ScreenFlickVector = totalMovement; + ScreenFlickTime = Time.unscaledTime - lastTime; + setState(GestureState.Recognized); + } + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void onRecognized() + { + base.onRecognized(); + if (flickedInvoker != null) flickedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + if (UseSendMessage && SendMessageTarget != null) SendMessageTarget.SendMessage(FLICK_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + } + + /// + protected override void reset() + { + base.reset(); + + isActive = false; + moving = false; + movementBuffer = Vector2.zero; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/FlickGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/FlickGesture.cs.meta new file mode 100644 index 000000000..63565ad48 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/FlickGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1ba67d04e07d3491989322c6414feaf3 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/Gesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/Gesture.cs new file mode 100644 index 000000000..59b285373 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/Gesture.cs @@ -0,0 +1,1113 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using TouchScript.Hit; +using TouchScript.Utils; +using TouchScript.Utils.Attributes; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.Events; +using TouchScript.Core; + +namespace TouchScript.Gestures +{ + /// + /// Base class for all gestures. + /// + public abstract class Gesture : DebuggableMonoBehaviour + { + #region Constants + + /// + /// Unity event for gesture state changes. + /// + [Serializable] + public class GestureEvent : UnityEvent {} + + /// + /// Message sent when gesture changes state if SendMessage is used. + /// + public const string STATE_CHANGE_MESSAGE = "OnGestureStateChange"; + + /// + /// Message sent when gesture is cancelled if SendMessage is used. + /// + public const string CANCEL_MESSAGE = "OnGestureCancel"; + + /// + /// Possible states of a gesture. + /// + public enum GestureState + { + /// + /// Gesture is idle. + /// + Idle, + + /// + /// Gesture started looking for the patern. + /// + Possible, + + /// + /// Continuous gesture has just begun. + /// + Began, + + /// + /// Started continuous gesture is updated. + /// + Changed, + + /// + /// Continuous gesture is ended. + /// + Ended, + + /// + /// Gesture is cancelled. + /// + Cancelled, + + /// + /// Gesture is failed by itself or by another recognized gesture. + /// + Failed, + + /// + /// Gesture is recognized. + /// + Recognized = Ended + } + + /// + /// Current state of the number of pointers. + /// + protected enum PointersNumState + { + /// + /// The number of pointers is between min and max thresholds. + /// + InRange, + + /// + /// The number of pointers is less than min threshold. + /// + TooFew, + + /// + /// The number of pointers is greater than max threshold. + /// + TooMany, + + /// + /// The number of pointers passed min threshold this frame and is now in range. + /// + PassedMinThreshold, + + /// + /// The number of pointers passed max threshold this frame and is now in range. + /// + PassedMaxThreshold, + + /// + /// The number of pointers passed both min and max thresholds. + /// + PassedMinMaxThreshold + } + + #endregion + + #region Events + + /// + /// Occurs when gesture changes state. + /// + public event EventHandler StateChanged + { + add { stateChangedInvoker += value; } + remove { stateChangedInvoker -= value; } + } + + /// + /// Occurs when gesture is cancelled. + /// + public event EventHandler Cancelled + { + add { cancelledInvoker += value; } + remove { cancelledInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler stateChangedInvoker; + private EventHandler cancelledInvoker; + + /// + /// Occurs when gesture changes state. + /// + public GestureEvent OnStateChange = new GestureEvent(); + + #endregion + + #region Public properties + + /// + /// Gets or sets minimum number of pointers this gesture reacts to. + /// The gesture will not be recognized if it has less than pointers. + /// + /// Minimum number of pointers. + public int MinPointers + { + get { return minPointers; } + set + { + if (value < 0) return; + minPointers = value; + } + } + + /// + /// Gets or sets maximum number of pointers this gesture reacts to. + /// The gesture will not be recognized if it has more than pointers. + /// + /// Maximum number of pointers. + public int MaxPointers + { + get { return maxPointers; } + set + { + if (value < 0) return; + maxPointers = value; + } + } + + /// + /// Gets or sets another gesture which must fail before this gesture can be recognized. + /// + /// The gesture which must fail before this gesture can be recognized. + public Gesture RequireGestureToFail + { + get { return requireGestureToFail; } + set + { + if (!Application.isPlaying) return; + + if (requireGestureToFail != null) + requireGestureToFail.StateChanged -= requiredToFailGestureStateChangedHandler; + requireGestureToFail = value; + if (requireGestureToFail != null) + requireGestureToFail.StateChanged += requiredToFailGestureStateChangedHandler; + } + } + + /// + /// Gets or sets whether gesture should use Unity's SendMessage in addition to C# events. + /// + /// true if gesture uses SendMessage; otherwise, false. + public bool UseSendMessage + { + get { return useSendMessage; } + set { useSendMessage = value; } + } + + /// + /// Gets or sets a value indicating whether state change events are broadcasted if is true. + /// + /// true if state change events should be broadcaster; otherwise, false. + public bool SendStateChangeMessages + { + get { return sendStateChangeMessages; } + set { sendStateChangeMessages = value; } + } + + /// + /// Gets or sets the target of Unity messages sent from this gesture. + /// + /// The target of Unity messages. + public GameObject SendMessageTarget + { + get { return sendMessageTarget; } + set + { + sendMessageTarget = value; + if (value == null) sendMessageTarget = gameObject; + } + } + + /// + /// Gets or sets whether gesture should use Unity Events in addition to C# events. + /// + /// true if gesture uses Unity Events; otherwise, false. + public bool UseUnityEvents + { + get { return useUnityEvents; } + set { useUnityEvents = value; } + } + + /// + /// Gets or sets a value indicating whether state change events are broadcasted if is true. + /// + /// true if state change events should be broadcaster; otherwise, false. + public bool SendStateChangeEvents + { + get { return sendStateChangeEvents; } + set { sendStateChangeEvents = value; } + } + + /// + /// Gets current gesture state. + /// + /// Current state of the gesture. + public GestureState State + { + get { return state; } + private set + { + PreviousState = state; + state = value; + + switch (value) + { + case GestureState.Idle: + onIdle(); + break; + case GestureState.Possible: + onPossible(); + break; + case GestureState.Began: + retainPointers(); + onBegan(); + break; + case GestureState.Changed: + onChanged(); + break; + case GestureState.Recognized: + // Only retain/release pointers for continuos gestures + if (PreviousState == GestureState.Changed || PreviousState == GestureState.Began) + releasePointers(true); + onRecognized(); + break; + case GestureState.Failed: + onFailed(); + break; + case GestureState.Cancelled: + if (PreviousState == GestureState.Changed || PreviousState == GestureState.Began) + releasePointers(false); + onCancelled(); + break; + } + + if (stateChangedInvoker != null) + stateChangedInvoker.InvokeHandleExceptions(this, GestureStateChangeEventArgs.GetCachedEventArgs(state, PreviousState)); + if (useSendMessage && sendStateChangeMessages && SendMessageTarget != null) + sendMessageTarget.SendMessage(STATE_CHANGE_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + if (useUnityEvents && sendStateChangeEvents) OnStateChange.Invoke(this); + } + } + + /// + /// Gets previous gesture state. + /// + /// Previous state of the gesture. + public GestureState PreviousState { get; private set; } + + /// + /// Gets current screen position. + /// + /// Gesture's position in screen coordinates. + public virtual Vector2 ScreenPosition + { + get + { + if (NumPointers == 0) + { + if (!TouchManager.IsInvalidPosition(cachedScreenPosition)) return cachedScreenPosition; + return TouchManager.INVALID_POSITION; + } + return activePointers[0].Position; + } + } + + /// + /// Gets previous screen position. + /// + /// Gesture's previous position in screen coordinates. + public virtual Vector2 PreviousScreenPosition + { + get + { + if (NumPointers == 0) + { + if (!TouchManager.IsInvalidPosition(cachedPreviousScreenPosition)) + return cachedPreviousScreenPosition; + return TouchManager.INVALID_POSITION; + } + return activePointers[0].PreviousPosition; + } + } + + /// + /// Gets normalized screen position. + /// + /// Gesture's position in normalized screen coordinates. + public Vector2 NormalizedScreenPosition + { + get + { + var position = ScreenPosition; + if (TouchManager.IsInvalidPosition(position)) return TouchManager.INVALID_POSITION; + return new Vector2(position.x / Screen.width, position.y / Screen.height); + } + } + + /// + /// Gets previous screen position. + /// + /// Gesture's previous position in normalized screen coordinates. + public Vector2 PreviousNormalizedScreenPosition + { + get + { + var position = PreviousScreenPosition; + if (TouchManager.IsInvalidPosition(position)) return TouchManager.INVALID_POSITION; + return new Vector2(position.x / Screen.width, position.y / Screen.height); + } + } + + /// + /// Gets list of gesture's active pointers. + /// + /// The list of pointers owned by this gesture. + public IList ActivePointers + { + get + { + if (readonlyActivePointers == null) + readonlyActivePointers = new ReadOnlyCollection(activePointers); + return readonlyActivePointers; + } + } + + /// + /// Gets the number of active pointerss. + /// + /// The number of pointers owned by this gesture. + public int NumPointers + { + get { return numPointers; } + } + + /// + /// Gets or sets an object implementing to be asked for gesture specific actions. + /// + /// The delegate. + public IGestureDelegate Delegate { get; set; } + + #endregion + + #region Private variables + + /// + /// Reference to global GestureManager. + /// + protected IGestureManager gestureManager + { + // implemented as a property because it returns IGestureManager but we need to reference GestureManagerInstance to access internal methods + get { return gestureManagerInstance; } + } + + /// + /// Reference to global TouchManager. + /// + protected TouchManagerInstance touchManager { get; private set; } + + /// + /// The state of min/max number of pointers. + /// + protected PointersNumState pointersNumState { get; private set; } + + /// + /// Pointers the gesture currently owns and works with. + /// + protected List activePointers = new List(10); + + /// + /// Cached transform of the parent object. + /// + protected Transform cachedTransform; + + /// + [SerializeField] + [HideInInspector] + protected bool basicEditor = true; + + [SerializeField] + [HideInInspector] + private bool generalProps; // Used in the custom inspector + + [SerializeField] + [HideInInspector] + private bool limitsProps; // Used in the custom inspector + + [SerializeField] + [HideInInspector] + private bool advancedProps; // Used in the custom inspector + + [SerializeField] + private int minPointers = 0; + + [SerializeField] + private int maxPointers = 0; + + [SerializeField] + [ToggleLeft] + private bool useSendMessage = false; + + [SerializeField] + [ToggleLeft] + private bool sendStateChangeMessages = false; + + [SerializeField] + private GameObject sendMessageTarget; + + [SerializeField] + private bool useUnityEvents = false; + + [SerializeField] + [ToggleLeft] + private bool sendStateChangeEvents = false; + + [SerializeField] + [NullToggle] + private Gesture requireGestureToFail; + + [SerializeField] + // Serialized list of gestures for Unity IDE. + private List friendlyGestures = new List(); + + private int numPointers; + private ReadOnlyCollection readonlyActivePointers; + private GestureManagerInstance gestureManagerInstance; + private GestureState delayedStateChange = GestureState.Idle; + private bool requiredGestureFailed = false; + private FakePointer fakePointer = new FakePointer(); + private GestureState state = GestureState.Idle; + + /// + /// Cached screen position. + /// Used to keep tap's position which can't be calculated from pointers when the gesture is recognized since all pointers are gone. + /// + protected Vector2 cachedScreenPosition; + + /// + /// Cached previous screen position. + /// Used to keep tap's position which can't be calculated from pointers when the gesture is recognized since all pointers are gone. + /// + protected Vector2 cachedPreviousScreenPosition; + + #endregion + + #region Public methods + + /// + /// Adds a friendly gesture. + /// + /// The gesture. + public void AddFriendlyGesture(Gesture gesture) + { + if (gesture == null || gesture == this) return; + + registerFriendlyGesture(gesture); + gesture.registerFriendlyGesture(this); + } + + /// + /// Checks if a gesture is friendly with this gesture. + /// + /// A gesture to check. + /// true if gestures are friendly; false otherwise. + public bool IsFriendly(Gesture gesture) + { + return friendlyGestures.Contains(gesture); + } + + /// + /// Determines whether gesture controls a pointer. + /// + /// The pointer. + /// true if gesture controls the pointer point; false otherwise. + public bool HasPointer(Pointer pointer) + { + return activePointers.Contains(pointer); + } + + /// + /// Determines whether this instance can prevent the specified gesture. + /// + /// The gesture. + /// true if this instance can prevent the specified gesture; false otherwise. + public virtual bool CanPreventGesture(Gesture gesture) + { + if (Delegate == null) + { + if (gesture.CanBePreventedByGesture(this)) return !IsFriendly(gesture); + return false; + } + return !Delegate.ShouldRecognizeSimultaneously(this, gesture); + } + + /// + /// Determines whether this instance can be prevented by specified gesture. + /// + /// The gesture. + /// true if this instance can be prevented by specified gesture; false otherwise. + public virtual bool CanBePreventedByGesture(Gesture gesture) + { + if (Delegate == null) return !IsFriendly(gesture); + return !Delegate.ShouldRecognizeSimultaneously(this, gesture); + } + + /// + /// Specifies if gesture can receive this specific pointer point. + /// + /// The pointer. + /// true if this pointer should be received by the gesture; false otherwise. + public virtual bool ShouldReceivePointer(Pointer pointer) + { + if (Delegate == null) return true; + return Delegate.ShouldReceivePointer(this, pointer); + } + + /// + /// Specifies if gesture can begin or recognize. + /// + /// true if gesture should begin; false otherwise. + public virtual bool ShouldBegin() + { + if (Delegate == null) return true; + return Delegate.ShouldBegin(this); + } + + /// + /// Cancels this gesture. + /// + /// if set to true also implicitly cancels all pointers owned by the gesture. + /// if set to true redispatched all canceled pointers. + public void Cancel(bool cancelPointers, bool returnPointers) + { + switch (state) + { + case GestureState.Cancelled: + case GestureState.Failed: + return; + } + + setState(GestureState.Cancelled); + + if (!cancelPointers) return; + for (var i = 0; i < numPointers; i++) touchManager.CancelPointer(activePointers[i].Id, returnPointers); + } + + /// + /// Cancels this gesture. + /// + public void Cancel() + { + Cancel(false, false); + } + + /// + /// Returns for gesture's , i.e. what is right beneath it. + /// + public virtual HitData GetScreenPositionHitData() + { + HitData hit; + fakePointer.Position = ScreenPosition; + LayerManager.Instance.GetHitTarget(fakePointer, out hit); + return hit; + } + + #endregion + + #region Unity methods + + /// + protected virtual void Awake() + { + cachedTransform = transform; + + var count = friendlyGestures.Count; + for (var i = 0; i < count; i++) + { + AddFriendlyGesture(friendlyGestures[i]); + } + RequireGestureToFail = requireGestureToFail; + } + + /// + /// Unity Start handler. + /// + protected virtual void OnEnable() + { + // TouchManager might be different in another scene + touchManager = TouchManager.Instance as TouchManagerInstance; + gestureManagerInstance = GestureManager.Instance as GestureManagerInstance; + + if (touchManager == null) + Debug.LogError("No TouchManager found! Please add an instance of TouchManager to the scene!"); + if (gestureManagerInstance == null) + Debug.LogError("No GesturehManager found! Please add an instance of GesturehManager to the scene!"); + + if (sendMessageTarget == null) sendMessageTarget = gameObject; + INTERNAL_Reset(); + } + + /// + /// Unity OnDisable handler. + /// + protected virtual void OnDisable() + { + setState(GestureState.Cancelled); + } + + /// + /// Unity OnDestroy handler. + /// + protected virtual void OnDestroy() + { + var copy = new List(friendlyGestures); + var count = copy.Count; + for (var i = 0; i < count; i++) + { + INTERNAL_RemoveFriendlyGesture(copy[i]); + } + RequireGestureToFail = null; + } + + #endregion + + #region Internal functions + + internal void INTERNAL_SetState(GestureState value) + { + setState(value); + } + + internal void INTERNAL_Reset() + { + activePointers.Clear(); + numPointers = 0; + delayedStateChange = GestureState.Idle; + pointersNumState = PointersNumState.TooFew; + requiredGestureFailed = false; + reset(); + } + + internal void INTERNAL_PointersPressed(IList pointers) + { + var count = pointers.Count; + var total = numPointers + count; + pointersNumState = PointersNumState.InRange; + + if (minPointers <= 0) + { + // MinPointers is not set and we got our first pointers + if (numPointers == 0) pointersNumState = PointersNumState.PassedMinThreshold; + } + else + { + if (numPointers < minPointers) + { + // had < MinPointers, got >= MinPointers + if (total >= minPointers) pointersNumState = PointersNumState.PassedMinThreshold; + else pointersNumState = PointersNumState.TooFew; + } + } + + if (maxPointers > 0) + { + if (numPointers <= maxPointers) + { + if (total > maxPointers) + { + // this event we crossed both MinPointers and MaxPointers + if (pointersNumState == PointersNumState.PassedMinThreshold) pointersNumState = PointersNumState.PassedMinMaxThreshold; + // this event we crossed MaxPointers + else pointersNumState = PointersNumState.PassedMaxThreshold; + } + } + // last event we already were over MaxPointers + else pointersNumState = PointersNumState.TooMany; + } + + if (state == GestureState.Began || state == GestureState.Changed) + { + for (var i = 0; i < count; i++) pointers[i].INTERNAL_Retain(); + } + + activePointers.AddRange(pointers); + numPointers = total; + pointersPressed(pointers); + } + + internal void INTERNAL_PointersUpdated(IList pointers) + { + pointersNumState = PointersNumState.InRange; + if (minPointers > 0 && numPointers < minPointers) pointersNumState = PointersNumState.TooFew; + if (maxPointers > 0 && pointersNumState == PointersNumState.InRange && numPointers > maxPointers) pointersNumState = PointersNumState.TooMany; + pointersUpdated(pointers); + } + + internal void INTERNAL_PointersReleased(IList pointers) + { + var count = pointers.Count; + var total = numPointers - count; + pointersNumState = PointersNumState.InRange; + + if (minPointers <= 0) + { + // have no pointers + if (total == 0) pointersNumState = PointersNumState.PassedMinThreshold; + } + else + { + if (numPointers >= minPointers) + { + // had >= MinPointers, got < MinPointers + if (total < minPointers) pointersNumState = PointersNumState.PassedMinThreshold; + } + // last event we already were under MinPointers + else pointersNumState = PointersNumState.TooFew; + } + + if (maxPointers > 0) + { + if (numPointers > maxPointers) + { + if (total <= maxPointers) + { + // this event we crossed both MinPointers and MaxPointers + if (pointersNumState == PointersNumState.PassedMinThreshold) pointersNumState = PointersNumState.PassedMinMaxThreshold; + // this event we crossed MaxPointers + else pointersNumState = PointersNumState.PassedMaxThreshold; + } + // last event we already were over MaxPointers + else pointersNumState = PointersNumState.TooMany; + } + } + + for (var i = 0; i < count; i++) activePointers.Remove(pointers[i]); + numPointers = total; + + if (NumPointers == 0) + { + var lastPoint = pointers[count - 1]; + if (shouldCachePointerPosition(lastPoint)) + { + cachedScreenPosition = lastPoint.Position; + cachedPreviousScreenPosition = lastPoint.PreviousPosition; + } + else + { + cachedScreenPosition = TouchManager.INVALID_POSITION; + cachedPreviousScreenPosition = TouchManager.INVALID_POSITION; + } + } + + pointersReleased(pointers); + } + + internal void INTERNAL_PointersCancelled(IList pointers) + { + var count = pointers.Count; + var total = numPointers - count; + pointersNumState = PointersNumState.InRange; + + if (minPointers <= 0) + { + // have no pointers + if (total == 0) pointersNumState = PointersNumState.PassedMinThreshold; + } + else + { + if (numPointers >= minPointers) + { + // had >= MinPointers, got < MinPointers + if (total < minPointers) pointersNumState = PointersNumState.PassedMinThreshold; + } + // last event we already were under MinPointers + else pointersNumState = PointersNumState.TooFew; + } + + if (maxPointers > 0) + { + if (numPointers > maxPointers) + { + if (total <= maxPointers) + { + // this event we crossed both MinPointers and MaxPointers + if (pointersNumState == PointersNumState.PassedMinThreshold) pointersNumState = PointersNumState.PassedMinMaxThreshold; + // this event we crossed MaxPointers + else pointersNumState = PointersNumState.PassedMaxThreshold; + } + // last event we already were over MaxPointers + else pointersNumState = PointersNumState.TooMany; + } + } + + for (var i = 0; i < count; i++) activePointers.Remove(pointers[i]); + numPointers = total; + pointersCancelled(pointers); + } + + internal virtual void INTERNAL_RemoveFriendlyGesture(Gesture gesture) + { + if (gesture == null || gesture == this) return; + + unregisterFriendlyGesture(gesture); + gesture.unregisterFriendlyGesture(this); + } + + #endregion + + #region Protected methods + + /// + /// Should the gesture cache this pointers to use it later in calculation of . + /// + /// Pointer to cache. + /// true if pointers should be cached; false otherwise. + protected virtual bool shouldCachePointerPosition(Pointer value) + { + return true; + } + + /// + /// Tries to change gesture state. + /// + /// New state. + /// true if state was changed; otherwise, false. + protected bool setState(GestureState value) + { + if (gestureManagerInstance == null) return false; + if (requireGestureToFail != null) + { + switch (value) + { + case GestureState.Recognized: + case GestureState.Began: + if (!requiredGestureFailed) + { + delayedStateChange = value; + return false; + } + break; + case GestureState.Idle: + case GestureState.Possible: + case GestureState.Failed: + case GestureState.Cancelled: + delayedStateChange = GestureState.Idle; + break; + } + } + + var newState = gestureManagerInstance.INTERNAL_GestureChangeState(this, value); + State = newState; + + return value == newState; + } + + #endregion + + #region Callbacks + + /// + /// Called when new pointers appear. + /// + /// The pointers. + protected virtual void pointersPressed(IList pointers) {} + + /// + /// Called for moved pointers. + /// + /// The pointers. + protected virtual void pointersUpdated(IList pointers) {} + + /// + /// Called if pointers are removed. + /// + /// The pointers. + protected virtual void pointersReleased(IList pointers) {} + + /// + /// Called when pointers are cancelled. + /// + /// The pointers. + protected virtual void pointersCancelled(IList pointers) + { + if (pointersNumState == PointersNumState.PassedMinThreshold) + { + // moved below the threshold + switch (state) + { + case GestureState.Began: + case GestureState.Changed: + // cancel started gestures + setState(GestureState.Cancelled); + break; + } + } + } + + /// + /// Called to reset gesture state after it fails or recognizes. + /// + protected virtual void reset() + { + cachedScreenPosition = TouchManager.INVALID_POSITION; + cachedPreviousScreenPosition = TouchManager.INVALID_POSITION; + } + + /// + /// Called when state is changed to Idle. + /// + protected virtual void onIdle() {} + + /// + /// Called when state is changed to Possible. + /// + protected virtual void onPossible() {} + + /// + /// Called when state is changed to Began. + /// + protected virtual void onBegan() {} + + /// + /// Called when state is changed to Changed. + /// + protected virtual void onChanged() {} + + /// + /// Called when state is changed to Recognized. + /// + protected virtual void onRecognized() {} + + /// + /// Called when state is changed to Failed. + /// + protected virtual void onFailed() {} + + /// + /// Called when state is changed to Cancelled. + /// + protected virtual void onCancelled() + { + if (cancelledInvoker != null) cancelledInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + if (useSendMessage && SendMessageTarget != null) + sendMessageTarget.SendMessage(CANCEL_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + } + + #endregion + + #region Private functions + + private void retainPointers() + { + var total = NumPointers; + for (var i = 0; i < total; i++) activePointers[i].INTERNAL_Retain(); + } + + private void releasePointers(bool cancel) + { + var total = NumPointers; + for (var i = 0; i < total; i++) + { + var pointer = activePointers[i]; + if (pointer.INTERNAL_Release() == 0 && cancel) touchManager.CancelPointer(pointer.Id, true); + } + } + + private void registerFriendlyGesture(Gesture gesture) + { + if (gesture == null || gesture == this) return; + + if (!friendlyGestures.Contains(gesture)) friendlyGestures.Add(gesture); + } + + private void unregisterFriendlyGesture(Gesture gesture) + { + if (gesture == null || gesture == this) return; + + friendlyGestures.Remove(gesture); + } + + #endregion + + #region Event handlers + + private void requiredToFailGestureStateChangedHandler(object sender, GestureStateChangeEventArgs e) + { + if ((sender as Gesture) != requireGestureToFail) return; + switch (e.State) + { + case GestureState.Failed: + requiredGestureFailed = true; + if (delayedStateChange != GestureState.Idle) + { + setState(delayedStateChange); + } + break; + case GestureState.Began: + case GestureState.Recognized: + case GestureState.Cancelled: + if (state != GestureState.Failed) setState(GestureState.Failed); + break; + } + } + + #endregion + } + + /// + /// Event arguments for Gesture state change events. + /// + public class GestureStateChangeEventArgs : EventArgs + { + /// + /// Previous gesture state. + /// + public Gesture.GestureState PreviousState { get; private set; } + + /// + /// Current gesture state. + /// + public Gesture.GestureState State { get; private set; } + + private static GestureStateChangeEventArgs instance; + + /// + /// Initializes a new instance of the class. + /// + public GestureStateChangeEventArgs() {} + + /// + /// Returns cached instance of EventArgs. + /// This cached EventArgs is reused throughout the library not to alocate new ones on every call. + /// + /// Current gesture state. + /// Previous gesture state. + /// Cached EventArgs object. + public static GestureStateChangeEventArgs GetCachedEventArgs(Gesture.GestureState state, Gesture.GestureState previousState) + { + if (instance == null) instance = new GestureStateChangeEventArgs(); + instance.State = state; + instance.PreviousState = previousState; + return instance; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/Gesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/Gesture.cs.meta new file mode 100644 index 000000000..c580d75cb --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/Gesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5b3684fecdc114e83972296c74ab9d72 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/IGestureDelegate.cs b/Source/Assets/TouchScript/Scripts/Gestures/IGestureDelegate.cs new file mode 100644 index 000000000..319b67ff0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/IGestureDelegate.cs @@ -0,0 +1,43 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures; +using TouchScript.Pointers; + +namespace TouchScript +{ + /// + /// A delegate which can be set to and control what this gesture can or can not do. + /// This is a way to control very precisely how affected gestures work without inheriting from them and overriding their behavior. + /// + /// + public interface IGestureDelegate + { + /// + /// Returns whether a gesture should receive a pointer. + /// + /// The gesture. + /// The pointer. + /// true if it should; false otherwise. + /// Can be used to restrict what pointers a gesture can receive and ignore the ones it shouldn't. + bool ShouldReceivePointer(Gesture gesture, Pointer pointer); + + /// + /// Returns whether a gesture can now begin. + /// + /// The gesture. + /// true if it can; false otherwise. + /// Can be used to stop a ready to begin gesture. + bool ShouldBegin(Gesture gesture); + + /// + /// Returns whether two gestures can be recognized simultaneously or not. + /// + /// The first gesture. + /// The second gesture. + /// true if they should work together; false otherwise. + /// Can be used to restrict simultaneous gesture recognition. + bool ShouldRecognizeSimultaneously(Gesture first, Gesture second); + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/IGestureDelegate.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/IGestureDelegate.cs.meta new file mode 100644 index 000000000..613b63fcb --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/IGestureDelegate.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1c01a98d4f23442519f09fd70e86d158 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/LongPressGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/LongPressGesture.cs new file mode 100644 index 000000000..ff6bbb047 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/LongPressGesture.cs @@ -0,0 +1,234 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Utils.Attributes; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.Profiling; + +namespace TouchScript.Gestures +{ + /// + /// Gesture which recognizes a point cluster which didn't move for specified time since it appeared. + /// + [AddComponentMenu("TouchScript/Gestures/Long Press Gesture")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_LongPressGesture.htm")] + public class LongPressGesture : Gesture + { + #region Constants + + /// + /// Message name when gesture is recognized + /// + public const string LONG_PRESS_MESSAGE = "OnLongPress"; + + #endregion + + #region Events + + /// + /// Occurs when gesture is recognized. + /// + public event EventHandler LongPressed + { + add { longPressedInvoker += value; } + remove { longPressedInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler longPressedInvoker; + + /// + /// Unity event, occurs when gesture is recognized. + /// + public GestureEvent OnLongPress = new GestureEvent(); + + #endregion + + #region Public properties + + /// + /// Gets or sets total time in seconds required to hold pointers still. + /// + /// Time in seconds. + public float TimeToPress + { + get { return timeToPress; } + set { timeToPress = value; } + } + + /// + /// Gets or sets maximum distance in cm pointers can move before gesture fails. + /// + /// Distance in cm. + public float DistanceLimit + { + get { return distanceLimit; } + set + { + distanceLimit = value; + distanceLimitInPixelsSquared = Mathf.Pow(distanceLimit * touchManager.DotsPerCentimeter, 2); + } + } + + #endregion + + #region Private variables + + [SerializeField] + private float timeToPress = 1; + + [SerializeField] + [NullToggle(NullFloatValue = float.PositiveInfinity)] + private float distanceLimit = float.PositiveInfinity; + + private float distanceLimitInPixelsSquared; + + private Vector2 totalMovement; + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Unity methods + + /// + protected override void Awake() + { + base.Awake(); + +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Long Press Gesture"); +#endif + } + + /// + protected override void OnEnable() + { + base.OnEnable(); + + distanceLimitInPixelsSquared = Mathf.Pow(distanceLimit * touchManager.DotsPerCentimeter, 2); + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersPressed(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersPressed(pointers); + + if (pointersNumState == PointersNumState.PassedMaxThreshold || + pointersNumState == PointersNumState.PassedMinMaxThreshold) + { + setState(GestureState.Failed); + } + else if (pointersNumState == PointersNumState.PassedMinThreshold) + { + setState(GestureState.Possible); + StartCoroutine("wait"); + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersUpdated(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersUpdated(pointers); + + if (distanceLimit < float.PositiveInfinity) + { + totalMovement += ScreenPosition - PreviousScreenPosition; + if (totalMovement.sqrMagnitude > distanceLimitInPixelsSquared) setState(GestureState.Failed); + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersReleased(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersReleased(pointers); + + if (pointersNumState == PointersNumState.PassedMinThreshold) + { + setState(GestureState.Failed); + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void onRecognized() + { + base.onRecognized(); + if (longPressedInvoker != null) longPressedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + if (UseSendMessage && SendMessageTarget != null) SendMessageTarget.SendMessage(LONG_PRESS_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + if (UseUnityEvents) OnLongPress.Invoke(this); + } + + /// + protected override void reset() + { + base.reset(); + + totalMovement = Vector2.zero; + StopCoroutine("wait"); + } + + #endregion + + #region Private functions + + private IEnumerator wait() + { + // WaitForSeconds is affected by time scale! + var targetTime = Time.unscaledTime + TimeToPress; + while (targetTime > Time.unscaledTime) yield return null; + + if (State == GestureState.Possible) + { + var data = GetScreenPositionHitData(); + if (data.Target == null || !data.Target.IsChildOf(cachedTransform)) + setState(GestureState.Failed); + else + setState(GestureState.Recognized); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/LongPressGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/LongPressGesture.cs.meta new file mode 100644 index 000000000..7308eb3e0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/LongPressGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 65c8d97aff62a473e888feae3bec54cd +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/MetaGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/MetaGesture.cs new file mode 100644 index 000000000..62192912e --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/MetaGesture.cs @@ -0,0 +1,249 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.Profiling; + +namespace TouchScript.Gestures +{ + /// + /// Converts Pointer events for target object into separate events to be used somewhere else. + /// + [AddComponentMenu("TouchScript/Gestures/Meta Gesture")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_MetaGesture.htm")] + public sealed class MetaGesture : Gesture + { + #region Constants + + /// + /// Message dispatched when a pointer begins. + /// + public const string POINTER_PRESSED_MESSAGE = "OnPointerPressed"; + + /// + /// Message dispatched when a pointer moves. + /// + public const string POINTER_MOVED_MESSAGE = "OnPointerMoved"; + + /// + /// Message dispatched when a pointer ends. + /// + public const string POINTER_RELEASED_MESSAGE = "OnPointerReleased"; + + /// + /// Message dispatched when a pointer is cancelled. + /// + public const string POINTER_CANCELLED_MESSAGE = "OnPointerCancelled"; + + #endregion + + #region Events + + /// + /// Occurs when a pointer is added. + /// + public event EventHandler PointerPressed + { + add { pointerPressedInvoker += value; } + remove { pointerPressedInvoker -= value; } + } + + /// + /// Occurs when a pointer is updated. + /// + public event EventHandler PointerUpdated + { + add { pointerUpdatedInvoker += value; } + remove { pointerUpdatedInvoker -= value; } + } + + /// + /// Occurs when a pointer is removed. + /// + public event EventHandler PointerReleased + { + add { pointerReleasedInvoker += value; } + remove { pointerReleasedInvoker -= value; } + } + + /// + /// Occurs when a pointer is cancelled. + /// + public event EventHandler PointerCancelled + { + add { pointerCancelledInvoker += value; } + remove { pointerCancelledInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler pointerPressedInvoker, + pointerUpdatedInvoker, + pointerReleasedInvoker, + pointerCancelledInvoker; + + #endregion + + #region Private variables + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Unity + + /// + protected override void Awake() + { + base.Awake(); + +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Meta Gesture"); +#endif + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersPressed(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersPressed(pointers); + + if (State == GestureState.Idle) setState(GestureState.Began); + + var length = pointers.Count; + if (pointerPressedInvoker != null) + { + for (var i = 0; i < length; i++) + pointerPressedInvoker.InvokeHandleExceptions(this, new MetaGestureEventArgs(pointers[i])); + } + if (UseSendMessage && SendMessageTarget != null) + { + for (var i = 0; i < length; i++) SendMessageTarget.SendMessage(POINTER_PRESSED_MESSAGE, pointers[i], SendMessageOptions.DontRequireReceiver); + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersUpdated(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersUpdated(pointers); + + if (State == GestureState.Began || State == GestureState.Changed) setState(GestureState.Changed); + + var length = pointers.Count; + if (pointerUpdatedInvoker != null) + { + for (var i = 0; i < length; i++) + pointerUpdatedInvoker.InvokeHandleExceptions(this, new MetaGestureEventArgs(pointers[i])); + } + if (UseSendMessage && SendMessageTarget != null) + { + for (var i = 0; i < length; i++) SendMessageTarget.SendMessage(POINTER_MOVED_MESSAGE, pointers[i], SendMessageOptions.DontRequireReceiver); + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersReleased(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersReleased(pointers); + + if ((State == GestureState.Began || State == GestureState.Changed) && NumPointers == 0) setState(GestureState.Ended); + + var length = pointers.Count; + if (pointerReleasedInvoker != null) + { + for (var i = 0; i < length; i++) + pointerReleasedInvoker.InvokeHandleExceptions(this, new MetaGestureEventArgs(pointers[i])); + } + if (UseSendMessage && SendMessageTarget != null) + { + for (var i = 0; i < length; i++) SendMessageTarget.SendMessage(POINTER_RELEASED_MESSAGE, pointers[i], SendMessageOptions.DontRequireReceiver); + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersCancelled(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersCancelled(pointers); + + var length = pointers.Count; + if (pointerCancelledInvoker != null) + { + for (var i = 0; i < length; i++) + pointerCancelledInvoker.InvokeHandleExceptions(this, new MetaGestureEventArgs(pointers[i])); + } + if (UseSendMessage && SendMessageTarget != null) + { + for (var i = 0; i < length; i++) SendMessageTarget.SendMessage(POINTER_CANCELLED_MESSAGE, pointers[i], SendMessageOptions.DontRequireReceiver); + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + #endregion + } + + /// + /// EventArgs for MetaGesture events. + /// + public class MetaGestureEventArgs : EventArgs + { + /// + /// Current pointer. + /// + public Pointer Pointer { get; private set; } + + /// + /// Initializes a new instance of the class. + /// + /// Pointer the event is for. + public MetaGestureEventArgs(Pointer pointer) + { + Pointer = pointer; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/MetaGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/MetaGesture.cs.meta new file mode 100644 index 000000000..99c5bd78a --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/MetaGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3fd90a8856e1a49eba25728d5aaac9f2 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/PressGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/PressGesture.cs new file mode 100644 index 000000000..35ef5f821 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/PressGesture.cs @@ -0,0 +1,173 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Utils.Attributes; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.Profiling; + +namespace TouchScript.Gestures +{ + /// + /// Recognizes when an object is touched. Works with any gesture unless a Delegate is set. + /// + /// + /// PressGesture fires immediately and would ultimately kill every other non-friendly gesture. So one would have to manually make it friendly with everything in a general use-case. That's why it's made friendly with everyone by default. + /// But there are cases when one would like to determine if parent container was pressed or its child. In current implementation both PressGestures will fire. + /// One approach would be to somehow make parent's PressGesture not friendly with child's one. But looking at how gesture recognition works we can see that this won't work. Since we would like child's gesture to fail parent's gesture. When child's PressGesture is recognized the system asks it if it can prevent parent's gesture, and it obviously can't because it's friendly with everything. And it doesn't matter that parent's gesture can be prevented by child's one... because child's one can't prevent parent's gesture and this is asked first. + /// This is basically what is for. It makes parent's PressGesture only listen for TouchPoints which lend directly on it. + /// + [AddComponentMenu("TouchScript/Gestures/Press Gesture")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_PressGesture.htm")] + public class PressGesture : Gesture + { + #region Constants + + /// + /// Message name when gesture is recognized + /// + public const string PRESS_MESSAGE = "OnPress"; + + #endregion + + #region Events + + /// + /// Occurs when gesture is recognized. + /// + public event EventHandler Pressed + { + add { pressedInvoker += value; } + remove { pressedInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler pressedInvoker; + + /// + /// Unity event, occurs when gesture is recognized. + /// + public GestureEvent OnPress = new GestureEvent(); + + #endregion + + #region Public properties + + /// + /// Gets or sets a value indicating whether actions coming from children should be ingored. + /// + /// true if actions from children should be ignored; otherwise, false. + public bool IgnoreChildren + { + get { return ignoreChildren; } + set { ignoreChildren = value; } + } + + #endregion + + #region Private variables + + [SerializeField] + [ToggleLeft] + private bool ignoreChildren = false; + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Unity + + /// + protected override void Awake() + { + base.Awake(); + +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Press Gesture"); +#endif + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Gesture callbacks + + /// + public override bool ShouldReceivePointer(Pointer pointer) + { + if (!IgnoreChildren) return base.ShouldReceivePointer(pointer); + if (!base.ShouldReceivePointer(pointer)) return false; + + if (pointer.GetPressData().Target != cachedTransform) return false; + return true; + } + + /// + public override bool CanPreventGesture(Gesture gesture) + { + if (Delegate == null) return false; + return !Delegate.ShouldRecognizeSimultaneously(this, gesture); + } + + /// + public override bool CanBePreventedByGesture(Gesture gesture) + { + if (Delegate == null) return false; + return !Delegate.ShouldRecognizeSimultaneously(this, gesture); + } + + /// + protected override void pointersPressed(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersPressed(pointers); + + if (pointersNumState == PointersNumState.PassedMinThreshold) + { + setState(GestureState.Recognized); +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + return; + } + if (pointersNumState == PointersNumState.PassedMinMaxThreshold) + { + setState(GestureState.Failed); +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + return; + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void onRecognized() + { + base.onRecognized(); + if (pressedInvoker != null) pressedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + if (UseSendMessage && SendMessageTarget != null) + SendMessageTarget.SendMessage(PRESS_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + if (UseUnityEvents) OnPress.Invoke(this); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/PressGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/PressGesture.cs.meta new file mode 100644 index 000000000..b0c69b2e0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/PressGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c6be551879cd14d739b0188844ef2c60 +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/ReleaseGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/ReleaseGesture.cs new file mode 100644 index 000000000..1cd64faf0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/ReleaseGesture.cs @@ -0,0 +1,183 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Utils.Attributes; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.Profiling; + +namespace TouchScript.Gestures +{ + /// + /// Recognizes when last pointer is released from target. Works with any gesture unless a Delegate is set. + /// + /// + [AddComponentMenu("TouchScript/Gestures/Release Gesture")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_ReleaseGesture.htm")] + public class ReleaseGesture : Gesture + { + #region Constants + + /// + /// Message name when gesture is recognized + /// + public const string RELEASE_MESSAGE = "OnRelease"; + + #endregion + + #region Events + + /// + /// Occurs when gesture is recognized. + /// + public event EventHandler Released + { + add { releasedInvoker += value; } + remove { releasedInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler releasedInvoker; + + /// + /// Unity event, occurs when gesture is recognized. + /// + public GestureEvent OnRelease = new GestureEvent(); + + #endregion + + #region Public properties + + /// + /// Gets or sets a value indicating whether actions coming from children should be ingored. + /// + /// true if actions from children should be ignored; otherwise, false. + public bool IgnoreChildren + { + get { return ignoreChildren; } + set { ignoreChildren = value; } + } + + #endregion + + #region Private variables + + [SerializeField] + [ToggleLeft] + private bool ignoreChildren = false; + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Unity + + /// + protected override void Awake() + { + base.Awake(); + +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Release Gesture"); +#endif + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Gesture callbacks + + /// + public override bool ShouldReceivePointer(Pointer pointer) + { + if (!IgnoreChildren) return base.ShouldReceivePointer(pointer); + if (!base.ShouldReceivePointer(pointer)) return false; + + if (pointer.GetPressData().Target != cachedTransform) return false; + return true; + } + + /// + public override bool CanPreventGesture(Gesture gesture) + { + if (Delegate == null) return false; + return !Delegate.ShouldRecognizeSimultaneously(this, gesture); + } + + /// + public override bool CanBePreventedByGesture(Gesture gesture) + { + if (Delegate == null) return false; + return !Delegate.ShouldRecognizeSimultaneously(this, gesture); + } + + /// + protected override void pointersPressed(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersPressed(pointers); + + if (pointersNumState == PointersNumState.PassedMinThreshold) + { + if (State == GestureState.Idle) setState(GestureState.Possible); +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + return; + } + if (pointersNumState == PointersNumState.PassedMinMaxThreshold) + { + setState(GestureState.Failed); +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + return; + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersReleased(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersReleased(pointers); + + if (pointersNumState == PointersNumState.PassedMinThreshold) setState(GestureState.Recognized); + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void onRecognized() + { + base.onRecognized(); + if (releasedInvoker != null) releasedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + if (UseSendMessage && SendMessageTarget != null) SendMessageTarget.SendMessage(RELEASE_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + if (UseUnityEvents) OnRelease.Invoke(this); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/ReleaseGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/ReleaseGesture.cs.meta new file mode 100644 index 000000000..1437d8983 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/ReleaseGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 141e75b9b7edb42df80a22a14f03ae4b +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TapGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/TapGesture.cs new file mode 100644 index 000000000..be6ed2749 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TapGesture.cs @@ -0,0 +1,380 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Utils.Attributes; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.Profiling; + +namespace TouchScript.Gestures +{ + /// + /// Recognizes a tap. + /// + [AddComponentMenu("TouchScript/Gestures/Tap Gesture")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_TapGesture.htm")] + public class TapGesture : Gesture + { + #region Constants + + /// + /// Message name when gesture is recognized + /// + public const string TAP_MESSAGE = "OnTap"; + + #endregion + + #region Events + + /// + /// Occurs when gesture is recognized. + /// + public event EventHandler Tapped + { + add { tappedInvoker += value; } + remove { tappedInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler tappedInvoker; + + /// + /// Unity event, occurs when gesture is recognized. + /// + public GestureEvent OnTap = new GestureEvent(); + + #endregion + + #region Public properties + + /// + /// Gets or sets the number of taps required for the gesture to recognize. + /// + /// The number of taps required for this gesture to recognize. 1 — dingle tap, 2 — double tap. + public int NumberOfTapsRequired + { + get { return numberOfTapsRequired; } + set + { + if (value <= 0) numberOfTapsRequired = 1; + else numberOfTapsRequired = value; + } + } + + /// + /// Gets or sets maximum hold time before gesture fails. + /// + /// Number of seconds a user should hold their fingers before gesture fails. + public float TimeLimit + { + get { return timeLimit; } + set { timeLimit = value; } + } + + /// + /// Gets or sets maximum distance for point cluster must move for the gesture to fail. + /// + /// Distance in cm pointers must move before gesture fails. + public float DistanceLimit + { + get { return distanceLimit; } + set + { + distanceLimit = value; + distanceLimitInPixelsSquared = Mathf.Pow(distanceLimit * touchManager.DotsPerCentimeter, 2); + } + } + + /// + /// Gets or sets the flag if pointers should be treated as a cluster. + /// + /// true if pointers should be treated as a cluster; otherwise, false. + /// + /// At the end of a gesture when pointers are lifted off due to the fact that computers are faster than humans the very last pointer's position will be gesture's after that. This flag is used to combine several pointers which from the point of a user were lifted off simultaneously and set their centroid as gesture's . + /// + public bool CombinePointers + { + get { return combinePointers; } + set { combinePointers = value; } + } + + /// + /// Gets or sets time interval before gesture is recognized to combine all lifted pointers into a cluster to use its center as . + /// + /// Time in seconds to treat pointers lifted off during this interval as a single gesture. + public float CombinePointersInterval + { + get { return combinePointersInterval; } + set { combinePointersInterval = value; } + } + + #endregion + + #region Private variables + + [SerializeField] + private int numberOfTapsRequired = 1; + + [SerializeField] + [NullToggle(NullFloatValue = float.PositiveInfinity)] + private float timeLimit = float.PositiveInfinity; + + [SerializeField] + [NullToggle(NullFloatValue = float.PositiveInfinity)] + private float distanceLimit = float.PositiveInfinity; + + [SerializeField] + [ToggleLeft] + private bool combinePointers = false; + + [SerializeField] + private float combinePointersInterval = .3f; + + private float distanceLimitInPixelsSquared; + + // isActive works in a tap cycle (i.e. when double/tripple tap is being recognized) + // State -> Possible happens when the first pointer is detected + private bool isActive = false; + private int tapsDone; + private Vector2 startPosition; + private Vector2 totalMovement; + private TimedSequence pointerSequence = new TimedSequence(); + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Public methods + + /// + public override bool ShouldReceivePointer(Pointer pointer) + { + if (!base.ShouldReceivePointer(pointer)) return false; + // Ignore redispatched pointers — they come from 2+ pointer gestures when one is left with 1 pointer. + // In this state it means that the user doesn't have an intention to tap the object. + return (pointer.Flags & Pointer.FLAG_RETURNED) == 0; + } + + #endregion + + #region Unity methods + + /// + protected override void Awake() + { + base.Awake(); + +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Tap Gesture"); +#endif + } + + /// + protected override void OnEnable() + { + base.OnEnable(); + + distanceLimitInPixelsSquared = Mathf.Pow(distanceLimit * touchManager.DotsPerCentimeter, 2); + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersPressed(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersPressed(pointers); + + if (pointersNumState == PointersNumState.PassedMaxThreshold || + pointersNumState == PointersNumState.PassedMinMaxThreshold) + { + setState(GestureState.Failed); +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + return; + } + + if (NumPointers == pointers.Count) + { + // the first ever pointer + if (tapsDone == 0) + { + startPosition = pointers[0].Position; + if (timeLimit < float.PositiveInfinity) StartCoroutine("wait"); + } + else if (tapsDone >= numberOfTapsRequired) // Might be delayed and retapped while waiting + { + reset(); + startPosition = pointers[0].Position; + if (timeLimit < float.PositiveInfinity) StartCoroutine("wait"); + } + else + { + if (distanceLimit < float.PositiveInfinity) + { + if ((pointers[0].Position - startPosition).sqrMagnitude > distanceLimitInPixelsSquared) + { + setState(GestureState.Failed); +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + return; + } + } + } + } + if (pointersNumState == PointersNumState.PassedMinThreshold) + { + // Starting the gesture when it is already active? => we released one finger and pressed again + if (isActive) setState(GestureState.Failed); + else + { + if (State == GestureState.Idle) setState(GestureState.Possible); + isActive = true; + } + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersUpdated(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersUpdated(pointers); + + if (distanceLimit < float.PositiveInfinity) + { + totalMovement += pointers[0].Position - pointers[0].PreviousPosition; + if (totalMovement.sqrMagnitude > distanceLimitInPixelsSquared) setState(GestureState.Failed); + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void pointersReleased(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersReleased(pointers); + + if (combinePointers) + { + var count = pointers.Count; + for (var i = 0; i < count; i++) pointerSequence.Add(pointers[i]); + + if (NumPointers == 0) + { + // Checking which points were removed in clusterExistenceTime seconds to set their centroid as cached screen position + var cluster = pointerSequence.FindElementsLaterThan(Time.unscaledTime - combinePointersInterval, shouldCachePointerPosition); + cachedScreenPosition = ClusterUtils.Get2DCenterPosition(cluster); + cachedPreviousScreenPosition = ClusterUtils.GetPrevious2DCenterPosition(cluster); + } + } + else + { + if (NumPointers == 0) + { + if (!isActive) + { + setState(GestureState.Failed); +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + return; + } + + // pointers outside of gesture target are ignored in shouldCachePointerPosition() + // if all pointers are outside ScreenPosition will be invalid + if (TouchManager.IsInvalidPosition(ScreenPosition)) + { + setState(GestureState.Failed); + } + else + { + tapsDone++; + isActive = false; + if (tapsDone >= numberOfTapsRequired) setState(GestureState.Recognized); + } + } + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + /// + protected override void onRecognized() + { + base.onRecognized(); + + StopCoroutine("wait"); + if (tappedInvoker != null) tappedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + if (UseSendMessage && SendMessageTarget != null) SendMessageTarget.SendMessage(TAP_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + if (UseUnityEvents) OnTap.Invoke(this); + } + + /// + protected override void reset() + { + base.reset(); + + isActive = false; + totalMovement = Vector2.zero; + StopCoroutine("wait"); + tapsDone = 0; + } + + /// + protected override bool shouldCachePointerPosition(Pointer value) + { + // Points must be over target when released + return PointerUtils.IsPointerOnTarget(value, cachedTransform); + } + + #endregion + + #region private functions + + private IEnumerator wait() + { + // WaitForSeconds is affected by time scale! + var targetTime = Time.unscaledTime + TimeLimit; + while (targetTime > Time.unscaledTime) yield return null; + + if (State == GestureState.Idle || State == GestureState.Possible) setState(GestureState.Failed); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TapGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TapGesture.cs.meta new file mode 100644 index 000000000..09c3bafdb --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TapGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7a878a6ff128243dfb1d89ca0273f059 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures.meta new file mode 100644 index 000000000..0afe2b9f2 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 01caabc0c3e0848afa70ede89294233e +folderAsset: yes +timeCreated: 1477921285 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base.meta new file mode 100644 index 000000000..849b7c611 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 017fe8bb6694f41d994967e3e61b197c +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/OnePointTrasformGestureBase.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/OnePointTrasformGestureBase.cs new file mode 100644 index 000000000..40abbf73a --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/OnePointTrasformGestureBase.cs @@ -0,0 +1,322 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using TouchScript.Layers; +using TouchScript.Pointers; +using TouchScript.Utils.Geom; +using UnityEngine; + +#if TOUCHSCRIPT_DEBUG +using System.Collections; +using TouchScript.Debugging.GL; +#endif + +namespace TouchScript.Gestures.TransformGestures.Base +{ + /// + /// Abstract base class for Pinned Transform Gestures. + /// + public abstract class OnePointTrasformGestureBase : TransformGestureBase + { + #region Constants + + #endregion + + #region Events + + #endregion + + #region Public properties + + /// + public override Vector2 ScreenPosition + { + get + { + if (NumPointers == 0) return TouchManager.INVALID_POSITION; + return activePointers[0].Position; + } + } + + /// + public override Vector2 PreviousScreenPosition + { + get + { + if (NumPointers == 0) return TouchManager.INVALID_POSITION; + return activePointers[0].PreviousPosition; + } + } + + #endregion + + #region Private variables + + /// + /// Translation buffer. + /// + protected Vector2 screenPixelTranslationBuffer; + + /// + /// Rotation buffer. + /// + protected float screenPixelRotationBuffer; + + /// + /// Angle buffer. + /// + protected float angleBuffer; + + /// + /// Screen space scaling buffer. + /// + protected float screenPixelScalingBuffer; + + /// + /// Scaling buffer. + /// + protected float scaleBuffer; + + #endregion + + #region Unity methods + +#if TOUCHSCRIPT_DEBUG + /// + protected override void Awake() + { + base.Awake(); + + debugID = DebugHelper.GetDebugId(this); + debugPointerSize = Vector2.one * TouchManager.Instance.DotsPerCentimeter * 1.1f; + } +#endif + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersUpdated(IList pointers) + { + base.pointersUpdated(pointers); + + var projectionParams = activePointers[0].ProjectionParams; + var dR = deltaRotation = 0; + var dS = deltaScale = 1f; + +#if TOUCHSCRIPT_DEBUG + var worldCenter = cachedTransform.position; + var screenCenter = projectionParams.ProjectFrom(worldCenter); + var newScreenPos = getPointScreenPosition(); + drawDebug(screenCenter, newScreenPos); +#endif + + if (pointersNumState != PointersNumState.InRange) return; + + var rotationEnabled = (Type & TransformGesture.TransformType.Rotation) == TransformGesture.TransformType.Rotation; + var scalingEnabled = (Type & TransformGesture.TransformType.Scaling) == TransformGesture.TransformType.Scaling; + if (!rotationEnabled && !scalingEnabled) return; + if (!relevantPointers(pointers)) return; + +#if !TOUCHSCRIPT_DEBUG + var thePointer = activePointers[0]; + var worldCenter = cachedTransform.position; + var screenCenter = projectionParams.ProjectFrom(worldCenter); + var newScreenPos = thePointer.Position; +#endif + + // Here we can't reuse last frame screen positions because points 0 and 1 can change. + // For example if the first of 3 fingers is lifted off. + var oldScreenPos = getPointPreviousScreenPosition(); + + if (rotationEnabled) + { + if (isTransforming) + { + dR = doRotation(worldCenter, oldScreenPos, newScreenPos, projectionParams); + } + else + { + // Find how much we moved perpendicular to the line (center, oldScreenPos) + screenPixelRotationBuffer += TwoD.PointToLineDistance(screenCenter, oldScreenPos, newScreenPos); + angleBuffer += doRotation(worldCenter, oldScreenPos, newScreenPos, projectionParams); + + if (screenPixelRotationBuffer * screenPixelRotationBuffer >= + screenTransformPixelThresholdSquared) + { + isTransforming = true; + dR = angleBuffer; + } + } + } + + if (scalingEnabled) + { + if (isTransforming) + { + dS *= doScaling(worldCenter, oldScreenPos, newScreenPos, projectionParams); + } + else + { + screenPixelScalingBuffer += (newScreenPos - screenCenter).magnitude - + (oldScreenPos - screenCenter).magnitude; + scaleBuffer *= doScaling(worldCenter, oldScreenPos, newScreenPos, projectionParams); + + if (screenPixelScalingBuffer * screenPixelScalingBuffer >= + screenTransformPixelThresholdSquared) + { + isTransforming = true; + dS = scaleBuffer; + } + } + } + + if (dR != 0) transformMask |= TransformGesture.TransformType.Rotation; + if (dS != 1) transformMask |= TransformGesture.TransformType.Scaling; + + if (transformMask != 0) + { + if (State == GestureState.Possible) setState(GestureState.Began); + switch (State) + { + case GestureState.Began: + case GestureState.Changed: + deltaRotation = dR; + deltaScale = dS; + setState(GestureState.Changed); + resetValues(); + break; + } + } + } + + /// + protected override void reset() + { + base.reset(); + + screenPixelTranslationBuffer = Vector2.zero; + screenPixelRotationBuffer = 0f; + angleBuffer = 0; + screenPixelScalingBuffer = 0f; + scaleBuffer = 1f; + +#if TOUCHSCRIPT_DEBUG + clearDebug(); +#endif + } + + #endregion + + #region Protected methods + + /// + /// Calculates rotation. + /// + /// Center screen position. + /// Pointer old screen position. + /// Pointer new screen position. + /// Layer projection parameters. + /// Angle in degrees. + protected virtual float doRotation(Vector3 center, Vector2 oldScreenPos, Vector2 newScreenPos, + ProjectionParams projectionParams) + { + return 0; + } + + /// + /// Calculates scaling. + /// + /// Center screen position. + /// Pointer old screen position. + /// Pointer new screen position. + /// Layer projection parameters. + /// Multiplicative delta scaling. + protected virtual float doScaling(Vector3 center, Vector2 oldScreenPos, Vector2 newScreenPos, + ProjectionParams projectionParams) + { + return 1; + } + + /// + /// Checks if there are pointers in the list which matter for the gesture. + /// + /// List of pointers + /// true if there are relevant pointers; false otherwise. + protected virtual bool relevantPointers(IList pointers) + { + // We care only about the first pointer + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + if (pointers[i] == activePointers[0]) return true; + } + return false; + } + + /// + /// Returns screen position of a point with index 0. + /// + protected virtual Vector2 getPointScreenPosition() + { + return activePointers[0].Position; + } + + /// + /// Returns previous screen position of a point with index 0. + /// + protected virtual Vector2 getPointPreviousScreenPosition() + { + return activePointers[0].PreviousPosition; + } + + /// + protected override void updateType() + { + type = type & ~TransformGesture.TransformType.Translation; + } + +#if TOUCHSCRIPT_DEBUG + protected virtual void clearDebug() + { + GLDebug.RemoveFigure(debugID); + GLDebug.RemoveFigure(debugID + 1); + GLDebug.RemoveFigure(debugID + 2); + + if (debugCoroutine != null) StopCoroutine(debugCoroutine); + debugCoroutine = null; + } + + protected void drawDebugDelayed(Vector2 point1, Vector2 point2) + { + if (debugCoroutine != null) StopCoroutine(debugCoroutine); + debugCoroutine = StartCoroutine(doDrawDebug(point1, point2)); + } + + protected virtual void drawDebug(Vector2 point1, Vector2 point2) + { + if (!DebugMode) return; + + var color = State == GestureState.Possible ? Color.red : Color.green; + GLDebug.DrawSquareScreenSpace(debugID + 1, point2, 0f, debugPointerSize, color, float.PositiveInfinity); + GLDebug.DrawLineScreenSpace(debugID + 2, point1, point2, color, float.PositiveInfinity); + } + + private IEnumerator doDrawDebug(Vector2 point1, Vector2 point2) + { + yield return new WaitForEndOfFrame(); + + drawDebug(point1, point2); + } +#endif + + #endregion + + #region Private functions + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/OnePointTrasformGestureBase.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/OnePointTrasformGestureBase.cs.meta new file mode 100644 index 000000000..c2963b904 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/OnePointTrasformGestureBase.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2e0b42362ebf8465e8b9e3dc274cc60a +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TransformGestureBase.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TransformGestureBase.cs new file mode 100644 index 000000000..13acb87bc --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TransformGestureBase.cs @@ -0,0 +1,376 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine; + +#if TOUCHSCRIPT_DEBUG +using TouchScript.Debugging.GL; +#endif + +namespace TouchScript.Gestures.TransformGestures.Base +{ + /// + /// Abstract base class for Transform Gestures. + /// + /// + /// Relationship with component requires that if current object position is not exactly the one acquired by transformation events from this gesture (i.e. when smoothing is applied current transform is lagging a bit behind target transform), the gesture has to know about this to calculate translation properly. This is where method comes into play. has to call it after every transform event. + /// + public abstract class TransformGestureBase : Gesture, ITransformGesture + { + #region Constants + + /// + /// Message name when gesture starts + /// + public const string TRANSFORM_START_MESSAGE = "OnTransformStart"; + + /// + /// Message name when gesture updates + /// + public const string TRANSFORM_MESSAGE = "OnTransform"; + + /// + /// Message name when gesture ends + /// + public const string TRANSFORM_COMPLETE_MESSAGE = "OnTransformComplete"; + + #endregion + + #region Events + + /// + public event EventHandler TransformStarted + { + add { transformStartedInvoker += value; } + remove { transformStartedInvoker -= value; } + } + + /// + public event EventHandler Transformed + { + add { transformedInvoker += value; } + remove { transformedInvoker -= value; } + } + + /// + public event EventHandler TransformCompleted + { + add { transformCompletedInvoker += value; } + remove { transformCompletedInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler transformStartedInvoker, transformedInvoker, transformCompletedInvoker; + + /// + /// Unity event, occurs when the gesture starts. + /// + public GestureEvent OnTransformStart = new GestureEvent(); + + /// + /// Unity event, occurs when the gesture is updated. + /// + public GestureEvent OnTransform = new GestureEvent(); + + /// + /// Unity event, occurs when the gesture ends. + /// + public GestureEvent OnTransformComplete = new GestureEvent(); + + #endregion + + #region Public properties + + /// + /// Gets or sets types of transformation this gesture supports. + /// + /// Type flags. + public TransformGesture.TransformType Type + { + get { return type; } + set + { + type = value; + updateType(); + } + } + + /// + /// Gets or sets minimum distance in cm for pointers to move for gesture to begin. + /// + /// Minimum value in cm user must move their fingers to start this gesture. + public float ScreenTransformThreshold + { + get { return screenTransformThreshold; } + set + { + screenTransformThreshold = value; + updateScreenTransformThreshold(); + } + } + + /// + public TransformGesture.TransformType TransformMask + { + get { return transformMask; } + } + + /// + public Vector3 DeltaPosition + { + get { return deltaPosition; } + } + + /// + public float DeltaRotation + { + get { return deltaRotation; } + } + + /// + public float DeltaScale + { + get { return deltaScale; } + } + + /// + public Vector3 RotationAxis + { + get { return rotationAxis; } + } + + #endregion + + #region Private variables + + /// + /// in pixels. + /// + protected float screenTransformPixelThreshold; + + /// + /// in pixels squared. + /// + protected float screenTransformPixelThresholdSquared; + + /// + /// The bit mask of what transform operations happened this frame. + /// + protected TransformGesture.TransformType transformMask; + + /// + /// Calculated delta position. + /// + protected Vector3 deltaPosition; + + /// + /// Calculated delta rotation. + /// + protected float deltaRotation; + + /// + /// Calculated delta scale. + /// + protected float deltaScale; + + /// + /// Rotation axis to use with deltaRotation. + /// + protected Vector3 rotationAxis = new Vector3(0, 0, 1); + + /// + /// Indicates whether transformation started; + /// + protected bool isTransforming = false; + + /// + /// Indicates if current position is being overridden for the next frame. . + /// + protected bool targetPositionOverridden = false; + + + /// + /// Target overridden position. . + /// + protected Vector3 targetPosition; + + /// + /// The type of the transforms this gesture can dispatch. + /// + [SerializeField] + protected TransformGesture.TransformType type = TransformGesture.TransformType.Translation | TransformGesture.TransformType.Scaling | + TransformGesture.TransformType.Rotation; + + [SerializeField] + private float screenTransformThreshold = 0.1f; + + #endregion + + #region Public methods + + /// + /// Overrides the target position used in calculations this frame. If used, has to be set after every transform event. . + /// + /// Target position. + public void OverrideTargetPosition(Vector3 position) + { + targetPositionOverridden = true; + targetPosition = position; + } + + #endregion + + #region Unity methods + +#if TOUCHSCRIPT_DEBUG + /// + protected override void Awake() + { + base.Awake(); + + debugID = DebugHelper.GetDebugId(this); + debugPointerSize = Vector2.one*TouchManager.Instance.DotsPerCentimeter*1.1f; + } +#endif + + /// + protected override void OnEnable() + { + base.OnEnable(); + updateScreenTransformThreshold(); + updateType(); + } + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersPressed(IList pointers) + { + base.pointersPressed(pointers); + + if (pointersNumState == PointersNumState.PassedMaxThreshold || + pointersNumState == PointersNumState.PassedMinMaxThreshold) + { + switch (State) + { + case GestureState.Began: + case GestureState.Changed: + setState(GestureState.Ended); + break; + } + } else if (pointersNumState == PointersNumState.PassedMinThreshold) + { + setState(GestureState.Possible); + } + } + + /// + protected override void pointersReleased(IList pointers) + { + base.pointersReleased(pointers); + + if (pointersNumState == PointersNumState.PassedMinThreshold) + { + switch (State) + { + case GestureState.Began: + case GestureState.Changed: + setState(GestureState.Ended); + break; + case GestureState.Possible: + setState(GestureState.Idle); + break; + } + } + } + + /// + protected override void onBegan() + { + base.onBegan(); + if (transformStartedInvoker != null) transformStartedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + if (UseSendMessage && SendMessageTarget != null) + SendMessageTarget.SendMessage(TRANSFORM_START_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + if (UseUnityEvents) OnTransformStart.Invoke(this); + } + + /// + protected override void onChanged() + { + base.onChanged(); + + targetPositionOverridden = false; + + if (transformedInvoker != null) transformedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + if (UseSendMessage && SendMessageTarget != null) + SendMessageTarget.SendMessage(TRANSFORM_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + if (UseUnityEvents) OnTransform.Invoke(this); + } + + /// + protected override void onRecognized() + { + base.onRecognized(); + + if (transformCompletedInvoker != null) + transformCompletedInvoker.InvokeHandleExceptions(this, EventArgs.Empty); + if (UseSendMessage && SendMessageTarget != null) + SendMessageTarget.SendMessage(TRANSFORM_COMPLETE_MESSAGE, this, SendMessageOptions.DontRequireReceiver); + if (UseUnityEvents) OnTransformComplete.Invoke(this); + } + + /// + protected override void reset() + { + base.reset(); + + resetValues(); + isTransforming = false; + } + + #endregion + + #region Protected methods + + /// + /// Updates the type of the gesture. + /// + protected virtual void updateType() {} + + /// + /// Resets the frame delta values. + /// + protected void resetValues() + { + deltaPosition = Vector3.zero; + deltaRotation = 0f; + deltaScale = 1f; + transformMask = 0; + } + +#if TOUCHSCRIPT_DEBUG + protected int debugID; + protected Coroutine debugCoroutine; + protected Vector2 debugPointerSize; +#endif + + #endregion + + #region Private functions + + private void updateScreenTransformThreshold() + { + screenTransformPixelThreshold = screenTransformThreshold * touchManager.DotsPerCentimeter; + screenTransformPixelThresholdSquared = screenTransformPixelThreshold * screenTransformPixelThreshold; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TransformGestureBase.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TransformGestureBase.cs.meta new file mode 100644 index 000000000..e67dea5e4 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TransformGestureBase.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b056765f5d95e45ef9a3c9befaabbdec +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TwoPointTransformGestureBase.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TwoPointTransformGestureBase.cs new file mode 100644 index 000000000..1f7884624 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TwoPointTransformGestureBase.cs @@ -0,0 +1,446 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using TouchScript.Layers; +using TouchScript.Utils.Geom; +using TouchScript.Pointers; +using UnityEngine; + +#if TOUCHSCRIPT_DEBUG +using System.Collections; +using TouchScript.Debugging.GL; +#endif + +namespace TouchScript.Gestures.TransformGestures.Base +{ + /// + /// Abstract base classfor two-point transform gestures. + /// + public abstract class TwoPointTransformGestureBase : TransformGestureBase + { + #region Constants + + #endregion + + #region Events + + #endregion + + #region Public properties + + /// + /// Gets or sets minimum distance between 2 points in cm for gesture to begin. + /// + /// Minimum distance. + public virtual float MinScreenPointsDistance + { + get { return minScreenPointsDistance; } + set + { + minScreenPointsDistance = value; + updateMinScreenPointsDistance(); + } + } + + #endregion + + #region Private variables + + /// + /// in pixels for internal use. + /// + protected float minScreenPointsPixelDistance; + + /// + /// squared in pixels for internal use. + /// + protected float minScreenPointsPixelDistanceSquared; + + /// + /// Translation buffer. + /// + protected Vector2 screenPixelTranslationBuffer; + + /// + /// Rotation buffer. + /// + protected float screenPixelRotationBuffer; + + /// + /// Angle buffer. + /// + protected float angleBuffer; + + /// + /// Screen space scaling buffer. + /// + protected float screenPixelScalingBuffer; + + /// + /// Scaling buffer. + /// + protected float scaleBuffer; + + [SerializeField] + private float minScreenPointsDistance = 0.5f; + + #endregion + + #region Unity methods + + /// + protected override void OnEnable() + { + base.OnEnable(); + updateMinScreenPointsDistance(); + } + + #endregion + + #region Gesture callbacks + +#if TOUCHSCRIPT_DEBUG + /// + protected override void pointersPressed(IList pointers) + { + base.pointersPressed(pointers); + + if (!(pointersNumState == PointersNumState.PassedMaxThreshold || + pointersNumState == PointersNumState.PassedMinMaxThreshold)) + drawDebugDelayed(getNumPoints()); + } +#endif + + /// + protected override void pointersUpdated(IList pointers) + { + base.pointersUpdated(pointers); + + var projectionParams = activePointers[0].ProjectionParams; + var dP = deltaPosition = Vector3.zero; + var dR = deltaRotation = 0; + var dS = deltaScale = 1f; + +#if TOUCHSCRIPT_DEBUG + drawDebugDelayed(getNumPoints()); +#endif + + if (pointersNumState != PointersNumState.InRange) return; + + var translationEnabled = (Type & TransformGesture.TransformType.Translation) == TransformGesture.TransformType.Translation; + var rotationEnabled = (Type & TransformGesture.TransformType.Rotation) == TransformGesture.TransformType.Rotation; + var scalingEnabled = (Type & TransformGesture.TransformType.Scaling) == TransformGesture.TransformType.Scaling; + + // one pointer or one cluster (points might be too close to each other for 2 clusters) + if (getNumPoints() == 1 || (!rotationEnabled && !scalingEnabled)) + { + if (!translationEnabled) return; // don't look for translates + if (!relevantPointers1(pointers)) return; + + // translate using one point + dP = doOnePointTranslation(getPointPreviousScreenPosition(0), getPointScreenPosition(0), projectionParams); + } + else + { + // Make sure that we actually care about the pointers moved. + if (!relevantPointers2(pointers)) return; + + var newScreenPos1 = getPointScreenPosition(0); + var newScreenPos2 = getPointScreenPosition(1); + + // Here we can't reuse last frame screen positions because points 0 and 1 can change. + // For example if the first of 3 fingers is lifted off. + var oldScreenPos1 = getPointPreviousScreenPosition(0); + var oldScreenPos2 = getPointPreviousScreenPosition(1); + + var newScreenDelta = newScreenPos2 - newScreenPos1; + if (newScreenDelta.sqrMagnitude > minScreenPointsPixelDistanceSquared) + { + if (rotationEnabled) + { + if (isTransforming) + { + dR = doRotation(oldScreenPos1, oldScreenPos2, newScreenPos1, newScreenPos2, projectionParams); + } + else + { + float d1, d2; + // Find how much we moved perpendicular to the line (oldScreenPos1, oldScreenPos2) + TwoD.PointToLineDistance2(oldScreenPos1, oldScreenPos2, newScreenPos1, newScreenPos2, + out d1, out d2); + screenPixelRotationBuffer += (d1 - d2); + angleBuffer += doRotation(oldScreenPos1, oldScreenPos2, newScreenPos1, newScreenPos2, projectionParams); + + if (screenPixelRotationBuffer * screenPixelRotationBuffer >= + screenTransformPixelThresholdSquared) + { + isTransforming = true; + dR = angleBuffer; + } + } + } + + if (scalingEnabled) + { + if (isTransforming) + { + dS *= doScaling(oldScreenPos1, oldScreenPos2, newScreenPos1, newScreenPos2, projectionParams); + } + else + { + var oldScreenDelta = oldScreenPos2 - oldScreenPos1; + var newDistance = newScreenDelta.magnitude; + var oldDistance = oldScreenDelta.magnitude; + screenPixelScalingBuffer += newDistance - oldDistance; + scaleBuffer *= doScaling(oldScreenPos1, oldScreenPos2, newScreenPos1, newScreenPos2, projectionParams); + + if (screenPixelScalingBuffer * screenPixelScalingBuffer >= + screenTransformPixelThresholdSquared) + { + isTransforming = true; + dS = scaleBuffer; + } + } + } + + if (translationEnabled) + { + if (dR == 0 && dS == 1) dP = doOnePointTranslation(oldScreenPos1, newScreenPos1, projectionParams); + else + dP = doTwoPointTranslation(oldScreenPos1, oldScreenPos2, newScreenPos1, newScreenPos2, dR, dS, projectionParams); + } + } + else if (translationEnabled) + { + // points are too close, translate using one point + dP = doOnePointTranslation(oldScreenPos1, newScreenPos1, projectionParams); + } + } + + if (dP != Vector3.zero) transformMask |= TransformGesture.TransformType.Translation; + if (dR != 0) transformMask |= TransformGesture.TransformType.Rotation; + if (dS != 1) transformMask |= TransformGesture.TransformType.Scaling; + + if (transformMask != 0) + { + if (State == GestureState.Possible) setState(GestureState.Began); + switch (State) + { + case GestureState.Began: + case GestureState.Changed: + deltaPosition = dP; + deltaRotation = dR; + deltaScale = dS; + setState(GestureState.Changed); + resetValues(); + break; + } + } + } + + /// + protected override void reset() + { + base.reset(); + + screenPixelTranslationBuffer = Vector2.zero; + screenPixelRotationBuffer = 0f; + angleBuffer = 0; + screenPixelScalingBuffer = 0f; + scaleBuffer = 1f; + +#if TOUCHSCRIPT_DEBUG + clearDebug(); +#endif + } + + #endregion + + #region Protected methods + + /// + /// Calculates rotation. + /// + /// Finger one old screen position. + /// Finger two old screen position. + /// Finger one new screen position. + /// Finger two new screen position. + /// Layer projection parameters. + /// Angle in degrees. + protected virtual float doRotation(Vector2 oldScreenPos1, Vector2 oldScreenPos2, Vector2 newScreenPos1, + Vector2 newScreenPos2, ProjectionParams projectionParams) + { + return 0; + } + + /// + /// Calculates scaling. + /// + /// Finger one old screen position. + /// Finger two old screen position. + /// Finger one new screen position. + /// Finger two new screen position. + /// Layer projection parameters. + /// Multiplicative delta scaling. + protected virtual float doScaling(Vector2 oldScreenPos1, Vector2 oldScreenPos2, Vector2 newScreenPos1, + Vector2 newScreenPos2, ProjectionParams projectionParams) + { + return 1; + } + + /// + /// Calculates single finger translation. + /// + /// Finger old screen position. + /// Finger new screen position. + /// Layer projection parameters. + /// Delta translation vector. + protected virtual Vector3 doOnePointTranslation(Vector2 oldScreenPos, Vector2 newScreenPos, + ProjectionParams projectionParams) + { + return Vector3.zero; + } + + /// + /// Calculated two finger translation with respect to rotation and scaling. + /// + /// Finger one old screen position. + /// Finger two old screen position. + /// Finger one new screen position. + /// Finger two new screen position. + /// Calculated delta rotation. + /// Calculated delta scaling. + /// Layer projection parameters. + /// Delta translation vector. + protected virtual Vector3 doTwoPointTranslation(Vector2 oldScreenPos1, Vector2 oldScreenPos2, + Vector2 newScreenPos1, Vector2 newScreenPos2, float dR, float dS, ProjectionParams projectionParams) + { + return Vector3.zero; + } + + /// + /// Gets the number of points. + /// + /// Number of points. + protected virtual int getNumPoints() + { + return NumPointers; + } + + /// + /// Checks if there are pointers in the list which matter for the gesture. + /// + /// List of pointers. + /// true if there are relevant pointers; false otherwise. + protected virtual bool relevantPointers1(IList pointers) + { + // We care only about the first pointer + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + if (pointers[i] == activePointers[0]) return true; + } + return false; + } + + /// + /// Checks if there are pointers in the list which matter for the gesture. + /// + /// List of pointers. + /// true if there are relevant pointers; false otherwise. + protected virtual bool relevantPointers2(IList pointers) + { + // We care only about the first and the second pointers + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + if (pointer == activePointers[0] || pointer == activePointers[1]) return true; + } + return false; + } + + /// + /// Returns screen position of a point with index 0 or 1 + /// + /// The index. + protected virtual Vector2 getPointScreenPosition(int index) + { + return activePointers[index].Position; + } + + /// + /// Returns previous screen position of a point with index 0 or 1 + /// + /// The index. + protected virtual Vector2 getPointPreviousScreenPosition(int index) + { + return activePointers[index].PreviousPosition; + } + +#if TOUCHSCRIPT_DEBUG + protected virtual void clearDebug() + { + GLDebug.RemoveFigure(debugID); + GLDebug.RemoveFigure(debugID + 1); + GLDebug.RemoveFigure(debugID + 2); + + if (debugCoroutine != null) StopCoroutine(debugCoroutine); + debugCoroutine = null; + } + + protected void drawDebugDelayed(int touchPoints) + { + if (debugCoroutine != null) StopCoroutine(debugCoroutine); + debugCoroutine = StartCoroutine(doDrawDebug(touchPoints)); + } + + protected virtual void drawDebug(int touchPoints) + { + if (!DebugMode) return; + + var color = State == GestureState.Possible ? Color.red : Color.green; + switch (touchPoints) + { + case 1: + GLDebug.DrawSquareScreenSpace(debugID, getPointScreenPosition(0), 0f, debugPointerSize, color, + float.PositiveInfinity); + GLDebug.RemoveFigure(debugID + 1); + GLDebug.RemoveFigure(debugID + 2); + break; + default: + var newScreenPos1 = getPointScreenPosition(0); + var newScreenPos2 = getPointScreenPosition(1); + GLDebug.DrawSquareScreenSpace(debugID, newScreenPos1, 0f, debugPointerSize, color, + float.PositiveInfinity); + GLDebug.DrawSquareScreenSpace(debugID + 1, newScreenPos2, 0f, debugPointerSize, color, + float.PositiveInfinity); + GLDebug.DrawLineWithCrossScreenSpace(debugID + 2, newScreenPos1, newScreenPos2, .5f, + debugPointerSize * .3f, color, float.PositiveInfinity); + break; + } + } + + private IEnumerator doDrawDebug(int touchPoints) + { + yield return new WaitForEndOfFrame(); + + drawDebug(touchPoints); + } +#endif + + #endregion + + #region Private functions + + private void updateMinScreenPointsDistance() + { + minScreenPointsPixelDistance = minScreenPointsDistance * touchManager.DotsPerCentimeter; + minScreenPointsPixelDistanceSquared = minScreenPointsPixelDistance * minScreenPointsPixelDistance; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TwoPointTransformGestureBase.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TwoPointTransformGestureBase.cs.meta new file mode 100644 index 000000000..d70fd5673 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Base/TwoPointTransformGestureBase.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f8c5d5231ca8e465ab5739f62d26e8fa +timeCreated: 1477866827 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered.meta new file mode 100644 index 000000000..5ca574934 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2dbbc39f33a27479b89910854ee862c2 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredPinnedTransformGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredPinnedTransformGesture.cs new file mode 100644 index 000000000..863058e5b --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredPinnedTransformGesture.cs @@ -0,0 +1,42 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Gestures.TransformGestures.Clustered +{ + /// + /// PinnedTransformGesture which works with centroid of all pointers instead of with just the first one. + /// Should be used for large touch surfaces. + /// + [AddComponentMenu("TouchScript/Gestures/Clustered/Pinned Transform Gesture (Clustered)")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_TransformGestures_Clustered_ClusteredPinnedTransformGesture.htm")] + public class ClusteredPinnedTransformGesture : PinnedTransformGesture + { + #region Protected methods + + /// + protected override bool relevantPointers(IList pointers) + { + return true; + } + + /// + protected override Vector2 getPointScreenPosition() + { + return ClusterUtils.Get2DCenterPosition(activePointers); + } + + /// + protected override Vector2 getPointPreviousScreenPosition() + { + return ClusterUtils.GetPrevious2DCenterPosition(activePointers); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredPinnedTransformGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredPinnedTransformGesture.cs.meta new file mode 100644 index 000000000..dc28d9407 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredPinnedTransformGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a02b4354287c54e8b8a68cb3380b4266 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredScreenTransformGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredScreenTransformGesture.cs new file mode 100644 index 000000000..9f34c1787 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredScreenTransformGesture.cs @@ -0,0 +1,102 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Gestures.TransformGestures.Clustered +{ + /// + /// ScreenTransformGesture which splits all pointers into 2 clusters and works with them. + /// Should be used for large touch surfaces. + /// + [AddComponentMenu("TouchScript/Gestures/Clustered/Screen Transform Gesture (Clustered)")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_TransformGestures_Clustered_ClusteredScreenTransformGesture.htm")] + public class ClusteredScreenTransformGesture : ScreenTransformGesture + { + #region Private variables + + private Clusters.Clusters2D clusters = new Clusters.Clusters2D(); + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersPressed(IList pointers) + { + clusters.AddPoints(pointers); + + base.pointersPressed(pointers); + } + + /// + protected override void pointersUpdated(IList pointers) + { + clusters.Invalidate(); + + base.pointersUpdated(pointers); + } + + /// + protected override void pointersReleased(IList pointers) + { + clusters.RemovePoints(pointers); + + base.pointersReleased(pointers); + } + + /// + protected override void reset() + { + base.reset(); + + clusters.RemoveAllPoints(); + } + + #endregion + + #region Protected methods + + /// + protected override int getNumPoints() + { + if (clusters.HasClusters) return 2; + if (NumPointers > 0) return 1; + return 0; + } + + /// + protected override bool relevantPointers1(IList pointers) + { + return true; + } + + /// + protected override bool relevantPointers2(IList pointers) + { + return true; + } + + /// + protected override Vector2 getPointScreenPosition(int index) + { + if (!clusters.HasClusters) return ClusterUtils.Get2DCenterPosition(activePointers); + + return clusters.GetCenterPosition(index); + } + + /// + protected override Vector2 getPointPreviousScreenPosition(int index) + { + if (!clusters.HasClusters) return ClusterUtils.GetPrevious2DCenterPosition(activePointers); + + return clusters.GetPreviousCenterPosition(index); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredScreenTransformGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredScreenTransformGesture.cs.meta new file mode 100644 index 000000000..2994ee866 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredScreenTransformGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 35c2dca9c55c34126a66ce1252fbad55 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredTransformGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredTransformGesture.cs new file mode 100644 index 000000000..cbd15f599 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredTransformGesture.cs @@ -0,0 +1,102 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Gestures.TransformGestures.Clustered +{ + /// + /// TransformGesture which splits all pointers into 2 clusters and works with them. + /// Should be used for large touch surfaces. + /// + [AddComponentMenu("TouchScript/Gestures/Clustered/Transform Gesture (Clustered)")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_TransformGestures_Clustered_ClusteredTransformGesture.htm")] + public class ClusteredTransformGesture : TransformGesture + { + #region Private variables + + private Clusters.Clusters2D clusters = new Clusters.Clusters2D(); + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersPressed(IList pointers) + { + clusters.AddPoints(pointers); + + base.pointersPressed(pointers); + } + + /// + protected override void pointersUpdated(IList pointers) + { + clusters.Invalidate(); + + base.pointersUpdated(pointers); + } + + /// + protected override void pointersReleased(IList pointers) + { + clusters.RemovePoints(pointers); + + base.pointersReleased(pointers); + } + + /// + protected override void reset() + { + base.reset(); + + clusters.RemoveAllPoints(); + } + + #endregion + + #region Protected methods + + /// + protected override int getNumPoints() + { + if (clusters.HasClusters) return 2; + if (NumPointers > 0) return 1; + return 0; + } + + /// + protected override bool relevantPointers1(IList pointers) + { + return true; + } + + /// + protected override bool relevantPointers2(IList pointers) + { + return true; + } + + /// + protected override Vector2 getPointScreenPosition(int index) + { + if (!clusters.HasClusters) return ClusterUtils.Get2DCenterPosition(activePointers); + + return clusters.GetCenterPosition(index); + } + + /// + protected override Vector2 getPointPreviousScreenPosition(int index) + { + if (!clusters.HasClusters) return ClusterUtils.GetPrevious2DCenterPosition(activePointers); + + return clusters.GetPreviousCenterPosition(index); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredTransformGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredTransformGesture.cs.meta new file mode 100644 index 000000000..a7df18aad --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/Clustered/ClusteredTransformGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 72b38de9ff1ca4059868438f858d35a9 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ITransformGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ITransformGesture.cs new file mode 100644 index 000000000..98cf79937 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ITransformGesture.cs @@ -0,0 +1,61 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using UnityEngine; + +namespace TouchScript.Gestures.TransformGestures +{ + /// + /// Gesture which performs some kind of transformation in 3d space, i.e. translation, rotation, scaling or a combination of these. + /// + public interface ITransformGesture + { + + /// + /// Occurs when gesture starts. + /// + event EventHandler TransformStarted; + + /// + /// Occurs when gesture data updates. + /// + event EventHandler Transformed; + + /// + /// Occurs when gesture finishes. + /// + event EventHandler TransformCompleted; + + /// + /// Contains transform operations which happened this frame. + /// + TransformGesture.TransformType TransformMask { get; } + + /// + /// Gets delta position between this frame and the last frame in world coordinates. + /// This value is only available during or events. + /// + Vector3 DeltaPosition { get; } + + /// + /// Gets delta rotation between this frame and last frame in degrees. + /// This value is only available during or events. + /// + float DeltaRotation { get; } + + /// + /// Contains local delta scale when gesture is recognized. + /// Value is between 0 and +infinity, where 1 is no scale, 0.5 is scaled in half, 2 scaled twice. + /// This value is only available during or events. + /// + float DeltaScale { get; } + + /// + /// Gets rotation axis of the gesture in world coordinates. + /// + /// Rotation axis of the gesture in world coordinates. + Vector3 RotationAxis { get; } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ITransformGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ITransformGesture.cs.meta new file mode 100644 index 000000000..a7209b132 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ITransformGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5a7c6923c3da84d40a5d07d86c4f29a8 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/PinnedTransformGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/PinnedTransformGesture.cs new file mode 100644 index 000000000..b7a992b78 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/PinnedTransformGesture.cs @@ -0,0 +1,259 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using TouchScript.Gestures.TransformGestures.Base; +using TouchScript.Layers; +using TouchScript.Utils.Geom; +using TouchScript.Pointers; +using UnityEngine.Profiling; + +#if TOUCHSCRIPT_DEBUG +using TouchScript.Debugging.GL; +#endif +using UnityEngine; + +namespace TouchScript.Gestures.TransformGestures +{ + /// + /// Recognizes a transform gesture around center of the object, i.e. one finger rotation, scaling or a combination of these. + /// + [AddComponentMenu("TouchScript/Gestures/Pinned Transform Gesture")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_TransformGestures_PinnedTransformGesture.htm")] + public class PinnedTransformGesture : OnePointTrasformGestureBase + { + #region Constants + + #endregion + + #region Public properties + + /// + /// Gets or sets transform's projection type. + /// + /// Projection type. + public TransformGesture.ProjectionType Projection + { + get { return projection; } + set + { + if (projection == value) return; + projection = value; + if (Application.isPlaying) updateProjectionPlane(); + } + } + + /// + /// Gets or sets transform's projection plane normal. + /// + /// Projection plane normal. + public Vector3 ProjectionPlaneNormal + { + get + { + if (projection == TransformGesture.ProjectionType.Layer) return projectionLayer.WorldProjectionNormal; + return projectionPlaneNormal; + } + set + { + if (projection == TransformGesture.ProjectionType.Layer) projection = TransformGesture.ProjectionType.Object; + value.Normalize(); + if (projectionPlaneNormal == value) return; + projectionPlaneNormal = value; + if (Application.isPlaying) updateProjectionPlane(); + } + } + + /// + /// Plane where transformation occured. + /// + public Plane TransformPlane + { + get { return transformPlane; } + } + + #endregion + + #region Private variables + + [SerializeField] + private bool projectionProps; // Used in the custom inspector + + [SerializeField] + private TransformGesture.ProjectionType projection = TransformGesture.ProjectionType.Layer; + + [SerializeField] + private Vector3 projectionPlaneNormal = Vector3.forward; + + private TouchLayer projectionLayer; + private Plane transformPlane; + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Public methods + + #endregion + + #region Unity methods + + /// + protected override void Awake() + { + base.Awake(); + + transformPlane = new Plane(); +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Pinned Transform Gesture"); +#endif + } + + /// + protected override void OnEnable() + { + base.OnEnable(); + + updateProjectionPlane(); + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersPressed(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersPressed(pointers); + + if (NumPointers == pointers.Count) + { + projectionLayer = activePointers[0].GetPressData().Layer; + updateProjectionPlane(); + +#if TOUCHSCRIPT_DEBUG + drawDebug(activePointers[0].ProjectionParams.ProjectFrom(cachedTransform.position), activePointers[0].Position); +#endif + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + +#if UNITY_5_6_OR_NEWER + /// + protected override void pointersUpdated(IList pointers) + { + gestureSampler.Begin(); + + base.pointersUpdated(pointers); + + gestureSampler.End(); + } +#endif + + /// + protected override void pointersReleased(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersReleased(pointers); + +#if TOUCHSCRIPT_DEBUG + if (NumPointers == 0) clearDebug(); + else drawDebug(activePointers[0].ProjectionParams.ProjectFrom(cachedTransform.position), activePointers[0].Position); +#endif +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + #endregion + + #region Protected methods + + /// + protected override float doRotation(Vector3 center, Vector2 oldScreenPos, Vector2 newScreenPos, + ProjectionParams projectionParams) + { + var newVector = projectionParams.ProjectTo(newScreenPos, TransformPlane) - center; + var oldVector = projectionParams.ProjectTo(oldScreenPos, TransformPlane) - center; + var angle = Vector3.Angle(oldVector, newVector); + if (Vector3.Dot(Vector3.Cross(oldVector, newVector), TransformPlane.normal) < 0) + angle = -angle; + return angle; + } + + /// + protected override float doScaling(Vector3 center, Vector2 oldScreenPos, Vector2 newScreenPos, + ProjectionParams projectionParams) + { + var newVector = projectionParams.ProjectTo(newScreenPos, TransformPlane) - center; + var oldVector = projectionParams.ProjectTo(oldScreenPos, TransformPlane) - center; + return newVector.magnitude / oldVector.magnitude; + } + +#if TOUCHSCRIPT_DEBUG + protected override void clearDebug() + { + base.clearDebug(); + + GLDebug.RemoveFigure(debugID + 3); + } + + protected override void drawDebug(Vector2 point1, Vector2 point2) + { + base.drawDebug(point1, point2); + + if (!DebugMode) return; + GLDebug.DrawPlaneWithNormal(debugID + 3, cachedTransform.position, RotationAxis, 1f, GLDebug.MULTIPLY, float.PositiveInfinity); + } +#endif + + #endregion + + #region Private functions + + private void updateProjectionPlane() + { + if (!Application.isPlaying) return; + + switch (projection) + { + case TransformGesture.ProjectionType.Layer: + if (projectionLayer == null) + transformPlane = new Plane(cachedTransform.TransformDirection(Vector3.forward), + cachedTransform.position); + else transformPlane = new Plane(projectionLayer.WorldProjectionNormal, cachedTransform.position); + break; + case TransformGesture.ProjectionType.Object: + transformPlane = new Plane(cachedTransform.TransformDirection(projectionPlaneNormal), + cachedTransform.position); + break; + case TransformGesture.ProjectionType.Global: + transformPlane = new Plane(projectionPlaneNormal, cachedTransform.position); + break; + } + + rotationAxis = transformPlane.normal; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/PinnedTransformGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/PinnedTransformGesture.cs.meta new file mode 100644 index 000000000..f934b7a13 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/PinnedTransformGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 38e07bff8743d4ee38bf724a7a2b4cbb +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ScreenTransformGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ScreenTransformGesture.cs new file mode 100644 index 000000000..16fb17847 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ScreenTransformGesture.cs @@ -0,0 +1,170 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Gestures.TransformGestures.Base; +using TouchScript.Layers; +using TouchScript.Utils.Geom; +using UnityEngine; +using UnityEngine.Profiling; +using System.Collections.Generic; +using TouchScript.Pointers; + +namespace TouchScript.Gestures.TransformGestures +{ + /// + /// Recognizes a transform gesture in screen space, i.e. translation, rotation, scaling or a combination of these. + /// + [AddComponentMenu("TouchScript/Gestures/Screen Transform Gesture")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_TransformGestures_ScreenTransformGesture.htm")] + public class ScreenTransformGesture : TwoPointTransformGestureBase + { + + #region Private variables + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Unity + + /// + protected override void Awake() + { + base.Awake(); + +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Screen Transform Gesture"); +#endif + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Gesture callbacks + +#if UNITY_5_6_OR_NEWER + /// + protected override void pointersPressed(IList pointers) + { + gestureSampler.Begin(); + + base.pointersPressed(pointers); + + gestureSampler.End(); + } + + /// + protected override void pointersUpdated(IList pointers) + { + gestureSampler.Begin(); + + base.pointersUpdated(pointers); + + gestureSampler.End(); + } +#endif + + /// + protected override void pointersReleased(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersReleased(pointers); + +#if TOUCHSCRIPT_DEBUG + if (getNumPoints() == 0) clearDebug(); + else drawDebugDelayed(getNumPoints()); +#endif + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + #endregion + + #region Protected methods + + /// + protected override float doRotation(Vector2 oldScreenPos1, Vector2 oldScreenPos2, Vector2 newScreenPos1, + Vector2 newScreenPos2, ProjectionParams projectionParams) + { + var oldScreenDelta = oldScreenPos2 - oldScreenPos1; + var newScreenDelta = newScreenPos2 - newScreenPos1; + return (Mathf.Atan2(newScreenDelta.y, newScreenDelta.x) - + Mathf.Atan2(oldScreenDelta.y, oldScreenDelta.x)) * Mathf.Rad2Deg; + } + + /// + protected override float doScaling(Vector2 oldScreenPos1, Vector2 oldScreenPos2, Vector2 newScreenPos1, + Vector2 newScreenPos2, ProjectionParams projectionParams) + { + return (newScreenPos2 - newScreenPos1).magnitude / (oldScreenPos2 - oldScreenPos1).magnitude; + } + + /// + protected override Vector3 doOnePointTranslation(Vector2 oldScreenPos, Vector2 newScreenPos, + ProjectionParams projectionParams) + { + if (isTransforming) + { + return new Vector3(newScreenPos.x - oldScreenPos.x, newScreenPos.y - oldScreenPos.y, 0); + } + + screenPixelTranslationBuffer += newScreenPos - oldScreenPos; + if (screenPixelTranslationBuffer.sqrMagnitude > screenTransformPixelThresholdSquared) + { + isTransforming = true; + return screenPixelTranslationBuffer; + } + + return Vector3.zero; + } + + /// + protected override Vector3 doTwoPointTranslation(Vector2 oldScreenPos1, Vector2 oldScreenPos2, + Vector2 newScreenPos1, Vector2 newScreenPos2, float dR, float dS, ProjectionParams projectionParams) + { + if (isTransforming) + { + var transformedPoint = scaleAndRotate(oldScreenPos1, (oldScreenPos1 + oldScreenPos2) * .5f, dR, dS); + return new Vector3(newScreenPos1.x - transformedPoint.x, newScreenPos1.y - transformedPoint.y, 0); + } + + screenPixelTranslationBuffer += newScreenPos1 - oldScreenPos1; + if (screenPixelTranslationBuffer.sqrMagnitude > screenTransformPixelThresholdSquared) + { + isTransforming = true; + oldScreenPos1 = newScreenPos1 - screenPixelTranslationBuffer; + var transformedPoint = scaleAndRotate(oldScreenPos1, (oldScreenPos1 + oldScreenPos2) * .5f, dR, dS); + return new Vector3(newScreenPos1.x - transformedPoint.x, newScreenPos1.y - transformedPoint.y, 0); + } + + return Vector3.zero; + } + + #endregion + + #region Private functions + + private Vector2 scaleAndRotate(Vector2 point, Vector2 center, float dR, float dS) + { + var delta = point - center; + if (dR != 0) delta = TwoD.Rotate(delta, dR); + if (dS != 0) delta = delta * dS; + return center + delta; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ScreenTransformGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ScreenTransformGesture.cs.meta new file mode 100644 index 000000000..c7436c8d8 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/ScreenTransformGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 74ae431eff8434b0897d3f7f1cff4311 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/TransformGesture.cs b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/TransformGesture.cs new file mode 100644 index 000000000..827792c94 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/TransformGesture.cs @@ -0,0 +1,392 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Gestures.TransformGestures.Base; +using TouchScript.Layers; +using TouchScript.Utils; +using TouchScript.Pointers; +using UnityEngine.Profiling; + +#if TOUCHSCRIPT_DEBUG +using TouchScript.Debugging.GL; +#endif +using UnityEngine; + +namespace TouchScript.Gestures.TransformGestures +{ + /// + /// Recognizes a transform gesture, i.e. translation, rotation, scaling or a combination of these. + /// + [AddComponentMenu("TouchScript/Gestures/Transform Gesture")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Gestures_TransformGestures_TransformGesture.htm")] + public class TransformGesture : TwoPointTransformGestureBase + { + #region Constants + + /// + /// Types of transformation. + /// + [Flags] + public enum TransformType + { + /// + /// No transform. + /// + None = 0, + + /// + /// Translation. + /// + Translation = 0x1, + + /// + /// Rotation. + /// + Rotation = 0x2, + + /// + /// Scaling. + /// + Scaling = 0x4 + } + + /// + /// Transform's projection type. + /// + public enum ProjectionType + { + /// + /// Use a plane with normal vector defined by layer. + /// + Layer, + + /// + /// Use a plane with certain normal vector in local coordinates. + /// + Object, + + /// + /// Use a plane with certain normal vector in global coordinates. + /// + Global, + } + + #endregion + + #region Public properties + + /// + /// Gets or sets transform's projection type. + /// + /// Projection type. + public ProjectionType Projection + { + get { return projection; } + set + { + if (projection == value) return; + projection = value; + if (Application.isPlaying) updateProjectionPlane(); + } + } + + /// + /// Gets or sets transform's projection plane normal. + /// + /// Projection plane normal. + public Vector3 ProjectionPlaneNormal + { + get + { + if (projection == ProjectionType.Layer) return projectionLayer.WorldProjectionNormal; + return projectionPlaneNormal; + } + set + { + if (projection == ProjectionType.Layer) projection = ProjectionType.Object; + value.Normalize(); + if (projectionPlaneNormal == value) return; + projectionPlaneNormal = value; + if (Application.isPlaying) updateProjectionPlane(); + } + } + + /// + /// Plane where transformation occured. + /// + public Plane TransformPlane + { + get { return transformPlane; } + } + + /// + /// Gets delta position in local coordinates. + /// + /// Delta position between this frame and the last frame in local coordinates. + public Vector3 LocalDeltaPosition + { + get { return TransformUtils.GlobalToLocalVector(cachedTransform, DeltaPosition); } + } + + #endregion + + #region Private variables + + [SerializeField] + private bool projectionProps; // Used in the custom inspector + + [SerializeField] + private ProjectionType projection = ProjectionType.Layer; + + [SerializeField] + private Vector3 projectionPlaneNormal = Vector3.forward; + + private TouchLayer projectionLayer; + private Plane transformPlane; + +#if UNITY_5_6_OR_NEWER + private CustomSampler gestureSampler; +#endif + + #endregion + + #region Public methods + + #endregion + + #region Unity methods + + /// + protected override void Awake() + { + base.Awake(); + + transformPlane = new Plane(); +#if UNITY_5_6_OR_NEWER + gestureSampler = CustomSampler.Create("[TouchScript] Transform Gesture"); +#endif + } + + /// + protected override void OnEnable() + { + base.OnEnable(); + + updateProjectionPlane(); + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Gesture callbacks + + /// + protected override void pointersPressed(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersPressed(pointers); + + if (NumPointers == pointers.Count) + { + projectionLayer = activePointers[0].GetPressData().Layer; + updateProjectionPlane(); + } + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + +#if UNITY_5_6_OR_NEWER + /// + protected override void pointersUpdated(IList pointers) + { + gestureSampler.Begin(); + + base.pointersUpdated(pointers); + + gestureSampler.End(); + } +#endif + + /// + protected override void pointersReleased(IList pointers) + { +#if UNITY_5_6_OR_NEWER + gestureSampler.Begin(); +#endif + + base.pointersReleased(pointers); + +#if TOUCHSCRIPT_DEBUG + if (getNumPoints() == 0) clearDebug(); + else drawDebugDelayed(getNumPoints()); +#endif + +#if UNITY_5_6_OR_NEWER + gestureSampler.End(); +#endif + } + + + #endregion + + #region Protected methods + + /// + /// Projects the point which was scaled and rotated. + /// + /// The point. + /// Delta rotation. + /// Delta scale. + /// The projection parameters. + /// + protected Vector3 projectScaledRotated(Vector2 point, float dR, float dS, ProjectionParams projectionParams) + { + var center = targetPositionOverridden ? targetPosition : cachedTransform.position; + var delta = projectionParams.ProjectTo(point, transformPlane) - center; + if (dR != 0) delta = Quaternion.AngleAxis(dR, RotationAxis) * delta; + if (dS != 0) delta = delta * dS; + return center + delta; + } + + /// + protected override float doRotation(Vector2 oldScreenPos1, Vector2 oldScreenPos2, Vector2 newScreenPos1, + Vector2 newScreenPos2, ProjectionParams projectionParams) + { + var newVector = projectionParams.ProjectTo(newScreenPos2, TransformPlane) - + projectionParams.ProjectTo(newScreenPos1, TransformPlane); + var oldVector = projectionParams.ProjectTo(oldScreenPos2, TransformPlane) - + projectionParams.ProjectTo(oldScreenPos1, TransformPlane); + var angle = Vector3.Angle(oldVector, newVector); + if (Vector3.Dot(Vector3.Cross(oldVector, newVector), TransformPlane.normal) < 0) + angle = -angle; + return angle; + } + + /// + protected override float doScaling(Vector2 oldScreenPos1, Vector2 oldScreenPos2, Vector2 newScreenPos1, + Vector2 newScreenPos2, ProjectionParams projectionParams) + { + var newVector = projectionParams.ProjectTo(newScreenPos2, TransformPlane) - + projectionParams.ProjectTo(newScreenPos1, TransformPlane); + var oldVector = projectionParams.ProjectTo(oldScreenPos2, TransformPlane) - + projectionParams.ProjectTo(oldScreenPos1, TransformPlane); + return newVector.magnitude / oldVector.magnitude; + } + + /// + protected override Vector3 doOnePointTranslation(Vector2 oldScreenPos, Vector2 newScreenPos, + ProjectionParams projectionParams) + { + if (isTransforming) + { + return projectionParams.ProjectTo(newScreenPos, TransformPlane) - + projectionParams.ProjectTo(oldScreenPos, TransformPlane); + } + + screenPixelTranslationBuffer += newScreenPos - oldScreenPos; + if (screenPixelTranslationBuffer.sqrMagnitude > screenTransformPixelThresholdSquared) + { + isTransforming = true; + return projectionParams.ProjectTo(newScreenPos, TransformPlane) - + projectionParams.ProjectTo(newScreenPos - screenPixelTranslationBuffer, TransformPlane); + } + + return Vector3.zero; + } + + /// + protected override Vector3 doTwoPointTranslation(Vector2 oldScreenPos1, Vector2 oldScreenPos2, + Vector2 newScreenPos1, Vector2 newScreenPos2, float dR, float dS, ProjectionParams projectionParams) + { + if (isTransforming) + { + return projectionParams.ProjectTo(newScreenPos1, TransformPlane) - projectScaledRotated(oldScreenPos1, dR, dS, projectionParams); + } + + screenPixelTranslationBuffer += newScreenPos1 - oldScreenPos1; + if (screenPixelTranslationBuffer.sqrMagnitude > screenTransformPixelThresholdSquared) + { + isTransforming = true; + return projectionParams.ProjectTo(newScreenPos1, TransformPlane) - + projectScaledRotated(newScreenPos1 - screenPixelTranslationBuffer, dR, dS, projectionParams); + } + + return Vector3.zero; + } + +#if TOUCHSCRIPT_DEBUG + protected override void clearDebug() + { + base.clearDebug(); + + GLDebug.RemoveFigure(debugID + 3); + } + + protected override void drawDebug(int pointers) + { + base.drawDebug(pointers); + + if (!DebugMode) return; + switch (pointers) + { + case 1: + if (projection == ProjectionType.Global || projection == ProjectionType.Object) + { + GLDebug.DrawPlaneWithNormal(debugID + 3, cachedTransform.position, RotationAxis, 4f, GLDebug.MULTIPLY, float.PositiveInfinity); + } + break; + default: + if (projection == ProjectionType.Global || projection == ProjectionType.Object) + { + GLDebug.DrawPlaneWithNormal(debugID + 3, cachedTransform.position, RotationAxis, 4f, GLDebug.MULTIPLY, float.PositiveInfinity); + } + break; + } + } +#endif + + #endregion + + #region Private functions + + /// + /// Updates projection plane based on options set. + /// + private void updateProjectionPlane() + { + if (!Application.isPlaying) return; + + switch (projection) + { + case ProjectionType.Layer: + if (projectionLayer == null) + transformPlane = new Plane(cachedTransform.TransformDirection(Vector3.forward), cachedTransform.position); + else transformPlane = new Plane(projectionLayer.WorldProjectionNormal, cachedTransform.position); + break; + case ProjectionType.Object: + transformPlane = new Plane(cachedTransform.TransformDirection(projectionPlaneNormal), cachedTransform.position); + break; + case ProjectionType.Global: + transformPlane = new Plane(projectionPlaneNormal, cachedTransform.position); + break; + } + + rotationAxis = transformPlane.normal; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/TransformGesture.cs.meta b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/TransformGesture.cs.meta new file mode 100644 index 000000000..1c3c80e0d --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Gestures/TransformGestures/TransformGesture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 11ea9930ecb674732bee27116520fad8 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Hit.meta b/Source/Assets/TouchScript/Scripts/Hit.meta new file mode 100644 index 000000000..9df19be8c --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Hit.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 362f9481ac5bc4c2eb77c28a6c1393e7 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Hit/HitData.cs b/Source/Assets/TouchScript/Scripts/Hit/HitData.cs new file mode 100644 index 000000000..a94e36171 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Hit/HitData.cs @@ -0,0 +1,318 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Layers; +using UnityEngine; + +namespace TouchScript.Hit +{ + /// + /// An object representing a point hit by a pointer in 3D, 2D or UI space. + /// + public struct HitData + { + #region Consts + + /// + /// Type of hit + /// + [Flags] + public enum HitType + { + /// + /// An unknown hit. + /// + Unknown, + + /// + /// Nothing hit, but some object grabbed the pointer. + /// + Screen, + + /// + /// 3D hit. + /// + World3D, + + /// + /// 2D hit. + /// + World2D, + + /// + /// UI hit. + /// + UI + } + + #endregion + + #region Public properties + + /// + /// Gets the type of the hit. + /// + /// The type. + public HitType Type + { + get { return type; } + } + + /// + /// Gets target Target the hit. + /// + /// Hit Target. + public Transform Target + { + get { return target; } + } + + /// + /// Gets the layer which detected the hit. + /// + /// Hit layer. + public TouchLayer Layer + { + get { return layer; } + } + + /// + /// Gets raycast hit object for a 3D hit. + /// + /// Raycast hit object. + public RaycastHit RaycastHit + { + get { return raycastHit; } + } + + /// + /// Gets 2D raycast hit object for a 2D hit. + /// + /// 2D raycast hit object. + public RaycastHit2D RaycastHit2D + { + get { return raycastHit2D; } + } + + /// + /// Gets raycast hit for a UI hit. + /// + /// UI raycast hit object. + public RaycastHitUI RaycastHitUI + { + get { return raycastHitUI; } + } + + /// + /// Indicates if this is a Screen Space hit. + /// + public bool ScreenSpace + { + get { return screenSpace; } + } + + /// + /// Gets the point in 3D where raycast hit the object. + /// + /// Point in 3D. + public Vector3 Point + { + get + { + switch (type) + { + case HitType.World3D: + return raycastHit.point; + case HitType.World2D: + return raycastHit2D.point; + case HitType.UI: + return raycastHitUI.WorldPosition; + } + return Vector3.zero; + } + } + + /// + /// Gets the normal at the point in 3D wher eraycast hit the object. + /// + /// Normal vector. + public Vector3 Normal + { + get + { + switch (type) + { + case HitType.World3D: + return raycastHit.normal; + case HitType.World2D: + return raycastHit2D.normal; + case HitType.UI: + return raycastHitUI.WorldNormal; + } + return Vector3.forward; + } + } + + /// + /// Distance to the hit point. + /// + public float Distance + { + get + { + switch (type) + { + case HitType.World3D: + return raycastHit.distance; + case HitType.World2D: + return raycastHit2D.distance; + case HitType.UI: + return raycastHitUI.Distance; + } + return 0f; + } + } + + /// + /// Sorting layer of the hit target. + /// + public int SortingLayer + { + get + { + switch (type) + { + case HitType.World3D: + return 0; + case HitType.World2D: + if (sortingLayer == -1) updateSortingValues(); + return sortingLayer; + case HitType.UI: + return raycastHitUI.SortingLayer; + } + return 0; + } + } + + /// + /// Sorting order of the hit target. + /// + public int SortingOrder + { + get + { + switch (type) + { + case HitType.World3D: + return 0; + case HitType.World2D: + if (sortingLayer == -1) updateSortingValues(); + return sortingOrder; + case HitType.UI: + return raycastHitUI.SortingOrder; + } + return 0; + } + } + + #endregion + + #region Private variables + + private HitType type; + private Transform target; + private bool screenSpace; + private TouchLayer layer; + private RaycastHit raycastHit; + private RaycastHit2D raycastHit2D; + private RaycastHitUI raycastHitUI; + + private int sortingLayer; + private int sortingOrder; + + #endregion + + #region Constructors + + /// + /// Initializes a new instance of the struct. + /// + /// Target Target. + /// Touch layer this hit came from. + /// If the hit is screenspace UI. + public HitData(Transform target, TouchLayer layer, bool screenSpace = false) + { + this.target = target; + this.layer = layer; + this.screenSpace = screenSpace; + + sortingLayer = -1; + sortingOrder = -1; + raycastHit = default(RaycastHit); + raycastHit2D = default(RaycastHit2D); + raycastHitUI = default(RaycastHitUI); + type = HitType.Screen; + } + + /// + /// Initializes a new instance of the struct from a 3D raycast. + /// + /// 3D raycast value. + /// Touch layer this hit came from. + /// If the hit is screenspace UI. + public HitData(RaycastHit value, TouchLayer layer, bool screenSpace = false) : this(value.collider.transform, layer, screenSpace) + { + raycastHit = value; + type = HitType.World3D; + } + + /// + /// Initializes a new instance of the struct from a 2D raycast. + /// + /// 2D raycast value. + /// Touch layer this hit came from. + /// If the hit is screenspace UI. + public HitData(RaycastHit2D value, TouchLayer layer, bool screenSpace = false) : + this(value.collider.transform, layer, screenSpace) + { + raycastHit2D = value; + type = HitType.World2D; + } + + /// + /// Initializes a new instance of the struct from a UI raycast. + /// + /// UI raycast value. + /// Touch layer this hit came from. + /// If the hit is screenspace UI. + public HitData(RaycastHitUI value, TouchLayer layer, bool screenSpace = false) : + this(value.Target, layer, screenSpace) + { + raycastHitUI = value; + type = HitType.UI; + } + + #endregion + + #region Private functions + + private void updateSortingValues() + { + var sprite = target.GetComponent(); + if (sprite == null) + { + sortingLayer = 0; + sortingOrder = 0; + } + else + { + sortingLayer = sprite.sortingLayerID; + sortingOrder = sprite.sortingOrder; + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Hit/HitData.cs.meta b/Source/Assets/TouchScript/Scripts/Hit/HitData.cs.meta new file mode 100644 index 000000000..475bef7da --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Hit/HitData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a3a11ca7be7f64a2c9019ae54cf6ef7e +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Hit/HitTest.cs b/Source/Assets/TouchScript/Scripts/Hit/HitTest.cs new file mode 100644 index 000000000..b9092dea7 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Hit/HitTest.cs @@ -0,0 +1,59 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Hit +{ + + /// + /// Result of a check to find if a hit object should recieve this pointer or not. + /// + public enum HitResult + { + /// + /// This is a hit, object should recieve pointer. + /// + Hit = 1, + + /// + /// Object should not recieve pointer. + /// + Miss = 2, + + /// + /// Object should not recieve pointer and this pointer should be discarded and not tested with any other object. + /// + Discard = 3 + } + + /// + /// Base class for all hit test handlers. + /// + public abstract class HitTest : MonoBehaviour + { + + #region Public methods + + /// + /// Determines whether a pointer hit the object. + /// + /// Pointer to raycast. + /// Data from a raycast. + /// if pointer hits the object, if it doesn't, if it doesn't and this pointer must be ignored, Error otherwise. + public virtual HitResult IsHit(IPointer pointer, HitData hit) + { + return HitResult.Hit; + } + + #endregion + + #region Unity methods + + private void OnEnable() {} + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Hit/HitTest.cs.meta b/Source/Assets/TouchScript/Scripts/Hit/HitTest.cs.meta new file mode 100644 index 000000000..db4ab210f --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Hit/HitTest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 62e76638558b342029565ee320e70d0a +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Hit/RaycastHitUI.cs b/Source/Assets/TouchScript/Scripts/Hit/RaycastHitUI.cs new file mode 100644 index 000000000..970e8a532 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Hit/RaycastHitUI.cs @@ -0,0 +1,25 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace TouchScript.Hit +{ + /// + public struct RaycastHitUI + { + public Transform Target; + public BaseRaycaster Raycaster; + public int GraphicIndex; + public int Depth; + public int SortingLayer; + public int SortingOrder; + public Graphic Graphic; + public Vector3 WorldPosition; + public Vector3 WorldNormal; + public float Distance; + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Hit/RaycastHitUI.cs.meta b/Source/Assets/TouchScript/Scripts/Hit/RaycastHitUI.cs.meta new file mode 100644 index 000000000..398052d5e --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Hit/RaycastHitUI.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3342b71bedf9249f3bd60e73830ed1bf +timeCreated: 1470754412 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Hit/Untouchable.cs b/Source/Assets/TouchScript/Scripts/Hit/Untouchable.cs new file mode 100644 index 000000000..dcb0c1a30 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Hit/Untouchable.cs @@ -0,0 +1,37 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Hit +{ + /// + /// Makes an object it is attached to untouchable, i.e. it completely ignores all pointers landing on it. + /// + [AddComponentMenu("TouchScript/Behaviors/Untouchable")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Hit_Untouchable.htm")] + public class Untouchable : HitTest + { + #region Public properties + + /// + /// Indicates if instead of not reacting to pointers the object should completely discard them making it impossible for other gestures to receive them. + /// + /// If true pointers are not only prevented but discarded making it impossible for other gestures to receive them. + public bool DiscardPointer = false; + + #endregion + + #region Public methods + + /// + public override HitResult IsHit(IPointer pointer, HitData hit) + { + return DiscardPointer ? HitResult.Discard : HitResult.Miss; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Hit/Untouchable.cs.meta b/Source/Assets/TouchScript/Scripts/Hit/Untouchable.cs.meta new file mode 100644 index 000000000..b398265ad --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Hit/Untouchable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6abaac731b6e14e959374e05265230da +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/IDebuggable.cs b/Source/Assets/TouchScript/Scripts/IDebuggable.cs new file mode 100644 index 000000000..d8d126fa4 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/IDebuggable.cs @@ -0,0 +1,17 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +namespace TouchScript +{ + /// + /// An interface for objects which can expose some kind of debug information which can be turned on and off. + /// + public interface IDebuggable + { + /// + /// Gets or sets if this object should show its debug information. + /// + bool DebugMode { get; set; } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/IDebuggable.cs.meta b/Source/Assets/TouchScript/Scripts/IDebuggable.cs.meta new file mode 100644 index 000000000..2a5eb7ccb --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/IDebuggable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0bfadf6252f6646569883eef35215aa5 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/IGestureManager.cs b/Source/Assets/TouchScript/Scripts/IGestureManager.cs new file mode 100644 index 000000000..9dbb6d326 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/IGestureManager.cs @@ -0,0 +1,18 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +namespace TouchScript +{ + /// + /// Core manager which controls gesture recognition in hierarchy. + /// + public interface IGestureManager + { + /// + /// Gets or sets the global gesture delegate. + /// + /// Gesture delegate. + IGestureDelegate GlobalGestureDelegate { get; set; } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/IGestureManager.cs.meta b/Source/Assets/TouchScript/Scripts/IGestureManager.cs.meta new file mode 100644 index 000000000..78259496d --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/IGestureManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4bc7bfe2c28cf4040a48b710a0efe97e +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/ILayerManager.cs b/Source/Assets/TouchScript/Scripts/ILayerManager.cs new file mode 100644 index 000000000..cf9b50b5c --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/ILayerManager.cs @@ -0,0 +1,107 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Hit; +using TouchScript.Layers; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript +{ + /// + /// Core manager which controls TouchLayers. + /// + public interface ILayerManager + { + /// + /// Gets the list of . + /// + /// A sorted list of currently active layers. + IList Layers { get; } + + /// + /// Gets the number of active layers. + /// + /// The number of active layers. + int LayerCount { get; } + + /// + /// Indicates whether there are currently any exclusive transforms. + /// + /// + /// true if any exclusive transforms are registered; otherwise, false. + /// + /// + /// + bool HasExclusive { get; } + + /// + /// Adds a layer in a specific position. + /// + /// The layer to add. + /// Layer index to add the layer to or -1 to add to the end of the list. + /// if set to true move the layer to another index if it is already added; don't move otherwise. + /// + /// True if the layer was added. + /// + bool AddLayer(TouchLayer layer, int index = -1, bool addIfExists = true); + + /// + /// Removes a layer. + /// + /// The layer to remove. + /// True if the layer was removed. + bool RemoveLayer(TouchLayer layer); + + /// + /// Swaps layers. + /// + /// Layer index 1. + /// Layer index 2. + void ChangeLayerIndex(int at, int to); + + /// + /// Executes an action over all layers in order. + /// + /// The action to execute. If it returns true, execution stops. + void ForEach(Func action); + + /// + /// Detects if the pointer hits any object in the scene. + /// + /// The pointer. + /// Hit structure to fill on success. + /// True if any object is hit. + bool GetHitTarget(IPointer pointer, out HitData hit); + + /// + /// Sets the exclusive transform. Only exclusive transforms will be able to receive pointers. + /// + /// The exclusive transform. + /// if set to true target's children will also be added. + void SetExclusive(Transform target, bool includeChildren = false); + + /// + /// Sets the exclusive transforms. Only exclusive transforms will be able to receive pointers. + /// + /// The exclusive transforms to set. + void SetExclusive(IEnumerable targets); + + /// + /// Determines whether the specified target is exclusive. + /// + /// The target. + /// + /// true if the specified target is exclusive; otherwise, false. + /// + bool IsExclusive(Transform target); + + /// + /// Clears the exclusive transforms list. + /// + void ClearExclusive(); + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/ILayerManager.cs.meta b/Source/Assets/TouchScript/Scripts/ILayerManager.cs.meta new file mode 100644 index 000000000..c13ed3987 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/ILayerManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2be5f17d5476d2e4a98d02449616ff1e +timeCreated: 1500755913 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/ITouchManager.cs b/Source/Assets/TouchScript/Scripts/ITouchManager.cs new file mode 100644 index 000000000..375a859c4 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/ITouchManager.cs @@ -0,0 +1,215 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Devices.Display; +using TouchScript.InputSources; +using TouchScript.Layers; +using TouchScript.Pointers; + +namespace TouchScript +{ + /// + /// Core manager of all pointer input in TouchScript. It is responsible for assigning unique pointer ids and keeping the list of active pointers. Controls pointer frames and dispatches pointer events. + /// + /// + /// Every frame pointer events are dispatched in this order: + /// + /// FrameStarted + /// PointersAdded + /// PointersUpdated + /// PointersPressed + /// PointersReleased + /// PointersRemoved + /// PointersCancelled + /// FrameFinished + /// + /// FrameStarted and FrameFinished events mark the start and the end of current pointer frame and allow to implement specific logic at these moments. + /// Current instance of an active object implementing can be obtained via . + /// + /// + /// + /// This sample shows how to get TouchManager instance and subscribe to events. + /// + /// TouchManager.Instance.PointersPressed += + /// (sender, args) => { foreach (var pointer in args.Pointers) Debug.Log("Pressed: " + pointer.Id); }; + /// TouchManager.Instance.PointersReleased += + /// (sender, args) => { foreach (var pointer in args.Pointers) Debug.Log("Released: " + pointer.Id); }; + /// + /// + public interface ITouchManager + { + /// + /// Occurs when a new frame is started before all other events. + /// + event EventHandler FrameStarted; + + /// + /// Occurs when a frame is finished. After all other events. + /// + event EventHandler FrameFinished; + + /// + /// Occurs when new hovering pointers are added. + /// + event EventHandler PointersAdded; + + /// + /// Occurs when pointers are updated. + /// + event EventHandler PointersUpdated; + + /// + /// Occurs when pointers touch the surface. + /// + event EventHandler PointersPressed; + + /// + /// Occurs when pointers are released. + /// + event EventHandler PointersReleased; + + /// + /// Occurs when pointers are removed from the system. + /// + event EventHandler PointersRemoved; + + /// + /// Occurs when pointers are cancelled. + /// + event EventHandler PointersCancelled; + + /// + /// Gets or sets current display device. + /// + /// Object which holds properties of current display device, like DPI and others. + IDisplayDevice DisplayDevice { get; set; } + + /// + /// Gets current DPI. + /// + /// Shortcut for . + float DPI { get; } + + /// + /// Indicates if TouchScript should create a for you if no layers present in a scene. + /// + /// true if a CameraLayer should be created on startup; otherwise, false. + /// This is usually a desired behavior but sometimes you would want to turn this off if you are using TouchScript only to get pointer input from some device. + bool ShouldCreateCameraLayer { get; set; } + + /// + /// Gets or sets a value indicating whether a should be created in scene if no inputs present. + /// + /// true if StandardInput should be created; otherwise, false. + /// This is usually a desired behavior but sometimes you would want to turn this off. + bool ShouldCreateStandardInput { get; set; } + + /// + /// Gets the list of + /// + /// A sorted list of input sources. + IList Inputs { get; } + + /// + /// Gets number of pixels in a cm with current DPI. + /// + float DotsPerCentimeter { get; } + + /// + /// Gets number of pointers in the system. + /// + int PointersCount { get; } + + /// + /// Gets the number of pressed pointer in the system. + /// + int PressedPointersCount { get; } + + /// + /// Gets the list of pointers. + /// + /// An unsorted list of all pointers. + IList Pointers { get; } + + /// + /// Gets the list of pressed pointers. + /// + /// An unsorted list of all pointers which were pressed but not released yet. + IList PressedPointers { get; } + + /// + /// Indicates that execution is currently inside a TouchScript Pointer Frame, i.e. before and after events. + /// + /// + /// true if execution is inside a TouchScript Pointer Frame; otherwise, false. + /// + bool IsInsidePointerFrame { get; } + + /// + /// Adds an input source. + /// + /// Input source to add. + /// true if the input source wasn't in the list and was added; false otherwise. + bool AddInput(IInputSource input); + + /// + /// Removes the input. + /// + /// Input source to remove. + /// true if the input source was removed; false otherwise. + bool RemoveInput(IInputSource input); + + /// + /// Cancels a pointer and returns it to the system of need. + /// + /// Pointer id to cancel. + /// If the pointer should be redispatched to the system. + void CancelPointer(int id, bool shouldReturn); + + /// + /// Cancels a pointer. + /// + /// Pointer id to cancel. + void CancelPointer(int id); + + /// + /// Tells TouchScript to update internal state after a resolution change. + /// + void UpdateResolution(); + } + + /// + /// Arguments dispatched with TouchManager events. + /// + public class PointerEventArgs : EventArgs + { + /// + /// Gets list of pointers participating in the event. + /// + /// List of pointers added, changed or removed this frame. + public IList Pointers { get; private set; } + + private static PointerEventArgs instance; + + /// + /// Initializes a new instance of the class. + /// + private PointerEventArgs() {} + + /// + /// Returns cached instance of EventArgs. + /// This cached EventArgs is reused throughout the library not to alocate new ones on every call. + /// + /// A list of pointers for event. + /// Cached EventArgs object. + public static PointerEventArgs GetCachedEventArgs(IList pointers) + { + if (instance == null) instance = new PointerEventArgs(); + instance.Pointers = pointers; + return instance; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/ITouchManager.cs.meta b/Source/Assets/TouchScript/Scripts/ITouchManager.cs.meta new file mode 100644 index 000000000..1679d5c39 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/ITouchManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8ec7e5142e5574b22a7463ed89e960e5 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/InputSources.meta b/Source/Assets/TouchScript/Scripts/InputSources.meta new file mode 100644 index 000000000..6fcbe8ece --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8c2e99dd18ffd4699974c559f6da3aaa +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/InputSources/ICoordinatesRemapper.cs b/Source/Assets/TouchScript/Scripts/InputSources/ICoordinatesRemapper.cs new file mode 100644 index 000000000..2317d4bba --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/ICoordinatesRemapper.cs @@ -0,0 +1,24 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.InputSources +{ + /// + /// An object which changes pointer coordinates coming from an input source. + /// + /// + /// If your input device is not fully aligned with display device you can use a remapper to carefully retarget pointer positions to "calibrate" input with image. + /// + public interface ICoordinatesRemapper + { + /// + /// Remaps pointer input. + /// + /// Original coordinates. + /// Changed coordinates. + Vector2 Remap(Vector2 input); + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/InputSources/ICoordinatesRemapper.cs.meta b/Source/Assets/TouchScript/Scripts/InputSources/ICoordinatesRemapper.cs.meta new file mode 100644 index 000000000..4263fb5f0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/ICoordinatesRemapper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0e3fee45ad636474f888650fb0e2df1b +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/InputSources/IInputSource.cs b/Source/Assets/TouchScript/Scripts/InputSources/IInputSource.cs new file mode 100644 index 000000000..2f60e4b6d --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/IInputSource.cs @@ -0,0 +1,56 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Core; +using TouchScript.Pointers; + +namespace TouchScript.InputSources +{ + /// + /// An object which represents an input source. + /// + /// + /// In TouchScript all pointer points () come from input sources. + /// If you want to feed pointers to the library the best way to do it is to create a custom input source. + /// + public interface IInputSource : INTERNAL_IInputSource + { + /// + /// Gets or sets current coordinates remapper. + /// + /// An object used to change coordinates of pointer points coming from this input source. + ICoordinatesRemapper CoordinatesRemapper { get; set; } + + /// + /// This method is called by to synchronously update the input. + /// + bool UpdateInput(); + + /// + /// Forces the input to update its state when resolution changes. + /// + void UpdateResolution(); + + /// + /// Cancels the pointer. + /// + /// The pointer. + /// if set to true returns the pointer back to the system with different id. + /// True if the pointer belongs to this Input and was successfully cancelled; false otherwise. + bool CancelPointer(Pointer pointer, bool shouldReturn); + } + + /// + /// Internal methods for . DO NOT USE ANY OF THEM! + /// + public interface INTERNAL_IInputSource + { + /// + /// Used by to return a pointer to input source. + /// DO NOT CALL IT DIRECTLY FROM YOUR CODE! + /// + /// The pointer. + void INTERNAL_DiscardPointer(Pointer pointer); + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/InputSources/IInputSource.cs.meta b/Source/Assets/TouchScript/Scripts/InputSources/IInputSource.cs.meta new file mode 100644 index 000000000..41b287ee9 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/IInputSource.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9a563581326e54933b760cdbbec1aa76 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers.meta b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers.meta new file mode 100644 index 000000000..c1c1ca9fd --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d817f4417686e4fa09b6c9ab27f11531 +folderAsset: yes +timeCreated: 1448668275 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/MouseHandler.cs b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/MouseHandler.cs new file mode 100644 index 000000000..9410a5d95 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/MouseHandler.cs @@ -0,0 +1,445 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Pointers; +using TouchScript.Utils; +using UnityEngine; + +namespace TouchScript.InputSources.InputHandlers +{ + /// + /// Unity mouse handling implementation which can be embedded and controlled from other (input) classes. + /// + public class MouseHandler : IInputSource, IDisposable + { + #region Consts + + private enum State + { + /// + /// Only mouse pointer is active + /// + Mouse, + + /// + /// ALT is pressed but mouse isn't + /// + WaitingForFake, + + /// + /// Mouse and fake pointers are moving together after ALT+PRESS + /// + MouseAndFake, + + /// + /// After ALT+RELEASE fake pointer is stationary while mouse can move freely + /// + StationaryFake + } + + #endregion + + #region Public properties + + /// + public ICoordinatesRemapper CoordinatesRemapper { get; set; } + + /// + /// Gets or sets a value indicating whether second pointer emulation using ALT+CLICK should be enabled. + /// + /// + /// true if second pointer emulation is enabled; otherwise, false. + /// + public bool EmulateSecondMousePointer + { + get { return emulateSecondMousePointer; } + set + { + emulateSecondMousePointer = value; + if (fakeMousePointer != null) CancelPointer(fakeMousePointer, false); + } + } + + #endregion + + #region Private variables + + private bool emulateSecondMousePointer = true; + + private PointerDelegate addPointer; + private PointerDelegate updatePointer; + private PointerDelegate pressPointer; + private PointerDelegate releasePointer; + private PointerDelegate removePointer; + private PointerDelegate cancelPointer; + + private State state; + private ObjectPool mousePool; + private MousePointer mousePointer, fakeMousePointer; + private Vector3 mousePointPos = Vector3.zero; + + #endregion + + /// + /// Initializes a new instance of the class. + /// + /// A function called when a new pointer is detected. + /// A function called when a pointer is moved or its parameter is updated. + /// A function called when a pointer touches the surface. + /// A function called when a pointer is lifted off. + /// A function called when a pointer is removed. + /// A function called when a pointer is cancelled. + public MouseHandler(PointerDelegate addPointer, PointerDelegate updatePointer, PointerDelegate pressPointer, PointerDelegate releasePointer, PointerDelegate removePointer, PointerDelegate cancelPointer) + { + this.addPointer = addPointer; + this.updatePointer = updatePointer; + this.pressPointer = pressPointer; + this.releasePointer = releasePointer; + this.removePointer = removePointer; + this.cancelPointer = cancelPointer; + + mousePool = new ObjectPool(4, () => new MousePointer(this), null, resetPointer); + + mousePointPos = Input.mousePosition; + mousePointer = internalAddPointer(remapCoordinates(mousePointPos)); + + stateMouse(); + } + + #region Public methods + + /// + /// Cancels the mouse pointer. + /// + public void CancelMousePointer() + { + if (mousePointer != null) + { + cancelPointer(mousePointer); + mousePointer = null; + } + } + + /// + public bool UpdateInput() + { + var pos = Input.mousePosition; + Vector2 remappedPos = new Vector2(0, 0); + bool updated = false; + + if (mousePointPos != pos) + { + remappedPos = remapCoordinates(new Vector2(pos.x, pos.y)); + + if (mousePointer == null) + { + mousePointer = internalAddPointer(remappedPos); + } + else + { + mousePointer.Position = remappedPos; + updatePointer(mousePointer); + } + updated = true; + } + + if (mousePointer == null) return false; + + var buttons = state == State.MouseAndFake ? fakeMousePointer.Buttons : mousePointer.Buttons; + var newButtons = getMouseButtons(); + var scroll = Input.mouseScrollDelta; + if (!Mathf.Approximately(scroll.sqrMagnitude, 0.0f)) + { + mousePointer.ScrollDelta = scroll; + updatePointer(mousePointer); + } + else + { + mousePointer.ScrollDelta = Vector2.zero; + } + + if (emulateSecondMousePointer) + { + switch (state) + { + case State.Mouse: + if (Input.GetKeyDown(KeyCode.LeftAlt) && !Input.GetKeyUp(KeyCode.LeftAlt) + && ((newButtons & Pointer.PointerButtonState.AnyButtonPressed) == 0)) + { + stateWaitingForFake(); + } + else + { + if (buttons != newButtons) updateButtons(buttons, newButtons); + } + break; + case State.WaitingForFake: + if (Input.GetKey(KeyCode.LeftAlt)) + { + if ((newButtons & Pointer.PointerButtonState.AnyButtonDown) != 0) + { + // A button is down while holding Alt + fakeMousePointer = internalAddPointer(pos, newButtons, mousePointer.Flags | Pointer.FLAG_ARTIFICIAL); + pressPointer(fakeMousePointer); + stateMouseAndFake(); + } + } + else + { + stateMouse(); + } + break; + case State.MouseAndFake: + if (fakeTouchReleased()) + { + stateMouse(); + } + else + { + if (mousePointPos != pos) + { + fakeMousePointer.Position = remappedPos; + updatePointer(fakeMousePointer); + } + if ((newButtons & Pointer.PointerButtonState.AnyButtonPressed) == 0) + { + // All buttons are released, Alt is still holding + stateStationaryFake(); + } + else if (buttons != newButtons) + { + fakeMousePointer.Buttons = newButtons; + updatePointer(fakeMousePointer); + } + } + break; + case State.StationaryFake: + if (buttons != newButtons) updateButtons(buttons, newButtons); + if (fakeTouchReleased()) + { + stateMouse(); + } + break; + } + } + else + { + if (buttons != newButtons) + { + updateButtons(buttons, newButtons); + updated = true; + } + } + + mousePointPos = pos; + return updated; + } + + /// + public void UpdateResolution() + { + TouchManager.Instance.CancelPointer(mousePointer.Id); + } + + /// + public bool CancelPointer(Pointer pointer, bool shouldReturn) + { + if (pointer.Equals(mousePointer)) + { + cancelPointer(mousePointer); + if (shouldReturn) mousePointer = internalReturnPointer(mousePointer); + else mousePointer = internalAddPointer(mousePointer.Position); // can't totally cancel mouse pointer + return true; + } + if (pointer.Equals(fakeMousePointer)) + { + cancelPointer(fakeMousePointer); + if (shouldReturn) fakeMousePointer = internalReturnPointer(fakeMousePointer); + else fakeMousePointer = null; + return true; + } + return false; + } + + /// + /// Releases resources. + /// + public void Dispose() + { + if (mousePointer != null) + { + cancelPointer(mousePointer); + mousePointer = null; + } + if (fakeMousePointer != null) + { + cancelPointer(fakeMousePointer); + fakeMousePointer = null; + } + } + + #endregion + + #region Internal methods + + /// + public void INTERNAL_DiscardPointer(Pointer pointer) + { + var p = pointer as MousePointer; + if (p == null) return; + + mousePool.Release(p); + } + + #endregion + + #region Private functions + + private Pointer.PointerButtonState getMouseButtons() + { + Pointer.PointerButtonState buttons = Pointer.PointerButtonState.Nothing; + + if (Input.GetMouseButton(0)) buttons |= Pointer.PointerButtonState.FirstButtonPressed; + if (Input.GetMouseButtonDown(0)) buttons |= Pointer.PointerButtonState.FirstButtonDown; + if (Input.GetMouseButtonUp(0)) buttons |= Pointer.PointerButtonState.FirstButtonUp; + + if (Input.GetMouseButton(1)) buttons |= Pointer.PointerButtonState.SecondButtonPressed; + if (Input.GetMouseButtonDown(1)) buttons |= Pointer.PointerButtonState.SecondButtonDown; + if (Input.GetMouseButtonUp(1)) buttons |= Pointer.PointerButtonState.SecondButtonUp; + + if (Input.GetMouseButton(2)) buttons |= Pointer.PointerButtonState.ThirdButtonPressed; + if (Input.GetMouseButtonDown(2)) buttons |= Pointer.PointerButtonState.ThirdButtonDown; + if (Input.GetMouseButtonUp(2)) buttons |= Pointer.PointerButtonState.ThirdButtonUp; + + return buttons; + } + + private void updateButtons(Pointer.PointerButtonState oldButtons, Pointer.PointerButtonState newButtons) + { + // pressed something + if (oldButtons == Pointer.PointerButtonState.Nothing) + { + // pressed and released this frame + if ((newButtons & Pointer.PointerButtonState.AnyButtonPressed) == 0) + { + // Add pressed buttons for processing + mousePointer.Buttons = PointerUtils.PressDownButtons(newButtons); + pressPointer(mousePointer); + internalReleaseMousePointer(newButtons); + } + // pressed this frame + else + { + mousePointer.Buttons = newButtons; + pressPointer(mousePointer); + } + } + // released or button state changed + else + { + // released this frame + if ((newButtons & Pointer.PointerButtonState.AnyButtonPressed) == 0) + { + mousePointer.Buttons = newButtons; + internalReleaseMousePointer(newButtons); + } + // button state changed this frame + else + { + mousePointer.Buttons = newButtons; + updatePointer(mousePointer); + } + } + } + + private bool fakeTouchReleased() + { + if (!Input.GetKey(KeyCode.LeftAlt)) + { + // Alt is released, need to kill the fake touch + fakeMousePointer.Buttons = PointerUtils.UpPressedButtons(fakeMousePointer.Buttons); // Convert current pressed buttons to UP + releasePointer(fakeMousePointer); + removePointer(fakeMousePointer); + fakeMousePointer = null; // Will be returned to the pool by INTERNAL_DiscardPointer + return true; + } + return false; + } + + private MousePointer internalAddPointer(Vector2 position, Pointer.PointerButtonState buttons = Pointer.PointerButtonState.Nothing, uint flags = 0) + { + var pointer = mousePool.Get(); + pointer.Position = position; + pointer.Buttons |= buttons; + pointer.Flags |= flags; + addPointer(pointer); + updatePointer(pointer); + return pointer; + } + + private void internalReleaseMousePointer(Pointer.PointerButtonState buttons) + { + mousePointer.Flags &= ~Pointer.FLAG_RETURNED; + releasePointer(mousePointer); + } + + private MousePointer internalReturnPointer(MousePointer pointer) + { + var newPointer = mousePool.Get(); + newPointer.CopyFrom(pointer); + newPointer.Flags |= Pointer.FLAG_RETURNED; + addPointer(newPointer); + if ((newPointer.Buttons & Pointer.PointerButtonState.AnyButtonPressed) != 0) + { + // Adding down state this frame + newPointer.Buttons = PointerUtils.DownPressedButtons(newPointer.Buttons); + pressPointer(newPointer); + } + return newPointer; + } + + private Vector2 remapCoordinates(Vector2 position) + { + if (CoordinatesRemapper != null) return CoordinatesRemapper.Remap(position); + return position; + } + + private void resetPointer(Pointer p) + { + p.INTERNAL_Reset(); + } + + #endregion + + #region State logic + + private void stateMouse() + { + setState(State.Mouse); + } + + private void stateWaitingForFake() + { + setState(State.WaitingForFake); + } + + private void stateMouseAndFake() + { + setState(State.MouseAndFake); + } + + private void stateStationaryFake() + { + setState(State.StationaryFake); + } + + private void setState(State newState) + { + state = newState; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/MouseHandler.cs.meta b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/MouseHandler.cs.meta new file mode 100644 index 000000000..4dbe882ae --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/MouseHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cfa9277d376b648fb9d19bd1007de00e +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/TouchHandler.cs b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/TouchHandler.cs new file mode 100644 index 000000000..d492b6637 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/TouchHandler.cs @@ -0,0 +1,291 @@ +/* + * @author Michael Holub + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Pointers; +using TouchScript.Utils; +using UnityEngine; +using UnityEngine.Profiling; + +namespace TouchScript.InputSources.InputHandlers +{ + /// + /// Unity touch handling implementation which can be embedded and controlled from other (input) classes. + /// + public class TouchHandler : IInputSource, IDisposable + { + #region Public properties + + /// + public ICoordinatesRemapper CoordinatesRemapper { get; set; } + + /// + /// Gets a value indicating whether there any active pointers. + /// + /// true if this instance has active pointers; otherwise, false. + public bool HasPointers + { + get { return pointersNum > 0; } + } + + #endregion + + #region Private variables + + private PointerDelegate addPointer; + private PointerDelegate updatePointer; + private PointerDelegate pressPointer; + private PointerDelegate releasePointer; + private PointerDelegate removePointer; + private PointerDelegate cancelPointer; + + private ObjectPool touchPool; + // Unity fingerId -> TouchScript touch info + private Dictionary systemToInternalId = new Dictionary(10); + private int pointersNum; + +#if UNITY_5_6_OR_NEWER + private CustomSampler updateSampler; +#endif + + #endregion + + /// + /// Initializes a new instance of the class. + /// + /// A function called when a new pointer is detected. + /// A function called when a pointer is moved or its parameter is updated. + /// A function called when a pointer touches the surface. + /// A function called when a pointer is lifted off. + /// A function called when a pointer is removed. + /// A function called when a pointer is cancelled. + public TouchHandler(PointerDelegate addPointer, PointerDelegate updatePointer, PointerDelegate pressPointer, PointerDelegate releasePointer, PointerDelegate removePointer, PointerDelegate cancelPointer) + { + this.addPointer = addPointer; + this.updatePointer = updatePointer; + this.pressPointer = pressPointer; + this.releasePointer = releasePointer; + this.removePointer = removePointer; + this.cancelPointer = cancelPointer; + + touchPool = new ObjectPool(10, () => new TouchPointer(this), null, resetPointer); + touchPool.Name = "Touch"; + +#if UNITY_5_6_OR_NEWER + updateSampler = CustomSampler.Create("[TouchScript] Update touch"); +#endif + } + + #region Public methods + + /// + public bool UpdateInput() + { +#if UNITY_5_6_OR_NEWER + updateSampler.Begin(); +#endif + + for (var i = 0; i < Input.touchCount; ++i) + { + var t = Input.GetTouch(i); + + TouchState touchState; + switch (t.phase) + { + case TouchPhase.Began: + if (systemToInternalId.TryGetValue(t.fingerId, out touchState) && touchState.Phase != TouchPhase.Canceled) + { + // Ending previous touch (missed a frame) + internalRemovePointer(touchState.Pointer); + systemToInternalId[t.fingerId] = new TouchState(internalAddPointer(t.position)); + } + else + { + systemToInternalId.Add(t.fingerId, new TouchState(internalAddPointer(t.position))); + } + break; + case TouchPhase.Moved: + if (systemToInternalId.TryGetValue(t.fingerId, out touchState)) + { + if (touchState.Phase != TouchPhase.Canceled) + { + touchState.Pointer.Position = t.position; + updatePointer(touchState.Pointer); + } + } + else + { + // Missed began phase + systemToInternalId.Add(t.fingerId, new TouchState(internalAddPointer(t.position))); + } + break; + // NOTE: Unity touch on Windows reports Cancelled as Ended + // when a touch goes out of display boundary + case TouchPhase.Ended: + if (systemToInternalId.TryGetValue(t.fingerId, out touchState)) + { + systemToInternalId.Remove(t.fingerId); + if (touchState.Phase != TouchPhase.Canceled) internalRemovePointer(touchState.Pointer); + } + else + { + // Missed one finger begin-end transition + var pointer = internalAddPointer(t.position); + internalRemovePointer(pointer); + } + break; + case TouchPhase.Canceled: + if (systemToInternalId.TryGetValue(t.fingerId, out touchState)) + { + systemToInternalId.Remove(t.fingerId); + if (touchState.Phase != TouchPhase.Canceled) internalCancelPointer(touchState.Pointer); + } + else + { + // Missed one finger begin-end transition + var pointer = internalAddPointer(t.position); + internalCancelPointer(pointer); + } + break; + case TouchPhase.Stationary: + if (systemToInternalId.TryGetValue(t.fingerId, out touchState)) {} + else + { + // Missed begin phase + systemToInternalId.Add(t.fingerId, new TouchState(internalAddPointer(t.position))); + } + break; + } + } + +#if UNITY_5_6_OR_NEWER + updateSampler.End(); +#endif + + return Input.touchCount > 0; + } + + /// + public void UpdateResolution() {} + + /// + public bool CancelPointer(Pointer pointer, bool shouldReturn) + { + var touch = pointer as TouchPointer; + if (touch == null) return false; + + int fingerId = -1; + foreach (var touchState in systemToInternalId) + { + if (touchState.Value.Pointer == touch && touchState.Value.Phase != TouchPhase.Canceled) + { + fingerId = touchState.Key; + break; + } + } + if (fingerId > -1) + { + internalCancelPointer(touch); + if (shouldReturn) systemToInternalId[fingerId] = new TouchState(internalReturnPointer(touch)); + else systemToInternalId[fingerId] = new TouchState(touch, TouchPhase.Canceled); + return true; + } + return false; + } + + /// + /// Releases resources. + /// + public void Dispose() + { + foreach (var touchState in systemToInternalId) + { + if (touchState.Value.Phase != TouchPhase.Canceled) internalCancelPointer(touchState.Value.Pointer); + } + systemToInternalId.Clear(); + } + + #endregion + + #region Internal methods + + /// + public void INTERNAL_DiscardPointer(Pointer pointer) + { + var p = pointer as TouchPointer; + if (p == null) return; + + touchPool.Release(p); + } + + #endregion + + #region Private functions + + private Pointer internalAddPointer(Vector2 position) + { + pointersNum++; + var pointer = touchPool.Get(); + pointer.Position = remapCoordinates(position); + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonDown | Pointer.PointerButtonState.FirstButtonPressed; + addPointer(pointer); + pressPointer(pointer); + return pointer; + } + + private TouchPointer internalReturnPointer(TouchPointer pointer) + { + pointersNum++; + var newPointer = touchPool.Get(); + newPointer.CopyFrom(pointer); + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonDown | Pointer.PointerButtonState.FirstButtonPressed; + newPointer.Flags |= Pointer.FLAG_RETURNED; + addPointer(newPointer); + pressPointer(newPointer); + return newPointer; + } + + private void internalRemovePointer(Pointer pointer) + { + pointersNum--; + pointer.Buttons &= ~Pointer.PointerButtonState.FirstButtonPressed; + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonUp; + releasePointer(pointer); + removePointer(pointer); + } + + private void internalCancelPointer(Pointer pointer) + { + pointersNum--; + cancelPointer(pointer); + } + + private Vector2 remapCoordinates(Vector2 position) + { + if (CoordinatesRemapper != null) return CoordinatesRemapper.Remap(position); + return position; + } + + private void resetPointer(Pointer p) + { + p.INTERNAL_Reset(); + } + + #endregion + + private struct TouchState + { + public Pointer Pointer; + public TouchPhase Phase; + + public TouchState(Pointer pointer, TouchPhase phase = TouchPhase.Began) + { + Pointer = pointer; + Phase = phase; + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/TouchHandler.cs.meta b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/TouchHandler.cs.meta new file mode 100644 index 000000000..f21350de6 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/TouchHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ef91bdfc155504626bc95d7a9fd08679 +timeCreated: 1448668275 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/WindowsPointerHandlers.cs b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/WindowsPointerHandlers.cs new file mode 100644 index 000000000..d8485ca56 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/WindowsPointerHandlers.cs @@ -0,0 +1,750 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + * @author Valentin Frolov + * @author Andrew David Griffiths + */ + +#if UNITY_STANDALONE_WIN + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using TouchScript.Pointers; +using TouchScript.Utils; +using TouchScript.Utils.Platform; +using UnityEngine; + +namespace TouchScript.InputSources.InputHandlers +{ + /// + /// Windows 8 pointer handling implementation which can be embedded to other (input) classes. Uses WindowsTouch.dll to query native touches with WM_TOUCH or WM_POINTER APIs. + /// + public class Windows8PointerHandler : WindowsPointerHandler + { + #region Public properties + + /// + /// Should the primary pointer also dispatch a mouse pointer. + /// + public bool MouseInPointer + { + get { return mouseInPointer; } + set + { + WindowsUtils.EnableMouseInPointer(value); + mouseInPointer = value; + if (mouseInPointer) + { + if (mousePointer == null) mousePointer = internalAddMousePointer(Vector3.zero); + } + else + { + if (mousePointer != null) + { + if ((mousePointer.Buttons & Pointer.PointerButtonState.AnyButtonPressed) != 0) + { + mousePointer.Buttons = PointerUtils.UpPressedButtons(mousePointer.Buttons); + releasePointer(mousePointer); + } + removePointer(mousePointer); + } + } + } + } + + #endregion + + #region Private variables + + private bool mouseInPointer = true; + + #endregion + + #region Constructor + + /// + public Windows8PointerHandler(PointerDelegate addPointer, PointerDelegate updatePointer, PointerDelegate pressPointer, PointerDelegate releasePointer, PointerDelegate removePointer, PointerDelegate cancelPointer) : base(addPointer, updatePointer, pressPointer, releasePointer, removePointer, cancelPointer) + { + mousePool = new ObjectPool(4, () => new MousePointer(this), null, resetPointer); + penPool = new ObjectPool(2, () => new PenPointer(this), null, resetPointer); + + mousePointer = internalAddMousePointer(Vector3.zero); + + init(TOUCH_API.WIN8); + } + + #endregion + + #region Public methods + + /// + public override bool UpdateInput() + { + base.UpdateInput(); + return true; + } + + /// + public override bool CancelPointer(Pointer pointer, bool shouldReturn) + { + if (pointer.Equals(mousePointer)) + { + cancelPointer(mousePointer); + if (shouldReturn) mousePointer = internalReturnMousePointer(mousePointer); + else mousePointer = internalAddMousePointer(pointer.Position); // can't totally cancel mouse pointer + return true; + } + if (pointer.Equals(penPointer)) + { + cancelPointer(penPointer); + if (shouldReturn) penPointer = internalReturnPenPointer(penPointer); + return true; + } + return base.CancelPointer(pointer, shouldReturn); + } + + /// + public override void Dispose() + { + if (mousePointer != null) + { + cancelPointer(mousePointer); + mousePointer = null; + } + if (penPointer != null) + { + cancelPointer(penPointer); + penPointer = null; + } + + WindowsUtils.EnableMouseInPointer(false); + + base.Dispose(); + } + + #endregion + + #region Internal methods + + /// + public override void INTERNAL_DiscardPointer(Pointer pointer) + { + if (pointer is MousePointer) mousePool.Release(pointer as MousePointer); + else if (pointer is PenPointer) penPool.Release(pointer as PenPointer); + else base.INTERNAL_DiscardPointer(pointer); + } + + #endregion + } + + public class Windows7PointerHandler : WindowsPointerHandler + { + /// + public Windows7PointerHandler(PointerDelegate addPointer, PointerDelegate updatePointer, PointerDelegate pressPointer, PointerDelegate releasePointer, PointerDelegate removePointer, PointerDelegate cancelPointer) : base(addPointer, updatePointer, pressPointer, releasePointer, removePointer, cancelPointer) + { + init(TOUCH_API.WIN7); + } + + #region Public methods + + /// + public override bool UpdateInput() + { + base.UpdateInput(); + return winTouchToInternalId.Count > 0; + } + + #endregion + } + + /// + /// Base class for Windows 8 and Windows 7 input handlers. + /// + public abstract class WindowsPointerHandler : IInputSource, IDisposable + { + #region Consts + + /// + /// Windows constant to turn off press and hold visual effect. + /// + public const string PRESS_AND_HOLD_ATOM = "MicrosoftTabletPenServiceProperty"; + + /// + /// The method delegate used to pass data from the native DLL. + /// + /// Pointer id. + /// Current event. + /// Pointer type. + /// Pointer position. + /// Pointer data. + protected delegate void NativePointerDelegate(int id, PointerEvent evt, PointerType type, Vector2 position, PointerData data); + + /// + /// The method delegate used to pass log messages from the native DLL. + /// + /// The log message. + protected delegate void NativeLog([MarshalAs(UnmanagedType.BStr)] string log); + + #endregion + + #region Public properties + + /// + public ICoordinatesRemapper CoordinatesRemapper { get; set; } + + #endregion + + #region Private variables + + private NativePointerDelegate nativePointerDelegate; + private NativeLog nativeLogDelegate; + + protected PointerDelegate addPointer; + protected PointerDelegate updatePointer; + protected PointerDelegate pressPointer; + protected PointerDelegate releasePointer; + protected PointerDelegate removePointer; + protected PointerDelegate cancelPointer; + + protected IntPtr hMainWindow; + protected ushort pressAndHoldAtomID; + protected Dictionary winTouchToInternalId = new Dictionary(10); + + protected ObjectPool touchPool; + protected ObjectPool mousePool; + protected ObjectPool penPool; + protected MousePointer mousePointer; + protected PenPointer penPointer; + + #endregion + + #region Constructor + + /// + /// Initializes a new instance of the class. + /// + /// A function called when a new pointer is detected. + /// A function called when a pointer is moved or its parameter is updated. + /// A function called when a pointer touches the surface. + /// A function called when a pointer is lifted off. + /// A function called when a pointer is removed. + /// A function called when a pointer is cancelled. + public WindowsPointerHandler(PointerDelegate addPointer, PointerDelegate updatePointer, PointerDelegate pressPointer, PointerDelegate releasePointer, PointerDelegate removePointer, PointerDelegate cancelPointer) + { + this.addPointer = addPointer; + this.updatePointer = updatePointer; + this.pressPointer = pressPointer; + this.releasePointer = releasePointer; + this.removePointer = removePointer; + this.cancelPointer = cancelPointer; + + nativeLogDelegate = nativeLog; + nativePointerDelegate = nativePointer; + + touchPool = new ObjectPool(10, () => new TouchPointer(this), null, resetPointer); + + hMainWindow = WindowsUtils.GetActiveWindow(); + disablePressAndHold(); + setScaling(); + } + + #endregion + + #region Public methods + + /// + public virtual bool UpdateInput() + { + return false; + } + + /// + public virtual void UpdateResolution() + { + setScaling(); + if (mousePointer != null) TouchManager.Instance.CancelPointer(mousePointer.Id); + } + + /// + public virtual bool CancelPointer(Pointer pointer, bool shouldReturn) + { + var touch = pointer as TouchPointer; + if (touch == null) return false; + + int internalTouchId = -1; + foreach (var t in winTouchToInternalId) + { + if (t.Value == touch) + { + internalTouchId = t.Key; + break; + } + } + if (internalTouchId > -1) + { + cancelPointer(touch); + winTouchToInternalId.Remove(internalTouchId); + if (shouldReturn) winTouchToInternalId[internalTouchId] = internalReturnTouchPointer(touch); + return true; + } + return false; + } + + /// + /// Releases resources. + /// + public virtual void Dispose() + { + foreach (var i in winTouchToInternalId) cancelPointer(i.Value); + winTouchToInternalId.Clear(); + + enablePressAndHold(); + DisposePlugin(); + } + + #endregion + + #region Internal methods + + /// + public virtual void INTERNAL_DiscardPointer(Pointer pointer) + { + var p = pointer as TouchPointer; + if (p == null) return; + + touchPool.Release(p); + } + + #endregion + + #region Protected methods + + protected TouchPointer internalAddTouchPointer(Vector2 position) + { + var pointer = touchPool.Get(); + pointer.Position = remapCoordinates(position); + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonDown | Pointer.PointerButtonState.FirstButtonPressed; + addPointer(pointer); + pressPointer(pointer); + return pointer; + } + + protected TouchPointer internalReturnTouchPointer(TouchPointer pointer) + { + var newPointer = touchPool.Get(); + newPointer.CopyFrom(pointer); + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonDown | Pointer.PointerButtonState.FirstButtonPressed; + newPointer.Flags |= Pointer.FLAG_RETURNED; + addPointer(newPointer); + pressPointer(newPointer); + return newPointer; + } + + protected void internalRemoveTouchPointer(TouchPointer pointer) + { + pointer.Buttons &= ~Pointer.PointerButtonState.FirstButtonPressed; + pointer.Buttons |= Pointer.PointerButtonState.FirstButtonUp; + releasePointer(pointer); + removePointer(pointer); + } + + protected MousePointer internalAddMousePointer(Vector2 position) + { + var pointer = mousePool.Get(); + pointer.Position = remapCoordinates(position); + addPointer(pointer); + return pointer; + } + + protected MousePointer internalReturnMousePointer(MousePointer pointer) + { + var newPointer = mousePool.Get(); + newPointer.CopyFrom(pointer); + newPointer.Flags |= Pointer.FLAG_RETURNED; + addPointer(newPointer); + if ((newPointer.Buttons & Pointer.PointerButtonState.AnyButtonPressed) != 0) + { + // Adding down state this frame + newPointer.Buttons = PointerUtils.DownPressedButtons(newPointer.Buttons); + pressPointer(newPointer); + } + return newPointer; + } + + protected PenPointer internalAddPenPointer(Vector2 position) + { + if (penPointer != null) throw new InvalidOperationException("One pen pointer is already registered! Trying to add another one."); + var pointer = penPool.Get(); + pointer.Position = remapCoordinates(position); + addPointer(pointer); + return pointer; + } + + protected void internalRemovePenPointer(PenPointer pointer) + { + removePointer(pointer); + penPointer = null; + } + + protected PenPointer internalReturnPenPointer(PenPointer pointer) + { + var newPointer = penPool.Get(); + newPointer.CopyFrom(pointer); + newPointer.Flags |= Pointer.FLAG_RETURNED; + addPointer(newPointer); + if ((newPointer.Buttons & Pointer.PointerButtonState.AnyButtonPressed) != 0) + { + // Adding down state this frame + newPointer.Buttons = PointerUtils.DownPressedButtons(newPointer.Buttons); + pressPointer(newPointer); + } + return newPointer; + } + + protected void init(TOUCH_API api) + { + Init(api, nativeLogDelegate, nativePointerDelegate); + } + + protected Vector2 remapCoordinates(Vector2 position) + { + if (CoordinatesRemapper != null) return CoordinatesRemapper.Remap(position); + return position; + } + + protected void resetPointer(Pointer p) + { + p.INTERNAL_Reset(); + } + + #endregion + + #region Private functions + + private void disablePressAndHold() + { + // https://msdn.microsoft.com/en-us/library/bb969148(v=vs.85).aspx + pressAndHoldAtomID = WindowsUtils.GlobalAddAtom(PRESS_AND_HOLD_ATOM); + WindowsUtils.SetProp(hMainWindow, PRESS_AND_HOLD_ATOM, + WindowsUtils.TABLET_DISABLE_PRESSANDHOLD | // disables press and hold (right-click) gesture + WindowsUtils.TABLET_DISABLE_PENTAPFEEDBACK | // disables UI feedback on pen up (waves) + WindowsUtils.TABLET_DISABLE_PENBARRELFEEDBACK | // disables UI feedback on pen button down (circle) + WindowsUtils.TABLET_DISABLE_FLICKS // disables pen flicks (back, forward, drag down, drag up); + ); + } + + private void enablePressAndHold() + { + if (pressAndHoldAtomID != 0) + { + WindowsUtils.RemoveProp(hMainWindow, PRESS_AND_HOLD_ATOM); + WindowsUtils.GlobalDeleteAtom(pressAndHoldAtomID); + } + } + + private void setScaling() + { + var screenWidth = Screen.width; + var screenHeight = Screen.height; + + if (!Screen.fullScreen) + { + SetScreenParams(screenWidth, screenHeight, 0, 0, 1, 1); + return; + } + + int width, height; + WindowsUtils.GetNativeMonitorResolution(out width, out height); + float scale = Mathf.Max(screenWidth / ((float) width), screenHeight / ((float) height)); + SetScreenParams(screenWidth, screenHeight, (width - screenWidth / scale) * .5f, (height - screenHeight / scale) * .5f, scale, scale); + } + + #endregion + + #region Pointer callbacks + + private void nativeLog(string log) + { + Debug.Log("[WindowsTouch.dll]: " + log); + } + + private void nativePointer(int id, PointerEvent evt, PointerType type, Vector2 position, PointerData data) + { + switch (type) + { + case PointerType.Mouse: + switch (evt) + { + // Enter and Exit are not used - mouse is always present + // TODO: how does it work with 2+ mice? + case PointerEvent.Enter: + throw new NotImplementedException("This is not supposed to be called o.O"); + case PointerEvent.Leave: + break; + case PointerEvent.Down: + mousePointer.Buttons = updateButtons(mousePointer.Buttons, data.PointerFlags, data.ChangedButtons); + pressPointer(mousePointer); + break; + case PointerEvent.Up: + mousePointer.Buttons = updateButtons(mousePointer.Buttons, data.PointerFlags, data.ChangedButtons); + releasePointer(mousePointer); + break; + case PointerEvent.Update: + mousePointer.Position = position; + mousePointer.Buttons = updateButtons(mousePointer.Buttons, data.PointerFlags, data.ChangedButtons); + updatePointer(mousePointer); + break; + case PointerEvent.Cancelled: + cancelPointer(mousePointer); + // can't cancel the mouse pointer, it is always present + mousePointer = internalAddMousePointer(mousePointer.Position); + break; + } + break; + case PointerType.Touch: + TouchPointer touchPointer; + switch (evt) + { + case PointerEvent.Enter: + break; + case PointerEvent.Leave: + // Sometimes Windows might not send Up, so have to execute touch release logic here. + // Has been working fine on test devices so far. + if (winTouchToInternalId.TryGetValue(id, out touchPointer)) + { + winTouchToInternalId.Remove(id); + internalRemoveTouchPointer(touchPointer); + } + break; + case PointerEvent.Down: + touchPointer = internalAddTouchPointer(position); + touchPointer.Rotation = getTouchRotation(ref data); + touchPointer.Pressure = getTouchPressure(ref data); + winTouchToInternalId.Add(id, touchPointer); + break; + case PointerEvent.Up: + break; + case PointerEvent.Update: + if (!winTouchToInternalId.TryGetValue(id, out touchPointer)) return; + touchPointer.Position = position; + touchPointer.Rotation = getTouchRotation(ref data); + touchPointer.Pressure = getTouchPressure(ref data); + updatePointer(touchPointer); + break; + case PointerEvent.Cancelled: + if (winTouchToInternalId.TryGetValue(id, out touchPointer)) + { + winTouchToInternalId.Remove(id); + cancelPointer(touchPointer); + } + break; + } + break; + case PointerType.Pen: + switch (evt) + { + case PointerEvent.Enter: + penPointer = internalAddPenPointer(position); + penPointer.Pressure = getPenPressure(ref data); + penPointer.Rotation = getPenRotation(ref data); + break; + case PointerEvent.Leave: + if (penPointer == null) break; + internalRemovePenPointer(penPointer); + break; + case PointerEvent.Down: + if (penPointer == null) break; + penPointer.Buttons = updateButtons(penPointer.Buttons, data.PointerFlags, data.ChangedButtons); + penPointer.Pressure = getPenPressure(ref data); + penPointer.Rotation = getPenRotation(ref data); + pressPointer(penPointer); + break; + case PointerEvent.Up: + if (penPointer == null) break; + mousePointer.Buttons = updateButtons(penPointer.Buttons, data.PointerFlags, data.ChangedButtons); + releasePointer(penPointer); + break; + case PointerEvent.Update: + if (penPointer == null) break; + penPointer.Position = position; + penPointer.Pressure = getPenPressure(ref data); + penPointer.Rotation = getPenRotation(ref data); + penPointer.Buttons = updateButtons(penPointer.Buttons, data.PointerFlags, data.ChangedButtons); + updatePointer(penPointer); + break; + case PointerEvent.Cancelled: + if (penPointer == null) break; + cancelPointer(penPointer); + break; + } + break; + } + } + + private Pointer.PointerButtonState updateButtons(Pointer.PointerButtonState current, PointerFlags flags, ButtonChangeType change) + { + var currentUpDown = ((uint) current) & 0xFFFFFC00; + var pressed = ((uint) flags >> 4) & 0x1F; + var newUpDown = 0U; + if (change != ButtonChangeType.None) newUpDown = 1U << (10 + (int) change); + var combined = (Pointer.PointerButtonState) (pressed | newUpDown | currentUpDown); + return combined; + } + + private float getTouchPressure(ref PointerData data) + { + var reliable = (data.Mask & (uint) TouchMask.Pressure) > 0; + if (reliable) return data.Pressure / 1024f; + return TouchPointer.DEFAULT_PRESSURE; + } + + private float getTouchRotation(ref PointerData data) + { + var reliable = (data.Mask & (uint) TouchMask.Orientation) > 0; + if (reliable) return data.Rotation / 180f * Mathf.PI; + return TouchPointer.DEFAULT_ROTATION; + } + + private float getPenPressure(ref PointerData data) + { + var reliable = (data.Mask & (uint) PenMask.Pressure) > 0; + if (reliable) return data.Pressure / 1024f; + return PenPointer.DEFAULT_PRESSURE; + } + + private float getPenRotation(ref PointerData data) + { + var reliable = (data.Mask & (uint) PenMask.Rotation) > 0; + if (reliable) return data.Rotation / 180f * Mathf.PI; + return PenPointer.DEFAULT_ROTATION; + } + + #endregion + + #region p/invoke + + protected enum TOUCH_API + { + WIN7, + WIN8 + } + + protected enum PointerEvent : uint + { + Enter = 0x0249, + Leave = 0x024A, + Update = 0x0245, + Down = 0x0246, + Up = 0x0247, + Cancelled = 0x1000 + } + + protected enum PointerType + { + Pointer = 0x00000001, + Touch = 0x00000002, + Pen = 0x00000003, + Mouse = 0x00000004, + TouchPad = 0x00000005 + } + + [Flags] + protected enum PointerFlags + { + None = 0x00000000, + New = 0x00000001, + InRange = 0x00000002, + InContact = 0x00000004, + FirstButton = 0x00000010, + SecondButton = 0x00000020, + ThirdButton = 0x00000040, + FourthButton = 0x00000080, + FifthButton = 0x00000100, + Primary = 0x00002000, + Confidence = 0x00004000, + Canceled = 0x00008000, + Down = 0x00010000, + Update = 0x00020000, + Up = 0x00040000, + Wheel = 0x00080000, + HWheel = 0x00100000, + CaptureChanged = 0x00200000, + HasTransform = 0x00400000 + } + + protected enum ButtonChangeType + { + None, + FirstDown, + FirstUp, + SecondDown, + SecondUp, + ThirdDown, + ThirdUp, + FourthDown, + FourthUp, + FifthDown, + FifthUp + } + + [Flags] + protected enum TouchFlags + { + None = 0x00000000 + } + + [Flags] + protected enum TouchMask + { + None = 0x00000000, + ContactArea = 0x00000001, + Orientation = 0x00000002, + Pressure = 0x00000004 + } + + [Flags] + protected enum PenFlags + { + None = 0x00000000, + Barrel = 0x00000001, + Inverted = 0x00000002, + Eraser = 0x00000004 + } + + [Flags] + protected enum PenMask + { + None = 0x00000000, + Pressure = 0x00000001, + Rotation = 0x00000002, + TiltX = 0x00000004, + TiltY = 0x00000008 + } + + [StructLayout(LayoutKind.Sequential)] + protected struct PointerData + { + public PointerFlags PointerFlags; + public uint Flags; + public uint Mask; + public ButtonChangeType ChangedButtons; + public uint Rotation; + public uint Pressure; + public int TiltX; + public int TiltY; + } + + [DllImport("WindowsTouch", CallingConvention = CallingConvention.StdCall)] + private static extern void Init(TOUCH_API api, NativeLog log, NativePointerDelegate pointerDelegate); + + [DllImport("WindowsTouch", EntryPoint = "Dispose", CallingConvention = CallingConvention.StdCall)] + private static extern void DisposePlugin(); + + [DllImport("WindowsTouch", CallingConvention = CallingConvention.StdCall)] + private static extern void SetScreenParams(int width, int height, float offsetX, float offsetY, float scaleX, float scaleY); + + #endregion + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/WindowsPointerHandlers.cs.meta b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/WindowsPointerHandlers.cs.meta new file mode 100644 index 000000000..6abbf2e06 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/InputHandlers/WindowsPointerHandlers.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fa5665b41c4584d4d869286b2875b036 +timeCreated: 1448668276 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/InputSources/InputSource.cs b/Source/Assets/TouchScript/Scripts/InputSources/InputSource.cs new file mode 100644 index 000000000..bd6d5d065 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/InputSource.cs @@ -0,0 +1,188 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Core; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.InputSources +{ + + #region Consts + + public delegate void PointerDelegate(Pointer pointer); + + #endregion + + /// + /// Base class for all pointer input sources. + /// + public abstract class InputSource : MonoBehaviour, IInputSource + { + #region Public properties + + /// + /// Gets or sets current remapper. + /// + /// Optional remapper to use to change screen coordinates which go into the TouchManager. + public ICoordinatesRemapper CoordinatesRemapper + { + get { return coordinatesRemapper; } + set + { + if (coordinatesRemapper == value) return; + coordinatesRemapper = value; + updateCoordinatesRemapper(value); + } + } + + #endregion + + #region Private variables + + /// + [SerializeField] + [HideInInspector] + protected bool basicEditor = true; + + private ICoordinatesRemapper coordinatesRemapper; + private TouchManagerInstance manager; + + #endregion + + #region Public methods + + /// + public virtual bool UpdateInput() + { + return false; + } + + /// + public virtual void UpdateResolution() {} + + /// + public virtual bool CancelPointer(Pointer pointer, bool shouldReturn) + { + return false; + } + + #endregion + + #region Internal methods + + /// + public virtual void INTERNAL_DiscardPointer(Pointer pointer) {} + + #endregion + + #region Unity methods + + /// + /// Unity OnEnable callback. + /// + protected virtual void OnEnable() + { + manager = TouchManagerInstance.Instance; + if (manager == null) throw new InvalidOperationException("TouchManager instance is required!"); + manager.AddInput(this); + } + + /// + /// Unity OnDestroy callback. + /// + protected virtual void OnDisable() + { + if (manager != null) + { + manager.RemoveInput(this); + manager = null; + } + } + + #endregion + + #region Protected methods + + /// + /// Adds the pointer to the system. + /// + /// The pointer to add. + protected virtual void addPointer(Pointer pointer) + { + manager.INTERNAL_AddPointer(pointer); + } + + /// + /// Mark pointer as updated. + /// + /// The pointer to update. + protected virtual void updatePointer(Pointer pointer) + { + if (pointer == null) return; + manager.INTERNAL_UpdatePointer(pointer.Id); + } + + /// + /// Mark the pointer as touching the surface. + /// + /// The pointer. + protected virtual void pressPointer(Pointer pointer) + { + if (pointer == null) return; + manager.INTERNAL_PressPointer(pointer.Id); + } + + /// + /// Mark the pointer as no longer touching the surface. + /// + /// The pointer. + protected virtual void releasePointer(Pointer pointer) + { + if (pointer == null) return; + pointer.Buttons &= ~Pointer.PointerButtonState.AnyButtonPressed; + manager.INTERNAL_ReleasePointer(pointer.Id); + } + + /// + /// Removes the pointer. + /// + /// The pointer. + protected virtual void removePointer(Pointer pointer) + { + if (pointer == null) return; + manager.INTERNAL_RemovePointer(pointer.Id); + } + + /// + /// Cancels the pointer. + /// + /// The pointer. + protected virtual void cancelPointer(Pointer pointer) + { + if (pointer == null) return; + manager.INTERNAL_CancelPointer(pointer.Id); + } + + /// + /// Called from setter to update touch handlers with the new value. + /// + /// The new remapper. + protected virtual void updateCoordinatesRemapper(ICoordinatesRemapper remapper) {} + + /// + /// Remaps the coordinates using the if it is set. + /// + /// The position. + /// Remapped position if is set; the value of position argument otherwise. + protected virtual Vector2 remapCoordinates(Vector2 position) + { + if (coordinatesRemapper != null) return coordinatesRemapper.Remap(position); + return position; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/InputSources/InputSource.cs.meta b/Source/Assets/TouchScript/Scripts/InputSources/InputSource.cs.meta new file mode 100644 index 000000000..c550324c1 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/InputSource.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: edf2423ed57eb42bc93a8e0e6f68737c +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/InputSources/StandardInput.cs b/Source/Assets/TouchScript/Scripts/InputSources/StandardInput.cs new file mode 100644 index 000000000..64e38e5f2 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/StandardInput.cs @@ -0,0 +1,456 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR +using System; +#endif +using TouchScript.InputSources.InputHandlers; +using TouchScript.Pointers; +using TouchScript.Utils.Attributes; +using UnityEngine; + +namespace TouchScript.InputSources +{ + /// + /// Processes standard input events (mouse, pointer, pen) on all platforms. + /// Initializes proper inputs automatically. Replaces old Mobile and Mouse inputs. + /// + [AddComponentMenu("TouchScript/Input Sources/Standard Input")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_InputSources_StandardInput.htm")] + public sealed class StandardInput : InputSource + { + #region Constants + + /// + /// Pointer API to use on Windows 8 and later OS versions. + /// + public enum Windows8APIType + { + /// + /// Windows 8 WM_POINTER API. + /// + Windows8, + + /// + /// Windows 7 WM_TOUCH API. + /// + Windows7, + + /// + /// Built-in Unity 5 WM_TOUCH implementation. + /// + Unity, + + /// + /// Don't initialize pointer input at all. + /// + None + } + + /// + /// Pointer API to use on Windows 7. + /// + public enum Windows7APIType + { + /// + /// Windows 7 WM_TOUCH API. + /// + Windows7, + + /// + /// Built-in Unity 5 WM_TOUCH implementation. + /// + Unity, + + /// + /// Don't initialize pointer input at all. + /// + None + } + +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR + private static readonly Version WIN7_VERSION = new Version(6, 1, 0, 0); + private static readonly Version WIN8_VERSION = new Version(6, 2, 0, 0); +#endif + + #endregion + + #region Public properties + + /// + /// Pointer API to use on Windows 8. + /// + public Windows8APIType Windows8API + { + get { return windows8API; } + } + + /// + /// Pointer API to use on Windows 7. + /// + public Windows7APIType Windows7API + { + get { return windows7API; } + } + + /// + /// Initialize touch input in WebGL or not. + /// + public bool WebGLTouch + { + get { return webGLTouch; } + } + + /// + /// Initialize mouse input on Windows 8+ or not. + /// + public bool Windows8Mouse + { + get { return windows8Mouse; } + } + + /// + /// Initialize mouse input on Windows 7 or not. + /// + public bool Windows7Mouse + { + get { return windows7Mouse; } + } + + /// + /// Initialize mouse input on UWP or not. + /// + public bool UniversalWindowsMouse + { + get { return universalWindowsMouse; } + } + + /// + /// Use emulated second mouse pointer with ALT or not. + /// + public bool EmulateSecondMousePointer + { + get { return emulateSecondMousePointer; } + set + { + emulateSecondMousePointer = value; + if (mouseHandler != null) mouseHandler.EmulateSecondMousePointer = value; + } + } + + #endregion + + #region Private variables + + private static StandardInput instance; + +#pragma warning disable CS0414 + + [SerializeField] + [HideInInspector] + private bool generalProps; // Used in the custom inspector + + [SerializeField] + [HideInInspector] + private bool windowsProps; // Used in the custom inspector + + [SerializeField] + [HideInInspector] + private bool webglProps; // Used in the custom inspector + +#pragma warning restore CS0414 + + [SerializeField] + private Windows8APIType windows8API = Windows8APIType.Windows8; + + [SerializeField] + private Windows7APIType windows7API = Windows7APIType.Windows7; + + [ToggleLeft] + [SerializeField] + private bool webGLTouch = true; + + [ToggleLeft] + [SerializeField] + private bool windows8Mouse = true; + + [ToggleLeft] + [SerializeField] + private bool windows7Mouse = true; + + [ToggleLeft] + [SerializeField] + private bool universalWindowsMouse = true; + + [ToggleLeft] + [SerializeField] + private bool emulateSecondMousePointer = true; + + private MouseHandler mouseHandler; + private TouchHandler touchHandler; +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR + private Windows8PointerHandler windows8PointerHandler; + private Windows7PointerHandler windows7PointerHandler; +#endif + + #endregion + + #region Public methods + + /// + public override bool UpdateInput() + { + if (base.UpdateInput()) return true; + + var handled = false; +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR + if (windows8PointerHandler != null) + { + handled = windows8PointerHandler.UpdateInput(); + } + else + { + if (windows7PointerHandler != null) + { + handled = windows7PointerHandler.UpdateInput(); + } + else +#endif + if (touchHandler != null) + { + handled = touchHandler.UpdateInput(); + } + if (mouseHandler != null) + { + if (handled) mouseHandler.CancelMousePointer(); + else handled = mouseHandler.UpdateInput(); + } + +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR + } +#endif + return handled; + } + + /// + public override void UpdateResolution() + { +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR + if (windows8PointerHandler != null) windows8PointerHandler.UpdateResolution(); + else if (windows7PointerHandler != null) windows7PointerHandler.UpdateResolution(); +#endif + if (touchHandler != null) touchHandler.UpdateResolution(); + if (mouseHandler != null) mouseHandler.UpdateResolution(); + } + + /// + public override bool CancelPointer(Pointer pointer, bool shouldReturn) + { + base.CancelPointer(pointer, shouldReturn); + + var handled = false; + if (touchHandler != null) handled = touchHandler.CancelPointer(pointer, shouldReturn); + if (mouseHandler != null && !handled) handled = mouseHandler.CancelPointer(pointer, shouldReturn); +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR + if (windows7PointerHandler != null && !handled) handled = windows7PointerHandler.CancelPointer(pointer, shouldReturn); + if (windows8PointerHandler != null && !handled) handled = windows8PointerHandler.CancelPointer(pointer, shouldReturn); +#endif + + return handled; + } + + #endregion + + #region Unity + + /// + protected override void OnEnable() + { + if (instance != null) Destroy(instance); + instance = this; + + base.OnEnable(); + + Input.simulateMouseWithTouches = false; + +#if UNITY_EDITOR + enableTouch(); + enableMouse(); +#else +#if UNITY_STANDALONE_OSX || UNITY_STANDALONE_LINUX + enableMouse(); +#elif UNITY_STANDALONE_WIN + if (Environment.OSVersion.Platform == PlatformID.Win32NT) + { + if (Environment.OSVersion.Version >= WIN8_VERSION) + { + // Windows 8+ + switch (Windows8API) + { + case Windows8APIType.Windows8: + enableWindows8Touch(); + break; + case Windows8APIType.Windows7: + enableWindows7Touch(); + if (Windows8Mouse) enableMouse(); + break; + case Windows8APIType.Unity: + enableTouch(); + if (Windows8Mouse) enableMouse(); + break; + case Windows8APIType.None: + enableMouse(); + break; + } + } + else if (Environment.OSVersion.Version >= WIN7_VERSION) + { + // Windows 7 + switch (Windows7API) + { + case Windows7APIType.Windows7: + enableWindows7Touch(); + if (Windows7Mouse) enableMouse(); + break; + case Windows7APIType.Unity: + enableTouch(); + if (Windows7Mouse) enableMouse(); + break; + case Windows7APIType.None: + enableMouse(); + break; + } + } + else + { + // Some other earlier Windows + enableMouse(); + } + } + else + { + // Some other earlier Windows + enableMouse(); + } +#elif UNITY_WEBGL + if (WebGLTouch) enableTouch(); + enableMouse(); +#elif UNITY_WSA || UNITY_WSA_8_0 || UNITY_WSA_8_1 || UNITY_WSA_10_0 + enableTouch(); + if (UniversalWindowsMouse) enableMouse(); +#elif UNITY_PS3 || UNITY_PS4 || UNITY_XBOX360 || UNITY_XBOXONE + enableMouse(); +#else // UNITY_IOS || UNITY_ANDROID || UNITY_WII || UNITY_BLACKBERRY || UNITY_TIZEN || UNITY_WP8 || UNITY_WP8_1 + enableTouch(); +#endif +#endif + if (CoordinatesRemapper != null) updateCoordinatesRemapper(CoordinatesRemapper); + } + + /// + protected override void OnDisable() + { + disableMouse(); + disableTouch(); +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR + disableWindows7Touch(); + disableWindows8Touch(); +#endif + + base.OnDisable(); + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Protected methods + + /// + protected override void updateCoordinatesRemapper(ICoordinatesRemapper remapper) + { + base.updateCoordinatesRemapper(remapper); + if (mouseHandler != null) mouseHandler.CoordinatesRemapper = remapper; + if (touchHandler != null) touchHandler.CoordinatesRemapper = remapper; +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR + if (windows7PointerHandler != null) windows7PointerHandler.CoordinatesRemapper = remapper; + if (windows8PointerHandler != null) windows8PointerHandler.CoordinatesRemapper = remapper; +#endif + } + + #endregion + + #region Private functions + + private void enableMouse() + { + mouseHandler = new MouseHandler(addPointer, updatePointer, pressPointer, releasePointer, removePointer, cancelPointer); + mouseHandler.EmulateSecondMousePointer = emulateSecondMousePointer; + Debug.Log("[TouchScript] Initialized Unity mouse input."); + } + + private void disableMouse() + { + if (mouseHandler != null) + { + mouseHandler.Dispose(); + mouseHandler = null; + } + } + + private void enableTouch() + { + touchHandler = new TouchHandler(addPointer, updatePointer, pressPointer, releasePointer, removePointer, cancelPointer); + Debug.Log("[TouchScript] Initialized Unity touch input."); + } + + private void disableTouch() + { + if (touchHandler != null) + { + touchHandler.Dispose(); + touchHandler = null; + } + } + +#if UNITY_STANDALONE_WIN && !UNITY_EDITOR + private void enableWindows7Touch() + { + windows7PointerHandler = new Windows7PointerHandler(addPointer, updatePointer, pressPointer, releasePointer, removePointer, cancelPointer); + Debug.Log("[TouchScript] Initialized Windows 7 pointer input."); + } + + private void disableWindows7Touch() + { + if (windows7PointerHandler != null) + { + windows7PointerHandler.Dispose(); + windows7PointerHandler = null; + } + } + + private void enableWindows8Touch() + { + windows8PointerHandler = new Windows8PointerHandler(addPointer, updatePointer, pressPointer, releasePointer, removePointer, cancelPointer); + windows8PointerHandler.MouseInPointer = windows8Mouse; + Debug.Log("[TouchScript] Initialized Windows 8 pointer input."); + } + + private void disableWindows8Touch() + { + if (windows8PointerHandler != null) + { + windows8PointerHandler.Dispose(); + windows8PointerHandler = null; + } + } +#endif + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/InputSources/StandardInput.cs.meta b/Source/Assets/TouchScript/Scripts/InputSources/StandardInput.cs.meta new file mode 100644 index 000000000..30c22b5dc --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/InputSources/StandardInput.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e276ccba4f7314d9988af19f9b3a611b +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/LayerManager.cs b/Source/Assets/TouchScript/Scripts/LayerManager.cs new file mode 100644 index 000000000..15a489a43 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/LayerManager.cs @@ -0,0 +1,24 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Core; +using UnityEngine; + +namespace TouchScript +{ + /// + /// Facade for current instance of . + /// + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_LayerManager.htm")] + public sealed class LayerManager : MonoBehaviour + { + /// + /// Gets the LayerManager instance. + /// + public static ILayerManager Instance + { + get { return LayerManagerInstance.Instance; } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/LayerManager.cs.meta b/Source/Assets/TouchScript/Scripts/LayerManager.cs.meta new file mode 100644 index 000000000..fd683f038 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/LayerManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3e8fcbff26c96d94ab9865ea8a8607d4 +timeCreated: 1500755913 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Layers.meta b/Source/Assets/TouchScript/Scripts/Layers.meta new file mode 100644 index 000000000..54ce46e23 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ccb02477f0728440f9b0a280c6fa390c +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Layers/FullscreenLayer.cs b/Source/Assets/TouchScript/Scripts/Layers/FullscreenLayer.cs new file mode 100644 index 000000000..2fc97c59b --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/FullscreenLayer.cs @@ -0,0 +1,182 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using TouchScript.Hit; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Layers +{ + /// + /// Layer which gets all input from a camera. Should be used instead of a background object getting all the pointers which come through. + /// + [AddComponentMenu("TouchScript/Layers/Fullscreen Layer")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Layers_FullscreenLayer.htm")] + public class FullscreenLayer : TouchLayer + { + #region Constants + + /// + /// The type of FullscreenLayer. + /// + public enum LayerType + { + /// + /// Get pointers from main camera. + /// + MainCamera, + + /// + /// Get pointers from specific camera. + /// + Camera, + + /// + /// Get all pointers on Z=0 plane without a camera. + /// + Global + } + + #endregion + + #region Public properties + + /// + /// Layer type. + /// + public LayerType Type + { + get { return type; } + set + { + if (value == type) return; + type = value; + updateCamera(); + cacheCameraTransform(); + } + } + + /// + /// Target camera if or is used. + /// + public Camera Camera + { + get { return _camera; } + set + { + if (value == _camera) return; + _camera = value; + if (_camera == null) Type = LayerType.Global; + else Type = LayerType.Camera; + setName(); + } + } + + /// + public override Vector3 WorldProjectionNormal + { + get + { + if (cameraTransform == null) return transform.forward; + return cameraTransform.forward; + } + } + + #endregion + + #region Private variables + + [SerializeField] + private LayerType type = LayerType.MainCamera; + + [SerializeField] + private Camera _camera; + + private Transform cameraTransform; + + #endregion + + #region Public methods + + /// + public override HitResult Hit(IPointer pointer, out HitData hit) + { + if (base.Hit(pointer, out hit) != HitResult.Hit) return HitResult.Miss; + + if (_camera != null) + { + if (!_camera.pixelRect.Contains(pointer.Position)) return HitResult.Miss; + } + + hit = new HitData(transform, this); + var result = checkHitFilters(pointer, hit); + if (result != HitResult.Hit) + { + hit = default(HitData); + return result; + } + return HitResult.Hit; + } + + #endregion + + #region Unity methods + + /// + protected override void Awake() + { + updateCamera(); + base.Awake(); + if (!Application.isPlaying) return; + + cacheCameraTransform(); + } + + #endregion + + #region Protected functions + + /// + protected override void setName() + { + if (_camera == null) Name = "Global Fullscreen"; + else Name = "Fullscreen @ " + _camera.name; + } + + /// + protected override ProjectionParams createProjectionParams() + { + if (_camera) return new CameraProjectionParams(_camera); + return base.createProjectionParams(); + } + + #endregion + + #region Private functions + + private void updateCamera() + { + switch (type) + { + case LayerType.Global: + _camera = null; + break; + case LayerType.MainCamera: + _camera = Camera.main; + if (_camera == null) Debug.LogError("No Main camera found!"); + break; + } + setName(); + } + + private void cacheCameraTransform() + { + if (_camera == null) cameraTransform = null; + else cameraTransform = _camera.transform; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Layers/FullscreenLayer.cs.meta b/Source/Assets/TouchScript/Scripts/Layers/FullscreenLayer.cs.meta new file mode 100644 index 000000000..dceb231e4 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/FullscreenLayer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bc7fd33c57d694994b0ab9f33fcdcbea +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Layers/ILayerDelegate.cs b/Source/Assets/TouchScript/Scripts/Layers/ILayerDelegate.cs new file mode 100644 index 000000000..a8dfe9ede --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/ILayerDelegate.cs @@ -0,0 +1,25 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Pointers; + +namespace TouchScript.Layers +{ + /// + /// A delegate which can be set to and control what this layer can or can not do. + /// + /// + public interface ILayerDelegate + { + + /// + /// Returns whether a layer should receive the pointer. + /// + /// The layer. + /// The pointer. + /// true if it should; false otherwise. + bool ShouldReceivePointer(TouchLayer layer, IPointer pointer); + + } +} diff --git a/Source/Assets/TouchScript/Scripts/Layers/ILayerDelegate.cs.meta b/Source/Assets/TouchScript/Scripts/Layers/ILayerDelegate.cs.meta new file mode 100644 index 000000000..1d45b0ffc --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/ILayerDelegate.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4e9a4d4a935394bc19057f2f4a1b04a2 +timeCreated: 1451051749 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Layers/ProjectionParams.cs b/Source/Assets/TouchScript/Scripts/Layers/ProjectionParams.cs new file mode 100644 index 000000000..64ce549eb --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/ProjectionParams.cs @@ -0,0 +1,112 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Utils.Geom; +using UnityEngine; + +namespace TouchScript.Layers +{ + /// + /// specific projection parameters. Used by layers to project pointers in the world and world coordinates onto layers. + /// + public class ProjectionParams + { + /// + /// Projects a screen point on a 3D plane. + /// + /// Screen point. + /// Projection plane. + /// Projected point in 3D. + public virtual Vector3 ProjectTo(Vector2 screenPosition, Plane projectionPlane) + { + return ProjectionUtils.ScreenToPlaneProjection(screenPosition, projectionPlane); + } + + /// + /// Projects a world point onto layer. + /// + /// World position. + /// 2D point on layer. + public virtual Vector2 ProjectFrom(Vector3 worldPosition) + { + return new Vector2(worldPosition.x, worldPosition.y); + } + } + + /// + /// Projection parameters for a camera based . + /// + public class CameraProjectionParams : ProjectionParams + { + /// + /// Camera used for projection. + /// + protected Camera camera; + + /// + /// Initializes a new instance of the class. + /// + /// The camera. + public CameraProjectionParams(Camera camera) + { + this.camera = camera; + } + + /// + public override Vector3 ProjectTo(Vector2 screenPosition, Plane projectionPlane) + { + return ProjectionUtils.CameraToPlaneProjection(screenPosition, camera, projectionPlane); + } + + /// + public override Vector2 ProjectFrom(Vector3 worldPosition) + { + return camera.WorldToScreenPoint(worldPosition); + } + } + + /// + /// Projection parameters for a UI based . + /// + public class WorldSpaceCanvasProjectionParams : ProjectionParams + { + /// + /// The canvas. + /// + protected Canvas canvas; + + /// + /// Canvas mode. + /// + protected RenderMode mode; + + /// + /// Canvas camera. + /// + protected Camera camera; + + /// + /// Initializes a new instance of the class. + /// + /// The canvas. + public WorldSpaceCanvasProjectionParams(Canvas canvas) + { + this.canvas = canvas; + mode = canvas.renderMode; + camera = canvas.worldCamera ?? Camera.main; + } + + /// + public override Vector3 ProjectTo(Vector2 screenPosition, Plane projectionPlane) + { + return ProjectionUtils.CameraToPlaneProjection(screenPosition, camera, projectionPlane); + } + + /// + public override Vector2 ProjectFrom(Vector3 worldPosition) + { + return camera.WorldToScreenPoint(worldPosition); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Layers/ProjectionParams.cs.meta b/Source/Assets/TouchScript/Scripts/Layers/ProjectionParams.cs.meta new file mode 100644 index 000000000..958cce94f --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/ProjectionParams.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 72ec715c90bb1435e8ba040343f8573d +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Layers/StandardLayer.cs b/Source/Assets/TouchScript/Scripts/Layers/StandardLayer.cs new file mode 100644 index 000000000..59e6bf6e0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/StandardLayer.cs @@ -0,0 +1,647 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Hit; +using UnityEngine; +using System.Collections.Generic; +using TouchScript.Layers.UI; +using TouchScript.Pointers; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using System.Collections; +using TouchScript.Utils.Attributes; + +namespace TouchScript.Layers +{ + /// + /// A layer which combines all types of hit recognition into one: UI (Screen Space and World), 3D and 2D. + /// + /// + [AddComponentMenu("TouchScript/Layers/Standard Layer")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_Layers_StandardLayer.htm")] + public class StandardLayer : TouchLayer + { + #region Public properties + + /// + /// Indicates that the layer should look for 3D objects in the scene. Set this to false to optimize hit processing. + /// + public bool Hit3DObjects + { + get { return hit3DObjects; } + set + { + hit3DObjects = value; + updateVariants(); + } + } + + /// + /// Indicates that the layer should look for 2D objects in the scene. Set this to false to optimize hit processing. + /// + public bool Hit2DObjects + { + get { return hit2DObjects; } + set + { + hit2DObjects = value; + updateVariants(); + } + } + + /// + /// Indicates that the layer should look for World UI objects in the scene. Set this to false to optimize hit processing. + /// + public bool HitWorldSpaceUI + { + get { return hitWorldSpaceUI; } + set + { + hitWorldSpaceUI = value; + setupInputModule(); + updateVariants(); + } + } + + /// + /// Indicates that the layer should look for Screen Space UI objects in the scene. Set this to false to optimize hit processing. + /// + public bool HitScreenSpaceUI + { + get { return hitScreenSpaceUI; } + set + { + hitScreenSpaceUI = value; + setupInputModule(); + } + } + + /// + /// Indicates that the layer should query for components on target objects. Set this to false to optimize hit processing. + /// + public bool UseHitFilters + { + get { return useHitFilters; } + set { useHitFilters = value; } + } + + /// + /// Gets or sets the layer mask which is used to select layers which should be touchable from this layer. + /// + /// A mask to exclude objects from possibly touchable list. + public LayerMask LayerMask + { + get { return layerMask; } + set { layerMask = value; } + } + + /// + public override Vector3 WorldProjectionNormal + { + get + { + if (_camera == null) return Vector3.forward; + return _camera.transform.forward; + } + } + + #endregion + + #region Private variables + + private static Comparison _raycastHitUIComparerFunc = raycastHitUIComparerFunc; + private static Comparison _raycastHitComparerFunc = raycastHitComparerFunc; + private static Comparison _hitDataComparerFunc = hitDataComparerFunc; + + private static Dictionary projectionParamsCache = new Dictionary(); + private static List raycasters; + + private static List raycastHitUIList = new List(20); + private static List raycastHitList = new List(20); + private static List hitList = new List(20); +#if UNITY_5_3_OR_NEWER + private static RaycastHit[] raycastHits = new RaycastHit[20]; +#endif + private static RaycastHit2D[] raycastHits2D = new RaycastHit2D[20]; + +#pragma warning disable CS0414 + + [SerializeField] + [HideInInspector] + private bool basicEditor = true; + + [SerializeField] + [HideInInspector] + private bool advancedProps; // is used to save if advanced properties are opened or closed + +#pragma warning restore CS0414 + + [SerializeField] + [HideInInspector] + private bool hitProps; + + [SerializeField] + [ToggleLeft] + private bool hit3DObjects = true; + + [SerializeField] + [ToggleLeft] + private bool hit2DObjects = true; + + [SerializeField] + [ToggleLeft] + private bool hitWorldSpaceUI = true; + + [SerializeField] + [ToggleLeft] + private bool hitScreenSpaceUI = true; + + [SerializeField] + private LayerMask layerMask = -1; + + [SerializeField] + [ToggleLeft] + private bool useHitFilters = false; + + private bool lookForCameraObjects = false; + private TouchScriptInputModule inputModule; + + /// + /// Camera. + /// + protected Camera _camera; + + #endregion + + #region Public methods + + /// + public override HitResult Hit(IPointer pointer, out HitData hit) + { + if (base.Hit(pointer, out hit) != HitResult.Hit) return HitResult.Miss; + + var result = HitResult.Miss; + + if (hitScreenSpaceUI) + { + result = performSSUISearch(pointer, out hit); + switch (result) + { + case HitResult.Hit: + return result; + case HitResult.Discard: + hit = default(HitData); + return result; + } + } + + if (lookForCameraObjects) + { + result = performWorldSearch(pointer, out hit); + switch (result) + { + case HitResult.Hit: + return result; + case HitResult.Discard: + hit = default(HitData); + return result; + } + } + + return HitResult.Miss; + } + + /// + public override ProjectionParams GetProjectionParams(Pointer pointer) + { + var press = pointer.GetPressData(); + if ((press.Type == HitData.HitType.World2D) || + (press.Type == HitData.HitType.World3D)) + return layerProjectionParams; + + var graphic = press.RaycastHitUI.Graphic; + if (graphic == null) return layerProjectionParams; + var canvas = graphic.canvas; + if (canvas == null) return layerProjectionParams; + + ProjectionParams pp; + if (!projectionParamsCache.TryGetValue(canvas.GetInstanceID(), out pp)) + { + // TODO: memory leak + pp = new WorldSpaceCanvasProjectionParams(canvas); + projectionParamsCache.Add(canvas.GetInstanceID(), pp); + } + return pp; + } + + #endregion + + #region Unity methods + + /// + protected override void Awake() + { + updateCamera(); + updateVariants(); + base.Awake(); + } + + private void OnEnable() + { + if (!Application.isPlaying) return; + TouchManager.Instance.FrameStarted += frameStartedHandler; + StartCoroutine(lateEnable()); + } + + private IEnumerator lateEnable() + { + // Need to wait while EventSystem initializes + yield return new WaitForEndOfFrame(); + setupInputModule(); + } + + private void OnDisable() + { + if (!Application.isPlaying) return; + if (inputModule != null) inputModule.INTERNAL_Release(); + if (TouchManager.Instance != null) TouchManager.Instance.FrameStarted -= frameStartedHandler; + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Protected functions + + /// + /// Finds a camera. + /// + protected virtual void updateCamera() + { + _camera = GetComponent(); + } + + /// + protected override ProjectionParams createProjectionParams() + { + return new CameraProjectionParams(_camera); + } + + /// + protected override void setName() + { + if (string.IsNullOrEmpty(Name)) + if (_camera != null) Name = _camera.name; + else Name = "Layer"; + } + + #endregion + + #region Private functions + + private void setupInputModule() + { + if (inputModule == null) + { + if (!hitWorldSpaceUI && !hitScreenSpaceUI) return; + inputModule = TouchScriptInputModule.Instance; + if (inputModule != null) TouchScriptInputModule.Instance.INTERNAL_Retain(); + } + else + { + if (hitWorldSpaceUI || hitScreenSpaceUI) return; + inputModule.INTERNAL_Release(); + inputModule = null; + } + } + + private HitResult performWorldSearch(IPointer pointer, out HitData hit) + { + hit = default(HitData); + + if (_camera == null) return HitResult.Miss; + if ((_camera.enabled == false) || (_camera.gameObject.activeInHierarchy == false)) return HitResult.Miss; + var position = pointer.Position; + if (!_camera.pixelRect.Contains(position)) return HitResult.Miss; + + hitList.Clear(); + var ray = _camera.ScreenPointToRay(position); + + int count; + bool exclusiveSet = manager.HasExclusive; + + if (hit3DObjects) + { +#if UNITY_5_3_OR_NEWER + count = Physics.RaycastNonAlloc(ray, raycastHits, float.PositiveInfinity, layerMask); +#else + var raycastHits = Physics.RaycastAll(ray, float.PositiveInfinity, layerMask); + var count = raycastHits.Length; +#endif + + // Try to do some optimizations if 2D and WS UI are not required + if (!hit2DObjects && !hitWorldSpaceUI) + { + RaycastHit raycast; + + if (count == 0) return HitResult.Miss; + if (count > 1) + { + raycastHitList.Clear(); + for (var i = 0; i < count; i++) + { + raycast = raycastHits[i]; + if (exclusiveSet && !manager.IsExclusive(raycast.transform)) continue; + raycastHitList.Add(raycast); + } + if (raycastHitList.Count == 0) return HitResult.Miss; + + raycastHitList.Sort(_raycastHitComparerFunc); + if (useHitFilters) + { + for (var i = 0; i < count; i++) + { + var result = doHit(pointer, raycastHitList[i], out hit); + if (result != HitResult.Miss) return result; + } + return HitResult.Miss; + } + hit = new HitData(raycastHitList[0], this); + return HitResult.Hit; + } + + raycast = raycastHits[0]; + if (exclusiveSet && !manager.IsExclusive(raycast.transform)) return HitResult.Miss; + if (useHitFilters) return doHit(pointer, raycast, out hit); + hit = new HitData(raycast, this); + return HitResult.Hit; + } + for (var i = 0; i < count; i++) + { + var raycast = raycastHits[i]; + if (exclusiveSet && !manager.IsExclusive(raycast.transform)) continue; + hitList.Add(new HitData(raycastHits[i], this)); + } + } + + if (hit2DObjects) + { + count = Physics2D.GetRayIntersectionNonAlloc(ray, raycastHits2D, float.MaxValue, layerMask); + for (var i = 0; i < count; i++) + { + var raycast = raycastHits2D[i]; + if (exclusiveSet && !manager.IsExclusive(raycast.transform)) continue; + hitList.Add(new HitData(raycast, this)); + } + } + + if (hitWorldSpaceUI) + { + raycastHitUIList.Clear(); + if (raycasters == null) raycasters = TouchScriptInputModule.Instance.GetRaycasters(); + count = raycasters.Count; + + for (var i = 0; i < count; i++) + { + var raycaster = raycasters[i] as GraphicRaycaster; + if (raycaster == null) continue; + var canvas = TouchScriptInputModule.Instance.GetCanvasForRaycaster(raycaster); + if ((canvas == null) || (canvas.renderMode == RenderMode.ScreenSpaceOverlay) || (canvas.worldCamera != _camera)) continue; + performUISearchForCanvas(pointer, canvas, raycaster, _camera, float.MaxValue, ray); + } + + count = raycastHitUIList.Count; + for (var i = 0; i < count; i++) hitList.Add(new HitData(raycastHitUIList[i], this)); + } + + count = hitList.Count; + if (hitList.Count == 0) return HitResult.Miss; + if (count > 1) + { + hitList.Sort(_hitDataComparerFunc); + if (useHitFilters) + { + for (var i = 0; i < count; ++i) + { + hit = hitList[i]; + var result = checkHitFilters(pointer, hit); + if (result != HitResult.Miss) return result; + } + return HitResult.Miss; + } + else + { + hit = hitList[0]; + return HitResult.Hit; + } + } + hit = hitList[0]; + if (useHitFilters) return checkHitFilters(pointer, hit); + return HitResult.Hit; + } + + private HitResult performSSUISearch(IPointer pointer, out HitData hit) + { + hit = default(HitData); + raycastHitUIList.Clear(); + + if (raycasters == null) raycasters = TouchScriptInputModule.Instance.GetRaycasters(); + var count = raycasters.Count; + + for (var i = 0; i < count; i++) + { + var raycaster = raycasters[i] as GraphicRaycaster; + if (raycaster == null) continue; + var canvas = TouchScriptInputModule.Instance.GetCanvasForRaycaster(raycaster); + if ((canvas == null) || (canvas.renderMode != RenderMode.ScreenSpaceOverlay)) continue; + performUISearchForCanvas(pointer, canvas, raycaster); + } + + count = raycastHitUIList.Count; + if (count == 0) return HitResult.Miss; + if (count > 1) + { + raycastHitUIList.Sort(_raycastHitUIComparerFunc); + if (useHitFilters) + { + for (var i = 0; i < count; ++i) + { + var result = doHit(pointer, raycastHitUIList[i], out hit); + if (result != HitResult.Miss) return result; + } + return HitResult.Miss; + } + + hit = new HitData(raycastHitUIList[0], this, true); + return HitResult.Hit; + } + + if (useHitFilters) return doHit(pointer, raycastHitUIList[0], out hit); + hit = new HitData(raycastHitUIList[0], this, true); + return HitResult.Hit; + } + + private void performUISearchForCanvas(IPointer pointer, Canvas canvas, GraphicRaycaster raycaster, Camera eventCamera = null, float maxDistance = float.MaxValue, Ray ray = default(Ray)) + { + var position = pointer.Position; + var foundGraphics = GraphicRegistry.GetGraphicsForCanvas(canvas); + var count = foundGraphics.Count; + var exclusiveSet = manager.HasExclusive; + + for (var i = 0; i < count; i++) + { + var graphic = foundGraphics[i]; + var t = graphic.transform; + + if (exclusiveSet && !manager.IsExclusive(t)) continue; + + if ((layerMask.value != -1) && ((layerMask.value & (1 << graphic.gameObject.layer)) == 0)) continue; + + // -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, position, eventCamera)) + continue; + + if (graphic.Raycast(position, eventCamera)) + { + if (raycaster.ignoreReversedGraphics) + if (eventCamera == null) + { + // If we dont have a camera we know that we should always be facing forward + var dir = t.rotation * Vector3.forward; + if (Vector3.Dot(Vector3.forward, dir) <= 0) continue; + } + else + { + // If we have a camera compare the direction against the cameras forward. + var cameraFoward = eventCamera.transform.rotation * Vector3.forward; + var dir = t.rotation * Vector3.forward; + if (Vector3.Dot(cameraFoward, dir) <= 0) continue; + } + + float distance = 0; + + if ((eventCamera == null) || (canvas.renderMode == RenderMode.ScreenSpaceOverlay)) {} + else + { + var transForward = t.forward; + // http://geomalgorithms.com/a06-_intersect-2.html + distance = Vector3.Dot(transForward, t.position - ray.origin) / Vector3.Dot(transForward, ray.direction); + + // Check to see if the go is behind the camera. + if (distance < 0) continue; + if (distance >= maxDistance) continue; + } + + raycastHitUIList.Add( + new RaycastHitUI() + { + Target = graphic.transform, + Raycaster = raycaster, + Graphic = graphic, + GraphicIndex = raycastHitUIList.Count, + Depth = graphic.depth, + SortingLayer = canvas.sortingLayerID, + SortingOrder = canvas.sortingOrder, + Distance = distance + }); + } + } + } + + private HitResult doHit(IPointer pointer, RaycastHitUI raycastHit, out HitData hit) + { + hit = new HitData(raycastHit, this, true); + return checkHitFilters(pointer, hit); + } + + private HitResult doHit(IPointer pointer, RaycastHit raycastHit, out HitData hit) + { + hit = new HitData(raycastHit, this); + return checkHitFilters(pointer, hit); + } + + private void updateVariants() + { + lookForCameraObjects = _camera != null && (hit3DObjects || hit2DObjects || hitWorldSpaceUI); + } + + #endregion + + #region Compare functions + + private static int raycastHitUIComparerFunc(RaycastHitUI lhs, RaycastHitUI rhs) + { + if (lhs.SortingLayer != rhs.SortingLayer) + { + // Uses the layer value to properly compare the relative order of the layers. + var rid = SortingLayer.GetLayerValueFromID(rhs.SortingLayer); + var lid = SortingLayer.GetLayerValueFromID(lhs.SortingLayer); + return rid.CompareTo(lid); + } + + if (lhs.SortingOrder != rhs.SortingOrder) + return rhs.SortingOrder.CompareTo(lhs.SortingOrder); + + if (lhs.Depth != rhs.Depth) + return rhs.Depth.CompareTo(lhs.Depth); + + if (!Mathf.Approximately(lhs.Distance, rhs.Distance)) + return lhs.Distance.CompareTo(rhs.Distance); + + return lhs.GraphicIndex.CompareTo(rhs.GraphicIndex); + } + + private static int raycastHitComparerFunc(RaycastHit lhs, RaycastHit rhs) + { + return lhs.distance < rhs.distance ? -1 : 1; + } + + private static int hitDataComparerFunc(HitData lhs, HitData rhs) + { + if (lhs.SortingLayer != rhs.SortingLayer) + { + // Uses the layer value to properly compare the relative order of the layers. + var rid = SortingLayer.GetLayerValueFromID(rhs.SortingLayer); + var lid = SortingLayer.GetLayerValueFromID(lhs.SortingLayer); + return rid.CompareTo(lid); + } + + if (lhs.SortingOrder != rhs.SortingOrder) + return rhs.SortingOrder.CompareTo(lhs.SortingOrder); + + if ((lhs.Type == HitData.HitType.UI) && (rhs.Type == HitData.HitType.UI)) + { + if (lhs.RaycastHitUI.Depth != rhs.RaycastHitUI.Depth) + return rhs.RaycastHitUI.Depth.CompareTo(lhs.RaycastHitUI.Depth); + + if (!Mathf.Approximately(lhs.Distance, rhs.Distance)) + return lhs.Distance.CompareTo(rhs.Distance); + + if (lhs.RaycastHitUI.GraphicIndex != rhs.RaycastHitUI.GraphicIndex) + return rhs.RaycastHitUI.GraphicIndex.CompareTo(lhs.RaycastHitUI.GraphicIndex); + } + + return lhs.Distance < rhs.Distance ? -1 : 1; + } + + #endregion + + #region Event handlers + + private void frameStartedHandler(object sender, EventArgs eventArgs) + { + raycasters = null; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Layers/StandardLayer.cs.meta b/Source/Assets/TouchScript/Scripts/Layers/StandardLayer.cs.meta new file mode 100644 index 000000000..fff9e3d94 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/StandardLayer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7e5768c36d1bb4acea50bd233372843a +timeCreated: 1470775898 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Layers/TouchLayer.cs b/Source/Assets/TouchScript/Scripts/Layers/TouchLayer.cs new file mode 100644 index 000000000..286cd98c3 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/TouchLayer.cs @@ -0,0 +1,304 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using TouchScript.Hit; +using TouchScript.Utils; +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using TouchScript.Pointers; + +namespace TouchScript.Layers +{ + /// + /// Base class for all pointer layers. Used to check if some object is hit by a pointer. + /// + /// + /// + /// + /// + /// In TouchScript it's a layer's job to determine if a pointer on the screen hits anything in Unity's 3d/2d world. + /// keeps a sorted list of all layers in which it queries when a new pointer appears. It's a layer's job to return if this pointer hits an object. Layers can even be used to "hit" objects outside of Unity's 3d world, for example Scaleform integration is implemented this way. + /// Layers can be configured in a scene using or from code using API. + /// If you want to route pointers and manually control which objects they should "pointer" it's better to create a new layer extending . + /// + [ExecuteInEditMode] + public abstract class TouchLayer : MonoBehaviour + { + #region Events + + /// + /// Occurs when layer determines that a pointer has hit something. + /// + public event EventHandler PointerBegan + { + add { pointerPressInvoker += value; } + remove { pointerPressInvoker -= value; } + } + + // Needed to overcome iOS AOT limitations + private EventHandler pointerPressInvoker; + + #endregion + + #region Public properties + + /// + /// Pointer layer's name. + /// + public string Name; + + /// + /// Layers screen to world projection normal. + /// + public virtual Vector3 WorldProjectionNormal + { + get { return transform.forward; } + } + + /// + /// Gets or sets an object implementing to be asked for layer specific actions. + /// + /// The delegate. + public ILayerDelegate Delegate { get; set; } + + #endregion + + #region Private variables + + /// + /// The layer projection parameters. + /// + protected ProjectionParams layerProjectionParams; + + /// + /// Layer manager. + /// + protected ILayerManager manager; + + #endregion + + #region Temporary variables + + private List tmpHitTestList = new List(10); + + #endregion + + #region Public methods + + /// + /// Gets the projection parameters of this layer which might depend on a specific pointer data. + /// + /// Pointer to retrieve projection parameters for. + /// + public virtual ProjectionParams GetProjectionParams(Pointer pointer) + { + return layerProjectionParams; + } + + /// + /// Checks if a point in screen coordinates hits something in this layer. + /// + /// Pointer. + /// Hit result. + /// true, if an object is hit, ; false otherwise. + public virtual HitResult Hit(IPointer pointer, out HitData hit) + { + hit = default(HitData); + if (enabled == false || gameObject.activeInHierarchy == false) return HitResult.Miss; + if (Delegate != null) + { + if (Delegate.ShouldReceivePointer(this, pointer)) return HitResult.Hit; + return HitResult.Miss; + } + return HitResult.Hit; + } + + #endregion + + #region Unity methods + + /// + /// Unity Awake callback. + /// + protected virtual void Awake() + { + setName(); + if (!Application.isPlaying) return; + + manager = LayerManager.Instance; + layerProjectionParams = createProjectionParams(); + StartCoroutine(lateAwake()); + } + + private IEnumerator lateAwake() + { + yield return null; + + // Add ourselves after TouchManager finished adding layers in order + manager.AddLayer(this, -1, false); + } + + // To be able to turn layers off + private void Start() {} + + /// + /// Unity OnDestroy callback. + /// + protected virtual void OnDestroy() + { + if (!Application.isPlaying || TouchManager.Instance == null) return; + + StopAllCoroutines(); + manager.RemoveLayer(this); + } + + #endregion + + #region Internal methods + + internal void INTERNAL_AddPointer(Pointer pointer) + { + addPointer(pointer); + } + + internal void INTERNAL_UpdatePointer(Pointer pointer) + { + updatePointer(pointer); + } + + internal bool INTERNAL_PressPointer(Pointer pointer) + { + pressPointer(pointer); + if (pointerPressInvoker != null) pointerPressInvoker.InvokeHandleExceptions(this, new TouchLayerEventArgs(pointer)); + return true; + } + + internal void INTERNAL_ReleasePointer(Pointer pointer) + { + releasePointer(pointer); + } + + internal void INTERNAL_RemovePointer(Pointer pointer) + { + removePointer(pointer); + } + + internal void INTERNAL_CancelPointer(Pointer pointer) + { + cancelPointer(pointer); + } + + #endregion + + #region Protected functions + + /// + /// Checks the hit filters. + /// + /// The pointer. + /// HitData for the pointer. + /// + protected HitResult checkHitFilters(IPointer pointer, HitData hit) + { + hit.Target.GetComponents(tmpHitTestList); + var count = tmpHitTestList.Count; + if (count == 0) return HitResult.Hit; + + var hitResult = HitResult.Hit; + for (var i = 0; i < count; i++) + { + var test = tmpHitTestList[i]; + if (!test.enabled) continue; + hitResult = test.IsHit(pointer, hit); + if (hitResult != HitResult.Hit) break; + } + + return hitResult; + } + + /// + /// Updates pointer layers's name. + /// + protected virtual void setName() + { + if (string.IsNullOrEmpty(Name)) Name = "Layer"; + } + + /// + /// Called when a pointer is added. + /// + /// Pointer. + /// This method may also be used to update some internal state or resend this event somewhere. + protected virtual void addPointer(Pointer pointer) {} + + /// + /// Called when a layer is pressed over an object detected by this layer. + /// + /// Pointer. + /// This method may also be used to update some internal state or resend this event somewhere. + protected virtual void pressPointer(Pointer pointer) {} + + /// + /// Called when a pointer is moved. + /// + /// Pointer. + /// This method may also be used to update some internal state or resend this event somewhere. + protected virtual void updatePointer(Pointer pointer) {} + + /// + /// Called when a pointer is released. + /// + /// Pointer. + /// This method may also be used to update some internal state or resend this event somewhere. + protected virtual void releasePointer(Pointer pointer) {} + + /// + /// Called when a pointer is removed. + /// + /// Pointer. + /// This method may also be used to update some internal state or resend this event somewhere. + protected virtual void removePointer(Pointer pointer) {} + + /// + /// Called when a pointer is cancelled. + /// + /// Pointer. + /// This method may also be used to update some internal state or resend this event somewhere. + protected virtual void cancelPointer(Pointer pointer) {} + + /// + /// Creates projection parameters. + /// + /// Created instance. + protected virtual ProjectionParams createProjectionParams() + { + return new ProjectionParams(); + } + + #endregion + } + + /// + /// Arguments used with events. + /// + public class TouchLayerEventArgs : EventArgs + { + /// + /// Gets the pointer associated with the event. + /// + public Pointer Pointer { get; private set; } + + /// + /// Initializes a new instance of the class. + /// + /// The pointer associated with the event. + public TouchLayerEventArgs(Pointer pointer) + : base() + { + Pointer = pointer; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Layers/TouchLayer.cs.meta b/Source/Assets/TouchScript/Scripts/Layers/TouchLayer.cs.meta new file mode 100644 index 000000000..8d2bc3f6b --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/TouchLayer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fa6c5418ec5d043f19db8de147aba5ad +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Layers/UI.meta b/Source/Assets/TouchScript/Scripts/Layers/UI.meta new file mode 100644 index 000000000..846098d55 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/UI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 98bf3eb5cb0e24a748a370189ec5829e +folderAsset: yes +timeCreated: 1470651932 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Layers/UI/TouchScriptInputModule.cs b/Source/Assets/TouchScript/Scripts/Layers/UI/TouchScriptInputModule.cs new file mode 100644 index 000000000..9ee625d6f --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/UI/TouchScriptInputModule.cs @@ -0,0 +1,780 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using System.Reflection; +using TouchScript.Hit; +using TouchScript.Pointers; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using Pointer = TouchScript.Pointers.Pointer; +using UnityEngine.Profiling; + +namespace TouchScript.Layers.UI +{ + /// + /// An implementation of a Unity UI Input Module which lets TouchScript interact with the UI and EventSystem. + /// + internal sealed class TouchScriptInputModule : BaseInputModule + { + #region Public properties + + /// + /// TouchScriptInputModule singleton instance. + /// + public static TouchScriptInputModule Instance + { + get + { + if (shuttingDown) return null; + if (instance == null) + { + var es = EventSystem.current; + if (es == null) + { + es = FindObjectOfType(); + if (es == null) + { + var go = new GameObject("EventSystem"); + es = go.AddComponent(); + } + } + instance = es.GetComponent(); + if (instance == null) instance = es.gameObject.AddComponent(); + } + return instance; + } + } + + public string HorizontalAxis = "Horizontal"; + public string VerticalAxis = "Vertical"; + public string SubmitButton = "Submit"; + public string CancelButton = "Cancel"; + public float InputActionsPerSecond = 10; + public float RepeatDelay = 0.5f; + + #endregion + + #region Private variables + + private static bool shuttingDown = false; + private static TouchScriptInputModule instance; + private static FieldInfo raycastersProp; + private static PropertyInfo canvasProp; + private static Dictionary raycasterCanvasCache = new Dictionary(10); + + private int refCount = 0; + private UIStandardInputModule ui; + + #endregion + + #region Constructor + + private TouchScriptInputModule() + { + if (raycastersProp == null) + { + raycastersProp = Type.GetType(Assembly.CreateQualifiedName("UnityEngine.UI", "UnityEngine.EventSystems.RaycasterManager")). + GetField("s_Raycasters", BindingFlags.NonPublic | BindingFlags.Static); + canvasProp = typeof(GraphicRaycaster).GetProperty("canvas", BindingFlags.NonPublic | BindingFlags.Instance); + } + } + + #endregion + + #region Unity methods + + protected override void OnEnable() + { + base.OnEnable(); + + if (instance == null) instance = this; + else + { + if (instance == this) return; + Destroy(this); + } + } + + protected override void OnDisable() + { + disable(); + if (instance == this) instance = null; + base.OnDisable(); + } + + private void OnApplicationQuit() + { + shuttingDown = true; + } + + #endregion + + #region Public methods + + /// + /// Returns all UI raycasters in the scene. + /// + /// Array of raycasters. + public List GetRaycasters() + { + return raycastersProp.GetValue(null) as List; + } + + /// + /// Returns a Canvas for a raycaster. + /// + /// The raycaster. + /// The Canvas this raycaster is on. + public Canvas GetCanvasForRaycaster(BaseRaycaster raycaster) + { + var id = raycaster.GetInstanceID(); + Canvas canvas; + if (!raycasterCanvasCache.TryGetValue(id, out canvas)) + { + canvas = canvasProp.GetValue(raycaster, null) as Canvas; + raycasterCanvasCache.Add(id, canvas); + } + return canvas; + } + + public override void Process() + { + if (ui != null) ui.Process(); + } + + public override bool IsPointerOverGameObject(int pointerId) + { + if (ui != null) return ui.IsPointerOverGameObject(pointerId); + return false; + } + + public override bool ShouldActivateModule() + { + return true; + } + + public override bool IsModuleSupported() + { + return true; + } + + public override void DeactivateModule() {} + + public override void ActivateModule() {} + + public override void UpdateModule() {} + + #endregion + + #region Internal methods + + /// + /// Marks that this object is used by some other object. + /// + internal void INTERNAL_Retain() + { + refCount++; + if (refCount == 1) enable(); + } + + /// + /// Releases a lock on this object. + /// + /// The number of objects still using this object. + internal int INTERNAL_Release() + { + if (--refCount <= 0) disable(); + return refCount; + } + + #endregion + + #region Private functions + + private void enable() + { + ui = new UIStandardInputModule(this); + TouchManager.Instance.PointersAdded += ui.ProcessAdded; + TouchManager.Instance.PointersUpdated += ui.ProcessUpdated; + TouchManager.Instance.PointersPressed += ui.ProcessPressed; + TouchManager.Instance.PointersReleased += ui.ProcessReleased; + TouchManager.Instance.PointersRemoved += ui.ProcessRemoved; + TouchManager.Instance.PointersCancelled += ui.ProcessCancelled; + } + + private void disable() + { + if (TouchManager.Instance != null && ui != null) + { + TouchManager.Instance.PointersAdded -= ui.ProcessAdded; + TouchManager.Instance.PointersUpdated -= ui.ProcessUpdated; + TouchManager.Instance.PointersPressed -= ui.ProcessPressed; + TouchManager.Instance.PointersReleased -= ui.ProcessReleased; + TouchManager.Instance.PointersRemoved -= ui.ProcessRemoved; + TouchManager.Instance.PointersCancelled -= ui.ProcessCancelled; + } + refCount = 0; + } + + #endregion + + #region Copy-pasted code from UI + + /// + /// Basically, copied code from UI Input Module which handles all UI pointer processing logic. + /// Last update: df1947cd (5.4f3) + /// + private class UIStandardInputModule + { + protected TouchScriptInputModule input; + +#if UNITY_5_6_OR_NEWER + private CustomSampler uiSampler; +#endif + + public UIStandardInputModule(TouchScriptInputModule input) + { + this.input = input; + +#if UNITY_5_6_OR_NEWER + uiSampler = CustomSampler.Create("[TouchScript] Update UI"); +#endif + } + + #region Unchanged from PointerInputModule + + private int m_ConsecutiveMoveCount = 0; + private Vector2 m_LastMoveVector; + private float m_PrevActionTime; + + private Dictionary m_PointerData = new Dictionary(10); + + public bool IsPointerOverGameObject(int pointerId) + { + var lastPointer = GetLastPointerEventData(pointerId); + if (lastPointer != null) + return lastPointer.pointerEnter != null; + return false; + } + + protected bool GetPointerData(int id, out PointerEventData data, bool create) + { + if (!m_PointerData.TryGetValue(id, out data) && create) + { + data = new PointerEventData(input.eventSystem) + { + pointerId = id, + }; + m_PointerData.Add(id, data); + return true; + } + return false; + } + + protected void DeselectIfSelectionChanged(GameObject currentOverGo, BaseEventData pointerEvent) + { + // Selection tracking + var selectHandlerGO = ExecuteEvents.GetEventHandler(currentOverGo); + // if we have clicked something new, deselect the old thing + // leave 'selection handling' up to the press event though. + if (selectHandlerGO != input.eventSystem.currentSelectedGameObject) + input.eventSystem.SetSelectedGameObject(null, pointerEvent); + } + + protected PointerEventData GetLastPointerEventData(int id) + { + PointerEventData data; + GetPointerData(id, out data, false); + return data; + } + + private static bool ShouldStartDrag(Vector2 pressPos, Vector2 currentPos, float threshold, bool useDragThreshold) + { + if (!useDragThreshold) + return true; + + return (pressPos - currentPos).sqrMagnitude >= threshold * threshold; + } + + private bool SendUpdateEventToSelectedObject() + { + if (input.eventSystem.currentSelectedGameObject == null) + return false; + + var data = input.GetBaseEventData(); + ExecuteEvents.Execute(input.eventSystem.currentSelectedGameObject, data, ExecuteEvents.updateSelectedHandler); + return data.used; + } + + private bool SendMoveEventToSelectedObject() + { + float time = Time.unscaledTime; + + Vector2 movement = GetRawMoveVector(); + if (Mathf.Approximately(movement.x, 0f) && Mathf.Approximately(movement.y, 0f)) + { + m_ConsecutiveMoveCount = 0; + return false; + } + + // If user pressed key again, always allow event + bool allow = Input.GetButtonDown(input.HorizontalAxis) || Input.GetButtonDown(input.VerticalAxis); + bool similarDir = (Vector2.Dot(movement, m_LastMoveVector) > 0); + if (!allow) + { + // Otherwise, user held down key or axis. + // If direction didn't change at least 90 degrees, wait for delay before allowing consequtive event. + if (similarDir && m_ConsecutiveMoveCount == 1) + allow = (time > m_PrevActionTime + input.RepeatDelay); + // If direction changed at least 90 degree, or we already had the delay, repeat at repeat rate. + else + allow = (time > m_PrevActionTime + 1f / input.InputActionsPerSecond); + } + if (!allow) + return false; + + // Debug.Log(m_ProcessingEvent.rawType + " axis:" + m_AllowAxisEvents + " value:" + "(" + x + "," + y + ")"); + var axisEventData = input.GetAxisEventData(movement.x, movement.y, 0.6f); + + if (axisEventData.moveDir != MoveDirection.None) + { + ExecuteEvents.Execute(input.eventSystem.currentSelectedGameObject, axisEventData, ExecuteEvents.moveHandler); + if (!similarDir) + m_ConsecutiveMoveCount = 0; + m_ConsecutiveMoveCount++; + m_PrevActionTime = time; + m_LastMoveVector = movement; + } + else + { + m_ConsecutiveMoveCount = 0; + } + + return axisEventData.used; + } + + private bool SendSubmitEventToSelectedObject() + { + if (input.eventSystem.currentSelectedGameObject == null) + return false; + + var data = input.GetBaseEventData(); + if (Input.GetButtonDown(input.SubmitButton)) + ExecuteEvents.Execute(input.eventSystem.currentSelectedGameObject, data, ExecuteEvents.submitHandler); + + if (Input.GetButtonDown(input.CancelButton)) + ExecuteEvents.Execute(input.eventSystem.currentSelectedGameObject, data, ExecuteEvents.cancelHandler); + return data.used; + } + + private Vector2 GetRawMoveVector() + { + Vector2 move = Vector2.zero; + move.x = Input.GetAxisRaw(input.HorizontalAxis); + move.y = Input.GetAxisRaw(input.VerticalAxis); + + if (Input.GetButtonDown(input.HorizontalAxis)) + { + if (move.x < 0) + move.x = -1f; + if (move.x > 0) + move.x = 1f; + } + if (Input.GetButtonDown(input.VerticalAxis)) + { + if (move.y < 0) + move.y = -1f; + if (move.y > 0) + move.y = 1f; + } + return move; + } + + #endregion + + public void Process() + { + bool usedEvent = SendUpdateEventToSelectedObject(); + + if (input.eventSystem.sendNavigationEvents) + { + if (!usedEvent) + usedEvent |= SendMoveEventToSelectedObject(); + + if (!usedEvent) + SendSubmitEventToSelectedObject(); + } + + // touch needs to take precedence because of the mouse emulation layer + // if (!ProcessTouchEvents() && Input.mousePresent) + // ProcessMouseEvent(); + } + + #region Changed + + protected void RemovePointerData(int id) + { + m_PointerData.Remove(id); + } + + private void convertRaycast(RaycastHitUI old, ref RaycastResult current) + { + current.module = old.Raycaster; + current.gameObject = old.Target == null ? null : old.Target.gameObject; + current.depth = old.Depth; + current.index = old.GraphicIndex; + current.sortingLayer = old.SortingLayer; + current.sortingOrder = old.SortingOrder; + } + + #endregion + + #region Event processors + + public virtual void ProcessAdded(object sender, PointerEventArgs pointerEventArgs) + { +#if UNITY_5_6_OR_NEWER + uiSampler.Begin(); +#endif + + var pointers = pointerEventArgs.Pointers; + var raycast = new RaycastResult(); + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + var over = pointer.GetOverData(); + + // Don't update the pointer if it is not over an UI element + if (over.Type != HitData.HitType.UI) continue; + + PointerEventData data; + GetPointerData(pointer.Id, out data, true); + data.Reset(); + var target = over.Target; + var currentOverGo = target == null ? null : target.gameObject; + + data.position = pointer.Position; + data.delta = Vector2.zero; + convertRaycast(over.RaycastHitUI, ref raycast); + raycast.screenPosition = data.position; + data.pointerCurrentRaycast = raycast; + + input.HandlePointerExitAndEnter(data, currentOverGo); + } + +#if UNITY_5_6_OR_NEWER + uiSampler.End(); +#endif + } + + public virtual void ProcessUpdated(object sender, PointerEventArgs pointerEventArgs) + { +#if UNITY_5_6_OR_NEWER + uiSampler.Begin(); +#endif + + var pointers = pointerEventArgs.Pointers; + var raycast = new RaycastResult(); + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + var over = pointer.GetOverData(); + + // Don't update the pointer if it is pressed not over an UI element + if ((pointer.Buttons & Pointer.PointerButtonState.AnyButtonPressed) > 0) + { + var press = pointer.GetPressData(); + if (press.Type != HitData.HitType.UI) continue; + } + else + { + // Don't update the pointer if it is not over an UI element + if (over.Type != HitData.HitType.UI) continue; + } + + PointerEventData data; + GetPointerData(pointer.Id, out data, true); + data.Reset(); + var target = over.Target; + var currentOverGo = target == null ? null : target.gameObject; + + data.position = pointer.Position; + data.delta = pointer.Position - pointer.PreviousPosition; + convertRaycast(over.RaycastHitUI, ref raycast); + raycast.screenPosition = data.position; + data.pointerCurrentRaycast = raycast; + + input.HandlePointerExitAndEnter(data, currentOverGo); + + bool moving = data.IsPointerMoving(); + + if (moving && data.pointerDrag != null + && !data.dragging + && ShouldStartDrag(data.pressPosition, data.position, input.eventSystem.pixelDragThreshold, data.useDragThreshold)) + { + ExecuteEvents.Execute(data.pointerDrag, data, ExecuteEvents.beginDragHandler); + data.dragging = true; + } + + // Drag notification + if (data.dragging && moving && data.pointerDrag != null) + { + // Before doing drag we should cancel any pointer down state + // And clear selection! + if (data.pointerPress != data.pointerDrag) + { + ExecuteEvents.Execute(data.pointerPress, data, ExecuteEvents.pointerUpHandler); + + data.eligibleForClick = false; + data.pointerPress = null; + data.rawPointerPress = null; + } + ExecuteEvents.Execute(data.pointerDrag, data, ExecuteEvents.dragHandler); + } + + var mousePointer = pointer as MousePointer; + if (mousePointer != null && !Mathf.Approximately(mousePointer.ScrollDelta.sqrMagnitude, 0.0f)) + { + data.scrollDelta = mousePointer.ScrollDelta; + var scrollHandler = ExecuteEvents.GetEventHandler(currentOverGo); + ExecuteEvents.ExecuteHierarchy(scrollHandler, data, ExecuteEvents.scrollHandler); + } + } + +#if UNITY_5_6_OR_NEWER + uiSampler.End(); +#endif + } + + public virtual void ProcessPressed(object sender, PointerEventArgs pointerEventArgs) + { +#if UNITY_5_6_OR_NEWER + uiSampler.Begin(); +#endif + + var pointers = pointerEventArgs.Pointers; + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + + var over = pointer.GetOverData(); + // Don't update the pointer if it is not over an UI element + if (over.Type != HitData.HitType.UI) continue; + + PointerEventData data; + GetPointerData(pointer.Id, out data, true); + var target = over.Target; + var currentOverGo = target == null ? null : target.gameObject; + + data.eligibleForClick = true; + data.delta = Vector2.zero; + data.dragging = false; + data.useDragThreshold = true; + data.position = pointer.Position; + data.pressPosition = pointer.Position; + data.pointerPressRaycast = data.pointerCurrentRaycast; + + DeselectIfSelectionChanged(currentOverGo, data); + + if (data.pointerEnter != currentOverGo) + { + // send a pointer enter to the touched element if it isn't the one to select... + input.HandlePointerExitAndEnter(data, currentOverGo); + data.pointerEnter = currentOverGo; + } + + // search for the control that will receive the press + // if we can't find a press handler set the press + // handler to be what would receive a click. + var newPressed = ExecuteEvents.ExecuteHierarchy(currentOverGo, data, ExecuteEvents.pointerDownHandler); + + // didnt find a press handler... search for a click handler + if (newPressed == null) + newPressed = ExecuteEvents.GetEventHandler(currentOverGo); + + // Debug.Log("Pressed: " + newPressed); + + float time = Time.unscaledTime; + + if (newPressed == data.lastPress) // ? + { + var diffTime = time - data.clickTime; + if (diffTime < 0.3f) + ++data.clickCount; + else + data.clickCount = 1; + + data.clickTime = time; + } + else + { + data.clickCount = 1; + } + + data.pointerPress = newPressed; + data.rawPointerPress = currentOverGo; + + data.clickTime = time; + + // Save the drag handler as well + data.pointerDrag = ExecuteEvents.GetEventHandler(currentOverGo); + + if (data.pointerDrag != null) + ExecuteEvents.Execute(data.pointerDrag, data, ExecuteEvents.initializePotentialDrag); + } + +#if UNITY_5_6_OR_NEWER + uiSampler.End(); +#endif + } + + public virtual void ProcessReleased(object sender, PointerEventArgs pointerEventArgs) + { +#if UNITY_5_6_OR_NEWER + uiSampler.Begin(); +#endif + + var pointers = pointerEventArgs.Pointers; + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + var press = pointer.GetPressData(); + // Don't update the pointer if it is was not pressed over an UI element + if (press.Type != HitData.HitType.UI) continue; + + var over = pointer.GetOverData(); + + PointerEventData data; + GetPointerData(pointer.Id, out data, true); + var target = over.Target; + var currentOverGo = target == null ? null : target.gameObject; + + ExecuteEvents.Execute(data.pointerPress, data, ExecuteEvents.pointerUpHandler); + var pointerUpHandler = ExecuteEvents.GetEventHandler(currentOverGo); + if (data.pointerPress == pointerUpHandler && data.eligibleForClick) + { + ExecuteEvents.Execute(data.pointerPress, data, ExecuteEvents.pointerClickHandler); + } + else if (data.pointerDrag != null && data.dragging) + { + ExecuteEvents.ExecuteHierarchy(currentOverGo, data, ExecuteEvents.dropHandler); + } + + data.eligibleForClick = false; + data.pointerPress = null; + data.rawPointerPress = null; + + if (data.pointerDrag != null && data.dragging) + ExecuteEvents.Execute(data.pointerDrag, data, ExecuteEvents.endDragHandler); + + data.dragging = false; + data.pointerDrag = null; + + // send exit events as we need to simulate this on touch up on touch device + ExecuteEvents.ExecuteHierarchy(data.pointerEnter, data, ExecuteEvents.pointerExitHandler); + data.pointerEnter = null; + + // redo pointer enter / exit to refresh state + // so that if we moused over somethign that ignored it before + // due to having pressed on something else + // it now gets it. + if (currentOverGo != data.pointerEnter) + { + input.HandlePointerExitAndEnter(data, null); + input.HandlePointerExitAndEnter(data, currentOverGo); + } + } + +#if UNITY_5_6_OR_NEWER + uiSampler.End(); +#endif + } + + public virtual void ProcessCancelled(object sender, PointerEventArgs pointerEventArgs) + { +#if UNITY_5_6_OR_NEWER + uiSampler.Begin(); +#endif + + var pointers = pointerEventArgs.Pointers; + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + + var over = pointer.GetOverData(); + + PointerEventData data; + GetPointerData(pointer.Id, out data, true); + var target = over.Target; + var currentOverGo = target == null ? null : target.gameObject; + + ExecuteEvents.Execute(data.pointerPress, data, ExecuteEvents.pointerUpHandler); + + if (data.pointerDrag != null && data.dragging) + { + ExecuteEvents.ExecuteHierarchy(currentOverGo, data, ExecuteEvents.dropHandler); + } + + data.eligibleForClick = false; + data.pointerPress = null; + data.rawPointerPress = null; + + if (data.pointerDrag != null && data.dragging) + ExecuteEvents.Execute(data.pointerDrag, data, ExecuteEvents.endDragHandler); + + data.dragging = false; + data.pointerDrag = null; + + // send exit events as we need to simulate this on touch up on touch device + ExecuteEvents.ExecuteHierarchy(data.pointerEnter, data, ExecuteEvents.pointerExitHandler); + data.pointerEnter = null; + } + +#if UNITY_5_6_OR_NEWER + uiSampler.End(); +#endif + } + + public virtual void ProcessRemoved(object sender, PointerEventArgs pointerEventArgs) + { +#if UNITY_5_6_OR_NEWER + uiSampler.Begin(); +#endif + + var pointers = pointerEventArgs.Pointers; + var count = pointers.Count; + for (var i = 0; i < count; i++) + { + var pointer = pointers[i]; + + var over = pointer.GetOverData(); + // Don't update the pointer if it is not over an UI element + if (over.Type != HitData.HitType.UI) continue; + + PointerEventData data; + GetPointerData(pointer.Id, out data, true); + + if (data.pointerEnter) ExecuteEvents.ExecuteHierarchy(data.pointerEnter, data, ExecuteEvents.pointerExitHandler); + RemovePointerData(pointer.Id); + } + +#if UNITY_5_6_OR_NEWER + uiSampler.End(); +#endif + } + + #endregion + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Layers/UI/TouchScriptInputModule.cs.meta b/Source/Assets/TouchScript/Scripts/Layers/UI/TouchScriptInputModule.cs.meta new file mode 100644 index 000000000..f0b279514 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Layers/UI/TouchScriptInputModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 803d2abe167ae40a0957010be5cfb7d1 +timeCreated: 1470651932 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Pointers.meta b/Source/Assets/TouchScript/Scripts/Pointers.meta new file mode 100644 index 000000000..2c3e39723 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b511f0050fd1e4bdc9acaf7d90868785 +folderAsset: yes +timeCreated: 1467463752 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Pointers/FakePointer.cs b/Source/Assets/TouchScript/Scripts/Pointers/FakePointer.cs new file mode 100644 index 000000000..f78aa06ca --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/FakePointer.cs @@ -0,0 +1,77 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Hit; +using TouchScript.InputSources; +using UnityEngine; + +namespace TouchScript.Pointers +{ + /// + /// Fake pointer. + /// + /// + public class FakePointer : IPointer + { + #region Public properties + + /// + public int Id { get; private set; } + + /// + public Pointer.PointerType Type { get; private set; } + + /// + public IInputSource InputSource { get; private set; } + + /// + public Vector2 Position { get; set; } + + /// + public uint Flags { get; private set; } + + /// + public Pointer.PointerButtonState Buttons { get; private set; } + + /// + public Vector2 PreviousPosition { get; private set; } + + #endregion + + #region Constructors + + /// + /// Initializes a new instance of the class. + /// + /// The position. + public FakePointer(Vector2 position) : this() + { + Position = position; + } + + /// + /// Initializes a new instance of the class. + /// + public FakePointer() + { + Id = Pointer.INVALID_POINTER; + Type = Pointer.PointerType.Unknown; + Flags = Pointer.FLAG_ARTIFICIAL; + } + + #endregion + + #region Public methods + + /// + public HitData GetOverData(bool forceRecalculate = false) + { + HitData overData; + LayerManager.Instance.GetHitTarget(this, out overData); + return overData; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Pointers/FakePointer.cs.meta b/Source/Assets/TouchScript/Scripts/Pointers/FakePointer.cs.meta new file mode 100644 index 000000000..bbd616fb0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/FakePointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a59adb6c636064c8496f0078661777f1 +timeCreated: 1470469109 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Pointers/IPointer.cs b/Source/Assets/TouchScript/Scripts/Pointers/IPointer.cs new file mode 100644 index 000000000..a9e223cef --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/IPointer.cs @@ -0,0 +1,59 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.Hit; +using TouchScript.InputSources; +using UnityEngine; + +namespace TouchScript.Pointers +{ + /// + /// Interface for an abstract pointer. + /// + public interface IPointer + { + /// + /// Internal unique pointer id. + /// + int Id { get; } + + /// + /// Pointer type. See . + /// + Pointer.PointerType Type { get; } + + /// + /// Current buttons state of the pointer. + /// + Pointer.PointerButtonState Buttons { get; } + + /// + /// Original input source which created this pointer. + /// + /// + IInputSource InputSource { get; } + + /// + /// Current position in screen coordinates. + /// + Vector2 Position { get; set; } + + /// + /// Previous position in screen coordinates. + /// + Vector2 PreviousPosition { get; } + + /// + /// Gets or sets pointer flags: + /// Note: setting this property doesn't immediately change its value, the value actually changes during the next TouchManager update phase. + /// + uint Flags { get; } + + /// + /// Returns for current pointer position, i.e. what is right beneath it. Caches the result for the entire frame. + /// + /// if set to true forces to recalculate the value. + HitData GetOverData(bool forceRecalculate = false); + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Pointers/IPointer.cs.meta b/Source/Assets/TouchScript/Scripts/Pointers/IPointer.cs.meta new file mode 100644 index 000000000..00898eceb --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/IPointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c98af71ed8641458f89cd9710017249a +timeCreated: 1470469109 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Pointers/MousePointer.cs b/Source/Assets/TouchScript/Scripts/Pointers/MousePointer.cs new file mode 100644 index 000000000..99f624ba9 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/MousePointer.cs @@ -0,0 +1,59 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.InputSources; +using UnityEngine; + +namespace TouchScript.Pointers +{ + /// + /// A pointer of type . + /// + public class MousePointer : Pointer + { + #region Public properties + + /// + /// Mouse scroll delta this frame. + /// + public Vector2 ScrollDelta { get; set; } + + #endregion + + #region Constructor + + /// + /// Initializes a new instance of the class. + /// + public MousePointer(IInputSource input) : base(input) + { + Type = PointerType.Mouse; + } + + #endregion + + #region Public methods + + /// + public override void CopyFrom(Pointer target) + { + base.CopyFrom(target); + + var mouseTarget = target as MousePointer; + if (mouseTarget == null) return; + ScrollDelta = mouseTarget.ScrollDelta; + } + + #endregion + + #region Internal functions + + //internal override void INTERNAL_Reset() + //{ + // base.INTERNAL_Reset(); + //} + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Pointers/MousePointer.cs.meta b/Source/Assets/TouchScript/Scripts/Pointers/MousePointer.cs.meta new file mode 100644 index 000000000..6e85ae556 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/MousePointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e64c6133ea9544d7a840a578e56d596a +timeCreated: 1467465330 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Pointers/ObjectPointer.cs b/Source/Assets/TouchScript/Scripts/Pointers/ObjectPointer.cs new file mode 100644 index 000000000..ed897852f --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/ObjectPointer.cs @@ -0,0 +1,106 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.InputSources; + +namespace TouchScript.Pointers +{ + /// + /// A pointer of type . + /// + public class ObjectPointer : Pointer + { + #region Public consts + + /// + /// Default object id value when device doesn't provide it. + /// + public const int DEFAULT_OBJECT_ID = 0; + + + /// + /// Default width value when device doesn't provide it. + /// + public const float DEFAULT_WIDTH = 1f; + + /// + /// Default height value when device doesn't provide it. + /// + public const float DEFAULT_HEIGHT = 1f; + + /// + /// Default angle value when device doesn't provide it. + /// + public const float DEFAULT_ANGLE = 0f; + + #endregion + + #region Public properties + + /// + /// The Id of the physical object this pointer represents. + /// + public int ObjectId { get; internal set; } + + /// + /// The Width of the physical object this pointer represents. + /// + public float Width { get; internal set; } + + /// + /// The height of the physical object this pointer represents. + /// + public float Height { get; internal set; } + + /// + /// The Rotation of the physical object this pointer represents. + /// + public float Angle { get; internal set; } + + #endregion + + #region Constructor + + /// + /// Initializes a new instance of the class. + /// + public ObjectPointer(IInputSource input) : base(input) + { + Type = PointerType.Object; + } + + #endregion + + #region Public methods + + /// + public override void CopyFrom(Pointer target) + { + base.CopyFrom(target); + var obj = target as ObjectPointer; + if (obj == null) return; + + ObjectId = obj.ObjectId; + Width = obj.Width; + Height = obj.Height; + Angle = obj.Angle; + } + + #endregion + + #region Internal functions + + /// + internal override void INTERNAL_Reset() + { + base.INTERNAL_Reset(); + ObjectId = DEFAULT_OBJECT_ID; + Width = DEFAULT_WIDTH; + Height = DEFAULT_HEIGHT; + Angle = DEFAULT_ANGLE; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Pointers/ObjectPointer.cs.meta b/Source/Assets/TouchScript/Scripts/Pointers/ObjectPointer.cs.meta new file mode 100644 index 000000000..433c71e93 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/ObjectPointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 64e28c1cdb5fd4afeb8f257057dc4412 +timeCreated: 1467476141 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Pointers/PenPointer.cs b/Source/Assets/TouchScript/Scripts/Pointers/PenPointer.cs new file mode 100644 index 000000000..83ee8ef70 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/PenPointer.cs @@ -0,0 +1,69 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.InputSources; + +namespace TouchScript.Pointers +{ + /// + /// A pointer of type . + /// + public class PenPointer : Pointer + { + #region Public consts + + /// + /// Default pressure value when device doesn't provide it. + /// + public const float DEFAULT_PRESSURE = 0.5f; + + /// + /// Default rotation value when device doesn't provide it. + /// + public const float DEFAULT_ROTATION = 0f; + + #endregion + + #region Public properties + + /// + /// Gets or sets the touch's rotation. + /// + /// Rotation in radians. + public float Rotation { get; set; } + + /// + /// Gets or sets the touch's pressure. + /// + /// Pressure in range [0, 1]. + public float Pressure { get; set; } + + #endregion + + #region Constructor + + /// + /// Initializes a new instance of the class. + /// + public PenPointer(IInputSource input) : base(input) + { + Type = PointerType.Pen; + } + + #endregion + + #region Internal functions + + /// + internal override void INTERNAL_Reset() + { + base.INTERNAL_Reset(); + + Rotation = DEFAULT_ROTATION; + Pressure = DEFAULT_PRESSURE; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Pointers/PenPointer.cs.meta b/Source/Assets/TouchScript/Scripts/Pointers/PenPointer.cs.meta new file mode 100644 index 000000000..3b873ff03 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/PenPointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4056d0c49ca0c4b58b8bc68d14a224cd +timeCreated: 1467465330 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Pointers/Pointer.cs b/Source/Assets/TouchScript/Scripts/Pointers/Pointer.cs new file mode 100644 index 000000000..d00db78af --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/Pointer.cs @@ -0,0 +1,392 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Text; +using TouchScript.Core; +using TouchScript.Hit; +using TouchScript.InputSources; +using TouchScript.Layers; +using TouchScript.Utils; +using UnityEngine; + +namespace TouchScript.Pointers +{ + /// + /// Representation of a pointer (touch, mouse) within TouchScript. + /// An instance of this class is created when user touches the screen. A unique id is assigned to it which doesn't change throughout its life. + /// Attention! Do not store references to these objects beyond pointer's lifetime (i.e. when target finger is lifted off). These objects may be reused internally. Store unique ids instead. + /// + public class Pointer : IPointer, IEquatable + { + #region Constants + + /// + /// Invalid pointer id. + /// + public const int INVALID_POINTER = -1; + + /// + /// This pointer is generated by script and is not mapped to any device input. + /// + public const uint FLAG_ARTIFICIAL = 1 << 0; + + /// + /// This pointer was returned to the system after it was cancelled. + /// + public const uint FLAG_RETURNED = 1 << 1; + + /// + /// This pointer is internal and shouldn't be shown on screen. + /// + public const uint FLAG_INTERNAL = 1 << 2; + + /// + /// Pointer type. + /// + public enum PointerType + { + /// + /// Unknown. + /// + Unknown, + + /// + /// Touch. + /// + Touch, + + /// + /// Mouse. + /// + Mouse, + + /// + /// Pen. + /// + Pen, + + /// + /// Object. + /// + Object + } + + /// + /// The state of buttons for a pointer. Combines 3 types of button events: Pressed (holding a button), Down (just pressed this frame) and Up (released this frame). + /// + [Flags] + public enum PointerButtonState + { + /// + /// No button is pressed. + /// + Nothing = 0, + + /// + /// Indicates a primary action, analogous to a left mouse button down. + /// A or has this flag set when it is in contact with the digitizer surface. + /// A has this flag set when it is in contact with the digitizer surface with no buttons pressed. + /// A has this flag set when the left mouse button is down. + /// + FirstButtonPressed = 1 << 0, + + /// + /// Indicates a secondary action, analogous to a right mouse button down. + /// A or does not use this flag. + /// A has this flag set when it is in contact with the digitizer surface with the pen barrel button pressed. + /// A has this flag set when the right mouse button is down. + /// + SecondButtonPressed = 1 << 1, + + /// + /// Analogous to a mouse wheel button down. + /// A , or does not use this flag. + /// A has this flag set when the mouse wheel button is down. + /// + ThirdButtonPressed = 1 << 2, + + /// + /// Analogous to the first extended button button down. + /// A , or does not use this flag. + /// A has this flag set when the first extended button is down. + /// + FourthButtonPressed = 1 << 3, + + /// + /// Analogous to the second extended button button down. + /// A , or does not use this flag. + /// A has this flag set when the second extended button is down. + /// + FifthButtonPressed = 1 << 4, + + /// + /// First button pressed this frame. + /// + FirstButtonDown = 1 << 11, + + /// + /// First button released this frame. + /// + FirstButtonUp = 1 << 12, + + /// + /// Second button pressed this frame. + /// + SecondButtonDown = 1 << 13, + + /// + /// Second button released this frame. + /// + SecondButtonUp = 1 << 14, + + /// + /// Third button pressed this frame. + /// + ThirdButtonDown = 1 << 15, + + /// + /// Third button released this frame. + /// + ThirdButtonUp = 1 << 16, + + /// + /// Fourth button pressed this frame. + /// + FourthButtonDown = 1 << 17, + + /// + /// Fourth button released this frame. + /// + FourthButtonUp = 1 << 18, + + /// + /// Fifth button pressed this frame. + /// + FifthButtonDown = 1 << 19, + + /// + /// Fifth button released this frame. + /// + FifthButtonUp = 1 << 20, + + /// + /// Any button is pressed. + /// + AnyButtonPressed = FirstButtonPressed | SecondButtonPressed | ThirdButtonPressed | FourthButtonPressed | FifthButtonPressed, + + /// + /// Any button down this frame. + /// + AnyButtonDown = FirstButtonDown | SecondButtonDown | ThirdButtonDown | FourthButtonDown | FifthButtonDown, + + /// + /// Any button up this frame. + /// + AnyButtonUp = FirstButtonUp | SecondButtonUp | ThirdButtonUp | FourthButtonUp | FifthButtonUp + } + + #endregion + + #region Public properties + + /// + public int Id { get; private set; } + + /// + public PointerType Type { get; protected set; } + + /// + public PointerButtonState Buttons { get; set; } + + /// + public IInputSource InputSource { get; private set; } + + /// + public Vector2 Position + { + get { return position; } + set { newPosition = value; } + } + + /// + public Vector2 PreviousPosition { get; private set; } + + /// + public uint Flags { get; set; } + + /// + /// Projection parameters for the layer which created this pointer. + /// + public ProjectionParams ProjectionParams + { + get + { + if (pressData.Layer == null) return null; + return pressData.Layer.GetProjectionParams(this); + } + } + + #endregion + + #region Private variables + + private static StringBuilder builder; + + private LayerManagerInstance layerManager; + private int refCount = 0; + private Vector2 position, newPosition; + private HitData pressData, overData; + private bool overDataIsDirty = true; + + #endregion + + #region Public methods + + /// + public HitData GetOverData(bool forceRecalculate = false) + { + if (overDataIsDirty || forceRecalculate) + { + layerManager.GetHitTarget(this, out overData); + overDataIsDirty = false; + } + return overData; + } + + /// + /// Returns when the pointer was pressed. If the pointer is not pressed uninitialized is returned. + /// + public HitData GetPressData() + { + return pressData; + } + + /// + /// Copies values from the target. + /// + /// The target pointer to copy values from. + public virtual void CopyFrom(Pointer target) + { + Type = target.Type; + Flags = target.Flags; + Buttons = target.Buttons; + position = target.position; + newPosition = target.newPosition; + PreviousPosition = target.PreviousPosition; + } + + /// + public override bool Equals(object other) + { + return Equals(other as Pointer); + } + + /// + public bool Equals(Pointer other) + { + if (other == null) + return false; + + return Id == other.Id; + } + + /// + public override int GetHashCode() + { + return Id; + } + + /// + public override string ToString() + { + if (builder == null) builder = new StringBuilder(); + builder.Length = 0; + builder.Append("(Pointer type: "); + builder.Append(Type); + builder.Append(", id: "); + builder.Append(Id); + builder.Append(", buttons: "); + PointerUtils.PressedButtonsToString(Buttons, builder); + builder.Append(", flags: "); + BinaryUtils.ToBinaryString(Flags, builder, 8); + builder.Append(", position: "); + builder.Append(Position); + builder.Append(")"); + return builder.ToString(); + } + + #endregion + + #region Constructor + + /// + /// Initializes a new instance of the class. + /// + public Pointer(IInputSource input) + { + layerManager = LayerManager.Instance as LayerManagerInstance; + Type = PointerType.Unknown; + InputSource = input; + INTERNAL_Reset(); + } + + #endregion + + #region Internal methods + + internal virtual void INTERNAL_Init(int id) + { + Id = id; + PreviousPosition = position = newPosition; + } + + internal virtual void INTERNAL_Reset() + { + Id = INVALID_POINTER; + INTERNAL_ClearPressData(); + position = newPosition = PreviousPosition = Vector2.zero; + Flags = 0; + Buttons = PointerButtonState.Nothing; + overDataIsDirty = true; + } + + internal virtual void INTERNAL_FrameStarted() + { + Buttons &= ~(PointerButtonState.AnyButtonDown | PointerButtonState.AnyButtonUp); + overDataIsDirty = true; + } + + internal virtual void INTERNAL_UpdatePosition() + { + PreviousPosition = position; + position = newPosition; + } + + internal void INTERNAL_Retain() + { + refCount++; + } + + internal int INTERNAL_Release() + { + return --refCount; + } + + internal void INTERNAL_SetPressData(HitData data) + { + pressData = data; + overData = data; + overDataIsDirty = false; + } + + internal void INTERNAL_ClearPressData() + { + pressData = default(HitData); + refCount = 0; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Pointers/Pointer.cs.meta b/Source/Assets/TouchScript/Scripts/Pointers/Pointer.cs.meta new file mode 100644 index 000000000..bec82fb19 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/Pointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3baa703e27afd464b99782fc4b86ba62 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Pointers/PointerFactory.cs b/Source/Assets/TouchScript/Scripts/Pointers/PointerFactory.cs new file mode 100644 index 000000000..f90184666 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/PointerFactory.cs @@ -0,0 +1,36 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.InputSources; + +namespace TouchScript.Pointers +{ + /// + /// Static factory to create pointers. + /// + public static class PointerFactory + { + /// + /// Creates a pointer of certain type attached to the input source. + /// + /// Pointer type to create. + /// Input source to attach the pointer to. + /// + public static Pointer Create(Pointer.PointerType type, IInputSource input) + { + switch (type) + { + case Pointer.PointerType.Touch: + return new TouchPointer(input); + case Pointer.PointerType.Mouse: + return new MousePointer(input); + case Pointer.PointerType.Pen: + return new PenPointer(input); + case Pointer.PointerType.Object: + return new ObjectPointer(input); + } + return null; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Pointers/PointerFactory.cs.meta b/Source/Assets/TouchScript/Scripts/Pointers/PointerFactory.cs.meta new file mode 100644 index 000000000..63674cb8f --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/PointerFactory.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bcdc6ef93ccbe452bbf3f836f03beea3 +timeCreated: 1467501141 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Pointers/TouchPointer.cs b/Source/Assets/TouchScript/Scripts/Pointers/TouchPointer.cs new file mode 100644 index 000000000..70c72e096 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/TouchPointer.cs @@ -0,0 +1,69 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using TouchScript.InputSources; + +namespace TouchScript.Pointers +{ + /// + /// A pointer of type . + /// + public class TouchPointer : Pointer + { + #region Public consts + + /// + /// Default pressure value when device doesn't provide it. + /// + public const float DEFAULT_PRESSURE = 0.5f; + + /// + /// Default rotation value when device doesn't provide it. + /// + public const float DEFAULT_ROTATION = 0f; + + #endregion + + #region Public properties + + /// + /// Gets or sets the touch's rotation. + /// + /// Rotation in radians. + public float Rotation { get; set; } + + /// + /// Gets or sets the touch's pressure. + /// + /// Pressure in range [0, 1]. + public float Pressure { get; set; } + + #endregion + + #region Constructor + + /// + /// Initializes a new instance of the class. + /// + public TouchPointer(IInputSource input) : base(input) + { + Type = PointerType.Touch; + } + + #endregion + + #region Internal functions + + /// + internal override void INTERNAL_Reset() + { + base.INTERNAL_Reset(); + + Rotation = DEFAULT_ROTATION; + Pressure = DEFAULT_PRESSURE; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Pointers/TouchPointer.cs.meta b/Source/Assets/TouchScript/Scripts/Pointers/TouchPointer.cs.meta new file mode 100644 index 000000000..0117edc3b --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Pointers/TouchPointer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e33e0ca5e0fd54fc29f2fe19666744e4 +timeCreated: 1467465330 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/TouchManager.cs b/Source/Assets/TouchScript/Scripts/TouchManager.cs new file mode 100644 index 000000000..2d4338d8a --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/TouchManager.cs @@ -0,0 +1,613 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using TouchScript.Core; +using TouchScript.Devices.Display; +using TouchScript.Layers; +using TouchScript.Pointers; +using TouchScript.Utils.Attributes; +using UnityEngine; +using UnityEngine.Events; +using Object = UnityEngine.Object; + +namespace TouchScript +{ + /// + /// A facade object to configure and hold parameters for an instance of . Contains constants used throughout the library. + /// + /// + /// + /// An instance of may be added to a Unity scene to hold (i.e. serialize them to the scene) parameters needed to configure an instance of used in application. Which can be accessed via static property. + /// Though it's not required it is a convenient way to configure TouchScript for your scene. You can use different configuration options for different scenes. + /// + [AddComponentMenu("TouchScript/Touch Manager")] + [HelpURL("http://touchscript.github.io/docs/html/T_TouchScript_TouchManager.htm")] + public sealed class TouchManager : DebuggableMonoBehaviour + { + #region Constants + +#if TOUCHSCRIPT_DEBUG + public const int DEBUG_GL_START = int.MinValue; + public const int DEBUG_GL_TOUCH = DEBUG_GL_START; +#endif + + /// + /// Event implementation in Unity EventSystem for pointer events. + /// + [Serializable] + public class PointerEvent : UnityEvent> {} + + /// + /// Event implementation in Unity EventSystem for frame events. + /// + /// + [Serializable] + public class FrameEvent : UnityEvent {} + + /// + /// Values of a bit-mask representing which Unity messages an instance of will dispatch. + /// + [Flags] + public enum MessageType + { + /// + /// Pointer frame started. + /// + FrameStarted = 1 << 0, + + /// + /// Pointer frame finished. + /// + FrameFinished = 1 << 1, + + /// + /// Some pointers were added during the frame. + /// + PointersAdded = 1 << 2, + + /// + /// Some pointers were updated during the frame. + /// + PointersUpdated = 1 << 3, + + /// + /// Some pointers have touched the surface during the frame. + /// + PointersPressed = 1 << 4, + + /// + /// Some pointers were released during the frame. + /// + PointersReleased = 1 << 5, + + /// + /// Some pointers were removed during the frame. + /// + PointersRemoved = 1 << 6, + + /// + /// Some pointers were cancelled during the frame. + /// + PointersCancelled = 1 << 7 + } + + /// + /// Names of dispatched Unity messages. + /// + public enum MessageName + { + /// + /// Pointer frame started. + /// + OnFrameStart = MessageType.FrameStarted, + + /// + /// Pointer frame finished. + /// + OnFrameFinish = MessageType.FrameFinished, + + /// + /// Some pointers were added during the frame. + /// + OnPointersAdd = MessageType.PointersAdded, + + /// + /// Some pointers have updated during the frame. + /// + OnPointersUpdate = MessageType.PointersUpdated, + + /// + /// Some pointers have touched the surface during the frame. + /// + OnPointersPress = MessageType.PointersPressed, + + /// + /// Some pointers were released during the frame. + /// + OnPointersRelease = MessageType.PointersReleased, + + /// + /// Some pointers were removed during the frame. + /// + OnPointersRemove = MessageType.PointersRemoved, + + /// + /// Some pointers were cancelled during the frame. + /// + OnPointersCancel = MessageType.PointersCancelled + } + + /// + /// Centimeter to inch ratio to be used in DPI calculations. + /// + public const float CM_TO_INCH = 0.393700787f; + + /// + /// Inch to centimeter ratio to be used in DPI calculations. + /// + public const float INCH_TO_CM = 1 / CM_TO_INCH; + + /// + /// The value used to represent an unknown state of a screen position. Use to check if a point has unknown value. + /// + public static readonly Vector2 INVALID_POSITION = new Vector2(float.NaN, float.NaN); + + /// + /// TouchScript version. + /// + public static readonly Version VERSION = new Version(9, 0); + + /// + /// TouchScript version suffix. + /// + public static readonly string VERSION_SUFFIX = ""; + + #endregion + + #region Events + + /// + /// Occurs when a new frame is started before all other events. + /// + public FrameEvent OnFrameStart = new FrameEvent(); + + /// + /// Occurs when a frame is finished. After all other events. + /// + [SerializeField] + public FrameEvent OnFrameFinish = new FrameEvent(); + + /// + /// Occurs when new hovering pointers are added. + /// + [SerializeField] + public PointerEvent OnPointersAdd = new PointerEvent(); + + /// + /// Occurs when pointers are updated. + /// + [SerializeField] + public PointerEvent OnPointersUpdate = new PointerEvent(); + + /// + /// Occurs when pointers touch the surface. + /// + [SerializeField] + public PointerEvent OnPointersPress = new PointerEvent(); + + /// + /// Occurs when pointers are released. + /// + [SerializeField] + public PointerEvent OnPointersRelease = new PointerEvent(); + + /// + /// Occurs when pointers are removed from the system. + /// + [SerializeField] + public PointerEvent OnPointersRemove = new PointerEvent(); + + /// + /// Occurs when pointers are cancelled. + /// + [SerializeField] + public PointerEvent OnPointersCancel = new PointerEvent(); + + #endregion + + #region Public properties + + /// + /// Gets the instance of implementation used in the application. + /// + /// An instance of which is in charge of global pointer input control in the application. + public static ITouchManager Instance + { + get { return TouchManagerInstance.Instance; } + } + + /// + /// Gets or sets current display device. + /// + /// Object which holds properties of current display device, like DPI and others. + /// A shortcut for which is also serialized into scene. + public IDisplayDevice DisplayDevice + { + get + { + if (Instance == null) return displayDevice as IDisplayDevice; + return Instance.DisplayDevice; + } + set + { + if (Instance == null) + { + displayDevice = value as Object; + return; + } + Instance.DisplayDevice = value; + } + } + + /// + /// Indicates if TouchScript should create a CameraLayer for you if no layers present in a scene. + /// + /// true if a CameraLayer should be created on startup; otherwise, false. + /// This is usually a desired behavior but sometimes you would want to turn this off if you are using TouchScript only to get pointer input from some device. + public bool ShouldCreateCameraLayer + { + get { return shouldCreateCameraLayer; } + set { shouldCreateCameraLayer = value; } + } + + /// + /// Gets or sets a value indicating whether a should be created in scene if no inputs present. + /// + /// true if StandardInput should be created; otherwise, false. + /// This is usually a desired behavior but sometimes you would want to turn this off. + public bool ShouldCreateStandardInput + { + get { return shouldCreateStandardInput; } + set { shouldCreateStandardInput = value; } + } + + /// + /// Gets or sets a value indicating whether Unity messages are sent when dispatches events. + /// + /// true if Unity messages are used; otherwise, false. + /// If Unity messages are used they are sent to an object set as a value of property or to TouchManager's GameObject if it's null. + public bool UseSendMessage + { + get { return useSendMessage; } + set + { + if (value == useSendMessage) return; + useSendMessage = value; + updateSendMessageSubscription(); + } + } + + /// + /// Gets or sets the bit-mask which indicates which events from an instance of are sent as Unity messages. + /// + /// Bit-mask with corresponding bits for used events. + public MessageType SendMessageEvents + { + get { return sendMessageEvents; } + set + { + if (sendMessageEvents == value) return; + sendMessageEvents = value; + updateSendMessageSubscription(); + } + } + + /// + /// Gets or sets the SendMessage target GameObject. + /// + /// Which GameObject to use to dispatch Unity messages. If null, TouchManager's GameObject is used. + public GameObject SendMessageTarget + { + get { return sendMessageTarget; } + set + { + sendMessageTarget = value; + if (value == null) sendMessageTarget = gameObject; + } + } + + /// + /// Gets or sets a value indicating whether Unity Events should be used. + /// + /// + /// true if TouchManager should use Unity Events; otherwise, false. + /// + public bool UseUnityEvents + { + get { return useUnityEvents; } + set + { + if (useUnityEvents == value) return; + useUnityEvents = value; + updateUnityEventsSubscription(); + } + } + +#if TOUCHSCRIPT_DEBUG + + /// + public override bool DebugMode + { + get { return base.DebugMode; } + set + { + base.DebugMode = value; + if (Application.isPlaying) (Instance as TouchManagerInstance).DebugMode = value; + } + } + +#endif + + #endregion + + #region Public methods + + /// + /// Determines whether a Vector2 represents an invalid position, i.e. if it is equal to . + /// + /// Screen position. + /// true if position is invalid; otherwise, false. + public static bool IsInvalidPosition(Vector2 position) + { + return position.x == INVALID_POSITION.x && position.y == INVALID_POSITION.y; + } + + #endregion + + #region Private variables + + #pragma warning disable CS0414 + + [SerializeField] + [HideInInspector] + private bool basicEditor = true; + + #pragma warning restore CS0414 + + [SerializeField] + private Object displayDevice; + + [SerializeField] + [ToggleLeft] + private bool shouldCreateCameraLayer = true; + + [SerializeField] + [ToggleLeft] + private bool shouldCreateStandardInput = true; + + [SerializeField] + [ToggleLeft] + private bool useSendMessage = false; + + [SerializeField] + private MessageType sendMessageEvents = MessageType.PointersPressed | MessageType.PointersCancelled | + MessageType.PointersReleased | MessageType.PointersUpdated | + MessageType.PointersAdded | MessageType.PointersRemoved; + + [SerializeField] + private GameObject sendMessageTarget; + + [SerializeField] + private bool useUnityEvents = false; + + [SerializeField] + private List layers = new List(); + + #endregion + + #region Unity + + private void Awake() + { + if (Instance == null) return; + +#if TOUCHSCRIPT_DEBUG + if (DebugMode) (Instance as TouchManagerInstance).DebugMode = true; +#endif + + Instance.DisplayDevice = displayDevice as IDisplayDevice; + Instance.ShouldCreateCameraLayer = ShouldCreateCameraLayer; + Instance.ShouldCreateStandardInput = ShouldCreateStandardInput; + for (var i = 0; i < layers.Count; i++) + { + var layer = layers[i]; + if (layer != null) LayerManager.Instance.AddLayer(layer, i); + } + } + + private void OnEnable() + { + updateSendMessageSubscription(); + updateUnityEventsSubscription(); + } + + private void OnDisable() + { + removeSendMessageSubscriptions(); + removeUnityEventsSubscriptions(); + } + + [ContextMenu("Basic Editor")] + private void switchToBasicEditor() + { + basicEditor = true; + } + + #endregion + + #region Private functions + + private void updateSendMessageSubscription() + { + if (!Application.isPlaying) return; + if (Instance == null) return; + + if (sendMessageTarget == null) sendMessageTarget = gameObject; + + removeSendMessageSubscriptions(); + + if (!useSendMessage) return; + + if ((SendMessageEvents & MessageType.FrameStarted) != 0) Instance.FrameStarted += frameStartedSendMessageHandler; + if ((SendMessageEvents & MessageType.FrameFinished) != 0) Instance.FrameFinished += frameFinishedSendMessageHandler; + if ((SendMessageEvents & MessageType.PointersAdded) != 0) Instance.PointersAdded += pointersAddedSendMessageHandler; + if ((SendMessageEvents & MessageType.PointersUpdated) != 0) Instance.PointersUpdated += pointersUpdatedSendMessageHandler; + if ((SendMessageEvents & MessageType.PointersPressed) != 0) Instance.PointersPressed += pointersPressedSendMessageHandler; + if ((SendMessageEvents & MessageType.PointersReleased) != 0) Instance.PointersReleased += pointersReleasedSendMessageHandler; + if ((SendMessageEvents & MessageType.PointersRemoved) != 0) Instance.PointersRemoved += pointersRemovedSendMessageHandler; + if ((SendMessageEvents & MessageType.PointersCancelled) != 0) Instance.PointersCancelled += pointersCancelledSendMessageHandler; + } + + private void removeSendMessageSubscriptions() + { + if (!Application.isPlaying) return; + if (Instance == null) return; + + Instance.FrameStarted -= frameStartedSendMessageHandler; + Instance.FrameFinished -= frameFinishedSendMessageHandler; + Instance.PointersAdded -= pointersAddedSendMessageHandler; + Instance.PointersUpdated -= pointersUpdatedSendMessageHandler; + Instance.PointersPressed -= pointersPressedSendMessageHandler; + Instance.PointersReleased -= pointersReleasedSendMessageHandler; + Instance.PointersRemoved -= pointersRemovedSendMessageHandler; + Instance.PointersCancelled -= pointersCancelledSendMessageHandler; + } + + private void pointersAddedSendMessageHandler(object sender, PointerEventArgs e) + { + sendMessageTarget.SendMessage(MessageName.OnPointersAdd.ToString(), e.Pointers, + SendMessageOptions.DontRequireReceiver); + } + + private void pointersUpdatedSendMessageHandler(object sender, PointerEventArgs e) + { + sendMessageTarget.SendMessage(MessageName.OnPointersUpdate.ToString(), e.Pointers, + SendMessageOptions.DontRequireReceiver); + } + + private void pointersPressedSendMessageHandler(object sender, PointerEventArgs e) + { + sendMessageTarget.SendMessage(MessageName.OnPointersPress.ToString(), e.Pointers, + SendMessageOptions.DontRequireReceiver); + } + + private void pointersReleasedSendMessageHandler(object sender, PointerEventArgs e) + { + sendMessageTarget.SendMessage(MessageName.OnPointersRelease.ToString(), e.Pointers, + SendMessageOptions.DontRequireReceiver); + } + + private void pointersRemovedSendMessageHandler(object sender, PointerEventArgs e) + { + sendMessageTarget.SendMessage(MessageName.OnPointersRemove.ToString(), e.Pointers, + SendMessageOptions.DontRequireReceiver); + } + + private void pointersCancelledSendMessageHandler(object sender, PointerEventArgs e) + { + sendMessageTarget.SendMessage(MessageName.OnPointersCancel.ToString(), e.Pointers, + SendMessageOptions.DontRequireReceiver); + } + + private void frameStartedSendMessageHandler(object sender, EventArgs e) + { + sendMessageTarget.SendMessage(MessageName.OnFrameStart.ToString(), + SendMessageOptions.DontRequireReceiver); + } + + private void frameFinishedSendMessageHandler(object sender, EventArgs e) + { + sendMessageTarget.SendMessage(MessageName.OnFrameFinish.ToString(), + SendMessageOptions.DontRequireReceiver); + } + + private void updateUnityEventsSubscription() + { + if (!Application.isPlaying) return; + if (Instance == null) return; + + removeUnityEventsSubscriptions(); + + if (!useUnityEvents) return; + + Instance.FrameStarted += frameStartedUnityEventsHandler; + Instance.FrameFinished += frameFinishedUnityEventsHandler; + Instance.PointersAdded += pointersAddedUnityEventsHandler; + Instance.PointersUpdated += pointersUpdatedUnityEventsHandler; + Instance.PointersPressed += pointersPressedUnityEventsHandler; + Instance.PointersReleased += pointersReleasedUnityEventsHandler; + Instance.PointersRemoved += pointersRemovedUnityEventsHandler; + Instance.PointersCancelled += pointersCancelledUnityEventsHandler; + } + + private void removeUnityEventsSubscriptions() + { + if (!Application.isPlaying) return; + if (Instance == null) return; + + Instance.FrameStarted -= frameStartedUnityEventsHandler; + Instance.FrameFinished -= frameFinishedUnityEventsHandler; + Instance.PointersAdded -= pointersAddedUnityEventsHandler; + Instance.PointersUpdated -= pointersUpdatedUnityEventsHandler; + Instance.PointersPressed -= pointersPressedUnityEventsHandler; + Instance.PointersReleased -= pointersReleasedUnityEventsHandler; + Instance.PointersRemoved -= pointersRemovedUnityEventsHandler; + Instance.PointersCancelled -= pointersCancelledUnityEventsHandler; + } + + private void pointersAddedUnityEventsHandler(object sender, PointerEventArgs e) + { + OnPointersAdd.Invoke(e.Pointers); + } + + private void pointersUpdatedUnityEventsHandler(object sender, PointerEventArgs e) + { + OnPointersUpdate.Invoke(e.Pointers); + } + + private void pointersPressedUnityEventsHandler(object sender, PointerEventArgs e) + { + OnPointersPress.Invoke(e.Pointers); + } + + private void pointersReleasedUnityEventsHandler(object sender, PointerEventArgs e) + { + OnPointersRelease.Invoke(e.Pointers); + } + + private void pointersRemovedUnityEventsHandler(object sender, PointerEventArgs e) + { + OnPointersRemove.Invoke(e.Pointers); + } + + private void pointersCancelledUnityEventsHandler(object sender, PointerEventArgs e) + { + OnPointersCancel.Invoke(e.Pointers); + } + + private void frameStartedUnityEventsHandler(object sender, EventArgs e) + { + OnFrameStart.Invoke(); + } + + private void frameFinishedUnityEventsHandler(object sender, EventArgs e) + { + OnFrameFinish.Invoke(); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/TouchManager.cs.meta b/Source/Assets/TouchScript/Scripts/TouchManager.cs.meta new file mode 100644 index 000000000..8331053b7 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/TouchManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0dd4c394fe06f4ea49e03aaa5e7a8190 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e1e5ef31262d242ce8efe2020a27425e, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils.meta b/Source/Assets/TouchScript/Scripts/Utils.meta new file mode 100644 index 000000000..24596c59c --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 94b09a278f9bf422ea8468fdb2ed3db6 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/Attributes.meta b/Source/Assets/TouchScript/Scripts/Utils/Attributes.meta new file mode 100644 index 000000000..9744a0add --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Attributes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 962d3ca65c6334c91adb7097cbd4ea41 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/Attributes/NullToggleAttribute.cs b/Source/Assets/TouchScript/Scripts/Utils/Attributes/NullToggleAttribute.cs new file mode 100644 index 000000000..6266d2d00 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Attributes/NullToggleAttribute.cs @@ -0,0 +1,30 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Utils.Attributes +{ + /// + /// An attribute to use with NullToggle item drawer. + /// For internal use only! + /// + public class NullToggleAttribute : PropertyAttribute + { + /// + /// Int value + /// + public int NullIntValue = 0; + + /// + /// Float value + /// + public float NullFloatValue = 0f; + + /// + /// Object value + /// + public Object NullObjectValue = null; + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/Attributes/NullToggleAttribute.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/Attributes/NullToggleAttribute.cs.meta new file mode 100644 index 000000000..8e9a7ebd0 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Attributes/NullToggleAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 500ae466c1b0f443c88d9a615bb03d0a +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/Attributes/ToggleLeftAttribute.cs b/Source/Assets/TouchScript/Scripts/Utils/Attributes/ToggleLeftAttribute.cs new file mode 100644 index 000000000..ddf118d48 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Attributes/ToggleLeftAttribute.cs @@ -0,0 +1,14 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Utils.Attributes +{ + /// + /// An attribute to use with ToggleLeft item drawer. + /// For internal use only! + /// + public class ToggleLeftAttribute : PropertyAttribute {} +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/Attributes/ToggleLeftAttribute.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/Attributes/ToggleLeftAttribute.cs.meta new file mode 100644 index 000000000..da3e28bf7 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Attributes/ToggleLeftAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 64858b188cac74031ad199cbcc9df40b +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/BinaryUtils.cs b/Source/Assets/TouchScript/Scripts/Utils/BinaryUtils.cs new file mode 100644 index 000000000..b47049acb --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/BinaryUtils.cs @@ -0,0 +1,62 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using System.Text; + +namespace TouchScript.Utils +{ + /// + /// Utility methods to deal with binary data. + /// + public static class BinaryUtils + { + /// + /// Formats an integer value to a binary string. + /// + /// The integer value. + /// The string builder to use. + /// The number of digits to include in the string. + public static void ToBinaryString(uint value, StringBuilder builder, int digits = 32) + { + int i = digits - 1; + + while (i >= 0) + { + builder.Append((value & (1 << i)) == 0 ? 0 : 1); + i--; + } + } + + /// + /// Formats an integer value to a binary string. + /// + /// The integer value. + /// The number of digits to include in the string. + /// A binary string. + public static string ToBinaryString(uint value, int digits = 32) + { + var sb = new StringBuilder(digits); + ToBinaryString(value, sb, digits); + return sb.ToString(); + } + + /// + /// Converts a collection of bool values to a bit mask. + /// + /// The collection of bool values. + /// Binary mask. + public static uint ToBinaryMask(IEnumerable collection) + { + uint mask = 0; + var count = 0; + foreach (bool value in collection) + { + if (value) mask |= (uint) (1 << count); + if (++count >= 32) break; + } + return mask; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/BinaryUtils.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/BinaryUtils.cs.meta new file mode 100644 index 000000000..5811728d3 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/BinaryUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3b405a870ebaf43898b07b1b373e55b8 +timeCreated: 1470559674 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/ClusterUtils.cs b/Source/Assets/TouchScript/Scripts/Utils/ClusterUtils.cs new file mode 100644 index 000000000..0daf363a7 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/ClusterUtils.cs @@ -0,0 +1,67 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Collections.Generic; +using System.Text; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Utils +{ + /// + /// Utils to manipulate clusters of points. + /// + public static class ClusterUtils + { + private static StringBuilder hashString = new StringBuilder(); + + /// + /// Calculates the centroid of pointers' positions. + /// + /// List of pointers. + /// Centroid of pointers' positions or if cluster contains no points. + public static Vector2 Get2DCenterPosition(IList pointers) + { + var count = pointers.Count; + if (count == 0) return TouchManager.INVALID_POSITION; + if (count == 1) return pointers[0].Position; + + var position = new Vector2(); + for (var i = 0; i < count; i++) position += pointers[i].Position; + return position / count; + } + + /// + /// Calculates the centroid of pointers' previous positions. + /// + /// List of pointers. + /// Centroid of pointers' previous positions or if cluster contains no points. + public static Vector2 GetPrevious2DCenterPosition(IList pointers) + { + var count = pointers.Count; + if (count == 0) return TouchManager.INVALID_POSITION; + if (count == 1) return pointers[0].PreviousPosition; + + var position = new Vector2(); + for (var i = 0; i < count; i++) position += pointers[i].PreviousPosition; + return position / count; + } + + /// + /// Computes a unique hash for a list of pointers. + /// + /// List of pointers. + /// A unique string for a list of pointers. + public static string GetPointsHash(IList pointers) + { + hashString.Remove(0, hashString.Length); + for (var i = 0; i < pointers.Count; i++) + { + hashString.Append("#"); + hashString.Append(pointers[i].Id); + } + return hashString.ToString(); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/ClusterUtils.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/ClusterUtils.cs.meta new file mode 100644 index 000000000..d8e26ec10 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/ClusterUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3522d1ca5a49945dca1a128d730d36d6 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/EventHandlerExtensions.cs b/Source/Assets/TouchScript/Scripts/Utils/EventHandlerExtensions.cs new file mode 100644 index 000000000..e5e931c1d --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/EventHandlerExtensions.cs @@ -0,0 +1,60 @@ +/* + * @author DenizPiri / denizpiri@hotmail.com + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using UnityEngine; + +namespace TouchScript.Utils +{ + /// + /// Extension methods for event handling. + /// + public static class EventHandlerExtensions + { + /// + /// Invokes an event handling exceptions. + /// + /// EventArgs type. + /// Event. + /// Event sender. + /// EventArgs. + /// The exception caught or null. + public static Exception InvokeHandleExceptions(this EventHandler handler, object sender, T args) + where T : EventArgs + { + try + { + handler(sender, args); + } + catch (Exception ex) + { + Debug.LogException(ex); + return ex; + } + return null; + } + + /// + /// Invokes an event handling exceptions. + /// + /// Event. + /// Event sender. + /// EventArgs. + /// The exception caught or null. + public static Exception InvokeHandleExceptions(this EventHandler handler, object sender, EventArgs args) + { + try + { + handler(sender, args); + } + catch (Exception ex) + { + Debug.LogException(ex); + return ex; + } + return null; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/EventHandlerExtensions.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/EventHandlerExtensions.cs.meta new file mode 100644 index 000000000..f3889b4bd --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/EventHandlerExtensions.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 16651960676f1435284a3165c7170f10 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/Geom.meta b/Source/Assets/TouchScript/Scripts/Utils/Geom.meta new file mode 100644 index 000000000..90eb5817a --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Geom.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6a9e4e930f8c8442bb0e31a2355ca9f2 +folderAsset: yes +timeCreated: 1447582128 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/Geom/ProjectionUtils.cs b/Source/Assets/TouchScript/Scripts/Utils/Geom/ProjectionUtils.cs new file mode 100644 index 000000000..3acb24629 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Geom/ProjectionUtils.cs @@ -0,0 +1,47 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Utils.Geom +{ + /// + /// Projection utils. + /// + public static class ProjectionUtils + { + /// + /// Projects a screen point to a plane from a camera's point of view. + /// + /// Screen point. + /// The camera. + /// Projection plane. + /// Projected point on the plane in World coordinates. + public static Vector3 CameraToPlaneProjection(Vector2 position, Camera camera, Plane projectionPlane) + { + var distance = 0f; + var ray = camera.ScreenPointToRay(position); + var result = projectionPlane.Raycast(ray, out distance); + if (!result && Mathf.Approximately(distance, 0f)) return -projectionPlane.normal * projectionPlane.GetDistanceToPoint(Vector3.zero); // perpendicular to the screen + + return ray.origin + ray.direction * distance; + } + + /// + /// Projects a screen point to a plane using parallel projection. + /// + /// Screen point. + /// Projection plane. + /// Projected point on the plane in World coordinates. + public static Vector3 ScreenToPlaneProjection(Vector2 position, Plane projectionPlane) + { + var distance = 0f; + var ray = new Ray(position, Vector3.forward); + var result = projectionPlane.Raycast(ray, out distance); + if (!result && Mathf.Approximately(distance, 0f)) return -projectionPlane.normal * projectionPlane.GetDistanceToPoint(Vector3.zero); // perpendicular to the screen + + return ray.origin + new Vector3(0, 0, distance); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/Geom/ProjectionUtils.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/Geom/ProjectionUtils.cs.meta new file mode 100644 index 000000000..6d19f044d --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Geom/ProjectionUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0f6a32a9da8914f8c88280d791911330 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/Geom/TwoD.cs b/Source/Assets/TouchScript/Scripts/Utils/Geom/TwoD.cs new file mode 100644 index 000000000..1c74320ea --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Geom/TwoD.cs @@ -0,0 +1,62 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using UnityEngine; + +namespace TouchScript.Utils.Geom +{ + /// + /// A class with 2D helper functions. + /// + public static class TwoD + { + /// + /// Calculates distance from line to point. + /// + /// Line "starting" point. + /// Line "ending" point. + /// Point to calculate the distance to. + /// Distance between point and line. + public static float PointToLineDistance(Vector2 lineStart, Vector2 lineEnd, Vector2 point) + { + var dx = lineEnd.x - lineStart.x; + var dy = lineEnd.y - lineStart.y; + return (dy * point.x - dx * point.y + lineEnd.x * lineStart.y - lineEnd.y * lineStart.x) / Mathf.Sqrt(dx * dx + dy * dy); + } + + /// + /// Calculates distances from line to each of 2 points. + /// + /// Line "starting" point. + /// Line "ending" point. + /// Point to calculate the distance to. + /// Point to calculate the distance to. + /// Contains returned distance from line to the first point. + /// Contains returned distance from line to the second point. + public static void PointToLineDistance2(Vector2 lineStart, Vector2 lineEnd, Vector2 point1, Vector2 point2, + out float dist1, out float dist2) + { + var dx = lineEnd.x - lineStart.x; + var dy = lineEnd.y - lineStart.y; + var c = lineEnd.x * lineStart.y - lineEnd.y * lineStart.x; + var length = Mathf.Sqrt(dx * dx + dy * dy); + dist1 = (dy * point1.x - dx * point1.y + c) / length; + dist2 = (dy * point2.x - dx * point2.y + c) / length; + } + + /// + /// Rotates a point around (0,0) by an angle. + /// + /// Point to rotate. + /// Angle in degrees to rotate by. + /// Transformed point. + public static Vector2 Rotate(Vector2 point, float angle) + { + var rad = angle * Mathf.Deg2Rad; + var cos = Mathf.Cos(rad); + var sin = Mathf.Sin(rad); + return new Vector2(point.x * cos - point.y * sin, point.x * sin + point.y * cos); + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/Geom/TwoD.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/Geom/TwoD.cs.meta new file mode 100644 index 000000000..30e1fdc98 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Geom/TwoD.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 87273644198f34358acfa852108c1405 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/ObjectPool.cs b/Source/Assets/TouchScript/Scripts/Utils/ObjectPool.cs new file mode 100644 index 000000000..5b7cf1f92 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/ObjectPool.cs @@ -0,0 +1,128 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + * Source code copied from UnityEngine.UI.ObjectPool: + * https://bitbucket.org/Unity-Technologies/ui/src/ccb946ecc23815d1a7099aee0ed77b0cde7ff278/UnityEngine.UI/UI/Core/Utility/ObjectPool.cs?at=5.1 + */ + +using System; +using System.Collections.Generic; +using UnityEngine.Events; + +#if OBJECTPOOL_DEBUG +using UnityEngine; +#endif + +namespace TouchScript.Utils +{ + /// + public class ObjectPool where T : class + { + public delegate T0 UnityFunc(); + + private readonly Stack stack; + private readonly UnityAction onGet; + private readonly UnityAction onRelease; + private readonly UnityFunc onNew; + + public string Name { get; set; } + + public int CountAll { get; private set; } + + public int CountActive + { + get { return CountAll - CountInactive; } + } + + public int CountInactive + { + get { return stack.Count; } + } + + public ObjectPool(int capacity, UnityFunc actionNew, UnityAction actionOnGet = null, + UnityAction actionOnRelease = null, string name = null) + { + if (actionNew == null) throw new ArgumentException("New action can't be null!"); + stack = new Stack(capacity); + onNew = actionNew; + onGet = actionOnGet; + onRelease = actionOnRelease; + Name = name; + } + + public void WarmUp(int count) + { + for (var i = 0; i < count; i++) + { + var element = onNew(); + CountAll++; + stack.Push(element); + } + } + + public T Get() + { +#if OBJECTPOOL_DEBUG + var created = false; +#endif + T element; + if (stack.Count == 0) + { +#if OBJECTPOOL_DEBUG + created = true; + logWarning("Created an object."); +#endif + element = onNew(); + CountAll++; + } + else + { + element = stack.Pop(); + } + if (onGet != null) onGet(element); +#if OBJECTPOOL_DEBUG + log(string.Format("Getting object from pool. New: {0}, count: {1}, left: {2}", created, CountAll, stack.Count)); +#endif + return element; + } + + public void Release(T element) + { +#if OBJECTPOOL_DEBUG + if (stack.Count > 0 && ReferenceEquals(stack.Peek(), element)) + logError("Internal error. Trying to destroy object that is already released to pool."); +#endif + if (onRelease != null) onRelease(element); + stack.Push(element); +#if OBJECTPOOL_DEBUG + log(string.Format("Returned object to pool. Left: {0}", stack.Count)); +#endif + } + + public void Release(object element) + { + var obj = (T) element; + if (obj == null) return; + Release(obj); + } + +#if OBJECTPOOL_DEBUG + private void log(string message) + { + if (string.IsNullOrEmpty(Name)) return; + UnityEngine.Debug.LogFormat("[{0}] ObjectPool ({1}): {2}", DateTime.Now.ToString("hh:mm:ss.fff"), Name, message); + } + + private void logWarning(string message) + { + if (string.IsNullOrEmpty(Name)) return; + UnityEngine.Debug.LogWarningFormat("[{0}] ObjectPool ({1}): {2}", DateTime.Now.ToString("hh:mm:ss.fff"), Name, message); + } + + private void logError(string message) + { + if (string.IsNullOrEmpty(Name)) return; + UnityEngine.Debug.LogErrorFormat("[{0}] ObjectPool ({1}): {2}", DateTime.Now.ToString("hh:mm:ss.fff"), Name, message); + } +#endif + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/ObjectPool.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/ObjectPool.cs.meta new file mode 100644 index 000000000..a52d29d97 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/ObjectPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bb8f15d86c04a46e197326e7d89fe6a2 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/Platform.meta b/Source/Assets/TouchScript/Scripts/Utils/Platform.meta new file mode 100644 index 000000000..0b9109615 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Platform.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e3045b87ade623e42ade0bb0df4f6d5c +folderAsset: yes +timeCreated: 1500666269 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/Platform/WindowsUtils.cs b/Source/Assets/TouchScript/Scripts/Utils/Platform/WindowsUtils.cs new file mode 100644 index 000000000..776f448e6 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Platform/WindowsUtils.cs @@ -0,0 +1,112 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +#if UNITY_STANDALONE_WIN + +using System; +using System.Runtime.InteropServices; +using UnityEngine; + +namespace TouchScript.Utils.Platform +{ + /// + /// Utility methods on Windows. + /// + public static class WindowsUtils + { + // disables press and hold (right-click) gesture + public const int TABLET_DISABLE_PRESSANDHOLD = 0x00000001; + // disables UI feedback on pen up (waves) + public const int TABLET_DISABLE_PENTAPFEEDBACK = 0x00000008; + // disables UI feedback on pen button down (circle) + public const int TABLET_DISABLE_PENBARRELFEEDBACK = 0x00000010; + // disables pen flicks (back, forward, drag down, drag up); + public const int TABLET_DISABLE_FLICKS = 0x00010000; + + public const int MONITOR_DEFAULTTONEAREST = 2; + + /// + /// Retrieves the native monitor resolution. + /// + /// Output width. + /// Output height. + public static void GetNativeMonitorResolution(out int width, out int height) + { + var monitor = MonitorFromWindow(GetActiveWindow(), MONITOR_DEFAULTTONEAREST); + MONITORINFO monitorInfo = new MONITORINFO(); + monitorInfo.cbSize = Marshal.SizeOf(monitorInfo); + if (!GetMonitorInfo(monitor, ref monitorInfo)) + { + width = Screen.width; + height = Screen.height; + } + else + { + width = monitorInfo.rcMonitor.Width; + height = monitorInfo.rcMonitor.Height; + } + } + + [StructLayout(LayoutKind.Sequential)] + public struct RECT + { + public int Left, Top, Right, Bottom; + + public RECT(int left, int top, int right, int bottom) + { + Left = left; + Top = top; + Right = right; + Bottom = bottom; + } + + public int Height + { + get { return Bottom - Top; } + set { Bottom = value + Top; } + } + + public int Width + { + get { return Right - Left; } + set { Right = value + Left; } + } + } + + [StructLayout(LayoutKind.Sequential)] + public struct MONITORINFO + { + public int cbSize; + public RECT rcMonitor; + public RECT rcWork; + public uint dwFlags; + } + + [DllImport("user32.dll")] + public static extern IntPtr GetActiveWindow(); + + [DllImport("user32.dll")] + public static extern IntPtr MonitorFromWindow(IntPtr hwnd, uint dwFlags); + + [DllImport("user32.dll")] + public static extern bool GetMonitorInfo(IntPtr hMonitor, ref MONITORINFO lpmi); + + [DllImport("Kernel32.dll")] + public static extern ushort GlobalAddAtom(string lpString); + + [DllImport("Kernel32.dll")] + public static extern ushort GlobalDeleteAtom(ushort nAtom); + + [DllImport("user32.dll")] + public static extern int SetProp(IntPtr hWnd, string lpString, int hData); + + [DllImport("user32.dll")] + public static extern int RemoveProp(IntPtr hWnd, string lpString); + + [DllImport("user32.dll")] + public static extern IntPtr EnableMouseInPointer(bool value); + } +} + +#endif \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/Platform/WindowsUtils.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/Platform/WindowsUtils.cs.meta new file mode 100644 index 000000000..bab1f5aa5 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/Platform/WindowsUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 553858766c518794ea00a0d9f11b20e0 +timeCreated: 1500666524 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/PointerUtils.cs b/Source/Assets/TouchScript/Scripts/Utils/PointerUtils.cs new file mode 100644 index 000000000..785072a30 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/PointerUtils.cs @@ -0,0 +1,203 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Text; +using TouchScript.Hit; +using TouchScript.Pointers; +using UnityEngine; + +namespace TouchScript.Utils +{ + /// + /// Utility methods to work with Pointers. + /// + public static class PointerUtils + { + private static StringBuilder sb; + + /// + /// Determines whether the pointer is over its target GameObject. + /// + /// The pointer. + /// true if the pointer is over the GameObject; false otherwise. + public static bool IsPointerOnTarget(Pointer pointer) + { + if (pointer == null) return false; + return IsPointerOnTarget(pointer, pointer.GetPressData().Target); + } + + /// + /// Determines whether the pointer is over a specific GameObject. + /// + /// The pointer. + /// The target. + /// true if the pointer is over the GameObject; false otherwise. + public static bool IsPointerOnTarget(IPointer pointer, Transform target) + { + HitData hit; + return IsPointerOnTarget(pointer, target, out hit); + } + + /// + /// Determines whether the pointer is over a specific GameObject. + /// + /// The pointer. + /// The target. + /// The hit. + /// true if the pointer is over the GameObject; false otherwise. + public static bool IsPointerOnTarget(IPointer pointer, Transform target, out HitData hit) + { + hit = default(HitData); + if (pointer == null || target == null) return false; + hit = pointer.GetOverData(); + if (hit.Target == null) return false; + return hit.Target.IsChildOf(target); + } + + /// + /// Formats currently pressed buttons as a string. + /// + /// The buttons state. + /// Formatted string of currently pressed buttons. + public static string PressedButtonsToString(Pointer.PointerButtonState buttons) + { + initStringBuilder(); + + PressedButtonsToString(buttons, sb); + return sb.ToString(); + } + + /// + /// Formats currently pressed buttons as a string. + /// + /// The buttons state. + /// The string builder to use. + public static void PressedButtonsToString(Pointer.PointerButtonState buttons, StringBuilder builder) + { + if ((buttons & Pointer.PointerButtonState.FirstButtonPressed) != 0) builder.Append("1"); + else builder.Append("_"); + if ((buttons & Pointer.PointerButtonState.SecondButtonPressed) != 0) builder.Append("2"); + else builder.Append("_"); + if ((buttons & Pointer.PointerButtonState.ThirdButtonPressed) != 0) builder.Append("3"); + else builder.Append("_"); + if ((buttons & Pointer.PointerButtonState.FourthButtonPressed) != 0) builder.Append("4"); + else builder.Append("_"); + if ((buttons & Pointer.PointerButtonState.FifthButtonPressed) != 0) builder.Append("5"); + else builder.Append("_"); + } + + /// + /// Formats the state of buttons as a string. + /// + /// The buttons state. + /// Formatted string of the buttons state. + public static string ButtonsToString(Pointer.PointerButtonState buttons) + { + initStringBuilder(); + + ButtonsToString(buttons, sb); + return sb.ToString(); + } + + /// + /// Formats the state of buttons as a string. + /// + /// The buttons state. + /// The string builder to use. + public static void ButtonsToString(Pointer.PointerButtonState buttons, StringBuilder builder) + { + if ((buttons & Pointer.PointerButtonState.FirstButtonDown) != 0) builder.Append("v"); + else if ((buttons & Pointer.PointerButtonState.FirstButtonUp) != 0) builder.Append("^"); + else if ((buttons & Pointer.PointerButtonState.FirstButtonPressed) != 0) builder.Append("1"); + else builder.Append("_"); + + if ((buttons & Pointer.PointerButtonState.SecondButtonDown) != 0) builder.Append("v"); + else if ((buttons & Pointer.PointerButtonState.SecondButtonUp) != 0) builder.Append("^"); + else if ((buttons & Pointer.PointerButtonState.SecondButtonPressed) != 0) builder.Append("2"); + else builder.Append("_"); + + if ((buttons & Pointer.PointerButtonState.ThirdButtonDown) != 0) builder.Append("v"); + else if ((buttons & Pointer.PointerButtonState.ThirdButtonUp) != 0) builder.Append("^"); + else if ((buttons & Pointer.PointerButtonState.ThirdButtonPressed) != 0) builder.Append("3"); + else builder.Append("_"); + + if ((buttons & Pointer.PointerButtonState.FourthButtonDown) != 0) builder.Append("v"); + else if ((buttons & Pointer.PointerButtonState.FourthButtonUp) != 0) builder.Append("^"); + else if ((buttons & Pointer.PointerButtonState.FourthButtonPressed) != 0) builder.Append("4"); + else builder.Append("_"); + + if ((buttons & Pointer.PointerButtonState.FifthButtonDown) != 0) builder.Append("v"); + else if ((buttons & Pointer.PointerButtonState.FifthButtonUp) != 0) builder.Append("^"); + else if ((buttons & Pointer.PointerButtonState.FifthButtonPressed) != 0) builder.Append("5"); + else builder.Append("_"); + } + + /// + /// Adds pressed state to downed buttons. + /// + /// The buttons state. + /// Changed buttons state. + public static Pointer.PointerButtonState DownPressedButtons(Pointer.PointerButtonState buttons) + { + if ((buttons & Pointer.PointerButtonState.FirstButtonPressed) != 0) + buttons |= Pointer.PointerButtonState.FirstButtonDown; + if ((buttons & Pointer.PointerButtonState.SecondButtonPressed) != 0) + buttons |= Pointer.PointerButtonState.SecondButtonDown; + if ((buttons & Pointer.PointerButtonState.ThirdButtonPressed) != 0) + buttons |= Pointer.PointerButtonState.ThirdButtonDown; + if ((buttons & Pointer.PointerButtonState.FourthButtonPressed) != 0) + buttons |= Pointer.PointerButtonState.FourthButtonDown; + if ((buttons & Pointer.PointerButtonState.FifthButtonPressed) != 0) + buttons |= Pointer.PointerButtonState.FifthButtonDown; + return buttons; + } + + /// + /// Adds downed state to pressed buttons. + /// + /// The buttons state. + /// Changed buttons state. + public static Pointer.PointerButtonState PressDownButtons(Pointer.PointerButtonState buttons) + { + if ((buttons & Pointer.PointerButtonState.FirstButtonDown) != 0) + buttons |= Pointer.PointerButtonState.FirstButtonPressed; + if ((buttons & Pointer.PointerButtonState.SecondButtonDown) != 0) + buttons |= Pointer.PointerButtonState.SecondButtonPressed; + if ((buttons & Pointer.PointerButtonState.ThirdButtonDown) != 0) + buttons |= Pointer.PointerButtonState.ThirdButtonPressed; + if ((buttons & Pointer.PointerButtonState.FourthButtonDown) != 0) + buttons |= Pointer.PointerButtonState.FourthButtonPressed; + if ((buttons & Pointer.PointerButtonState.FifthButtonDown) != 0) + buttons |= Pointer.PointerButtonState.FifthButtonPressed; + return buttons; + } + + /// + /// Converts pressed buttons to up state. + /// + /// The buttons state. + /// Changed buttons state. + public static Pointer.PointerButtonState UpPressedButtons(Pointer.PointerButtonState buttons) + { + var btns = Pointer.PointerButtonState.Nothing; + if ((buttons & Pointer.PointerButtonState.FirstButtonPressed) != 0) + btns |= Pointer.PointerButtonState.FirstButtonUp; + if ((buttons & Pointer.PointerButtonState.SecondButtonPressed) != 0) + btns |= Pointer.PointerButtonState.SecondButtonUp; + if ((buttons & Pointer.PointerButtonState.ThirdButtonPressed) != 0) + btns |= Pointer.PointerButtonState.ThirdButtonUp; + if ((buttons & Pointer.PointerButtonState.FourthButtonPressed) != 0) + btns |= Pointer.PointerButtonState.FourthButtonUp; + if ((buttons & Pointer.PointerButtonState.FifthButtonPressed) != 0) + btns |= Pointer.PointerButtonState.FifthButtonUp; + return btns; + } + + private static void initStringBuilder() + { + if (sb == null) sb = new StringBuilder(); + sb.Length = 0; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/PointerUtils.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/PointerUtils.cs.meta new file mode 100644 index 000000000..a6eed7f1e --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/PointerUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0721b72d19eff46caa81f3098505c837 +timeCreated: 1448974531 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/TimedSequence.cs b/Source/Assets/TouchScript/Scripts/Utils/TimedSequence.cs new file mode 100644 index 000000000..09e036c41 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/TimedSequence.cs @@ -0,0 +1,76 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace TouchScript.Utils +{ + internal sealed class TimedSequence + { + private List points = new List(); + private List timestamps = new List(); + + public void Add(T element) + { + Add(element, Time.unscaledTime); + } + + public void Add(T element, float time) + { + points.Add(element); + timestamps.Add(time); + } + + public void Clear() + { + points.Clear(); + timestamps.Clear(); + } + + public IList FindElementsLaterThan(float time) + { + var list = new List(); + for (var i = points.Count - 1; i >= 0; i--) + { + if (timestamps[i] > time) list.Add(points[i]); + else break; + } + list.Reverse(); + return list; + } + + public IList FindElementsLaterThan(float time, out float lastTime) + { + var list = new List(); + var i = points.Count - 1; + for (; i >= 0; i--) + { + if (timestamps[i] > time) list.Add(points[i]); + else break; + } + list.Reverse(); + if (i < points.Count - 1) lastTime = timestamps[i + 1]; + else lastTime = time; + + return list; + } + + public IList FindElementsLaterThan(float time, Predicate predicate) + { + var list = new List(); + for (var i = points.Count - 1; i >= 0; i--) + { + if (timestamps[i] > time) + { + if (predicate(points[i])) list.Add(points[i]); + } + else break; + } + list.Reverse(); + return list; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/TimedSequence.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/TimedSequence.cs.meta new file mode 100644 index 000000000..d63e2f995 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/TimedSequence.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0978f5226454c474bad885d688e7a254 +timeCreated: 1447582130 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Scripts/Utils/TransformUtils.cs b/Source/Assets/TouchScript/Scripts/Utils/TransformUtils.cs new file mode 100644 index 000000000..60f04c59b --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/TransformUtils.cs @@ -0,0 +1,88 @@ +/* + * @author Valentin Simonov / http://va.lent.in/ + */ + +using System.Text; +using UnityEngine; + +namespace TouchScript.Utils +{ + /// + /// Utility methods to work with Transforms. + /// + public static class TransformUtils + { + private static StringBuilder sb; + + /// + /// Converts a global position of a transform to local position in its parent's coordinate system. + /// + /// The transform. + /// The global position. + /// Local position in transform parent's coordinate system. + public static Vector3 GlobalToLocalPosition(Transform transform, Vector3 global) + { + if (transform.parent == null) return global; + return transform.parent.InverseTransformPoint(global); + } + + /// + /// Converts a global direction of a transform to local direction in its parent's coordinate system. + /// + /// The transform. + /// The global direction. + /// Local direction in transform parent's coordinate system. + public static Vector3 GlobalToLocalDirection(Transform transform, Vector3 global) + { + if (transform.parent == null) return global; + return transform.parent.InverseTransformDirection(global); + } + + /// + /// Converts a global vector of a transform to local vector in its parent's coordinate system. The difference from is that this vector has length. + /// + /// The transform. + /// The global vector. + /// Local vector in transform parent's coordinate system. + public static Vector3 GlobalToLocalVector(Transform transform, Vector3 global) + { + var parent = transform.parent; + if (parent == null) return global; + + var scale = parent.localScale; + var vector = GlobalToLocalVector(parent, global); + vector = Quaternion.Inverse(parent.localRotation) * vector; + vector.x = Mathf.Approximately(scale.x, 0) ? 0 : vector.x / scale.x; + vector.y = Mathf.Approximately(scale.y, 0) ? 0 : vector.y / scale.y; + vector.z = Mathf.Approximately(scale.z, 0) ? 0 : vector.z / scale.z; + + return vector; + } + + /// + /// Returns the string path of the transform in the hierarchy, i.g. "GameObject/ChildGameObject". + /// + /// The transform. + /// The path in the hierarchy. + public static string GetHeirarchyPath(Transform transform) + { + initStringBuilder(); + + if (transform == null) return null; + + while (transform != null) + { + sb.Insert(0, transform.name); + sb.Insert(0, "/"); + transform = transform.parent; + } + return sb.ToString(); + } + + private static void initStringBuilder() + { + if (sb == null) sb = new StringBuilder(); + sb.Length = 0; + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Scripts/Utils/TransformUtils.cs.meta b/Source/Assets/TouchScript/Scripts/Utils/TransformUtils.cs.meta new file mode 100644 index 000000000..14fa3d766 --- /dev/null +++ b/Source/Assets/TouchScript/Scripts/Utils/TransformUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f9faaaf19ee9b4ab9b3f86c9c1832bce +timeCreated: 1447582131 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Shaders.meta b/Source/Assets/TouchScript/Shaders.meta new file mode 100644 index 000000000..d44d50925 --- /dev/null +++ b/Source/Assets/TouchScript/Shaders.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 018a118b0bee547c7a4794ea5bb2b936 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Source/Assets/TouchScript/Shaders/Cursor.shader b/Source/Assets/TouchScript/Shaders/Cursor.shader new file mode 100644 index 000000000..2e29950fc --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/Cursor.shader @@ -0,0 +1,52 @@ +Shader "TouchScript/Cursor" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + SubShader + { + Tags { "Queue"="Transparent" "RenderType" = "Transparent" } + Blend SrcAlpha OneMinusSrcAlpha + ZTest Always + + 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; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = v.uv; + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + float2 uv = float2(length(i.uv - float2(.5, .5)) * 2, 0.5); + fixed4 col = tex2D(_MainTex, uv); + return col; + } + ENDCG + } + } +} diff --git a/Source/Assets/TouchScript/Shaders/Cursor.shader.meta b/Source/Assets/TouchScript/Shaders/Cursor.shader.meta new file mode 100644 index 000000000..768cb5d3e --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/Cursor.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2af36406130024644b499213db069f78 +timeCreated: 1500210432 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Assets/TouchScript/Shaders/DebugDepthTest.shader b/Source/Assets/TouchScript/Shaders/DebugDepthTest.shader new file mode 100644 index 000000000..578f30b05 --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/DebugDepthTest.shader @@ -0,0 +1,13 @@ +Shader "Hidden/DebugDepthTest" { + SubShader { + Pass { + Blend SrcAlpha OneMinusSrcAlpha + ZWrite Off + Cull Off + BindChannels { + Bind "vertex", vertex + Bind "color", color + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Shaders/DebugDepthTest.shader.meta b/Source/Assets/TouchScript/Shaders/DebugDepthTest.shader.meta new file mode 100644 index 000000000..55873c054 --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/DebugDepthTest.shader.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 64be3da0e2cc145c39d170e598c5875a +ShaderImporter: + defaultTextures: [] + userData: diff --git a/Source/Assets/TouchScript/Shaders/DebugMultiplyDepthTest.shader b/Source/Assets/TouchScript/Shaders/DebugMultiplyDepthTest.shader new file mode 100644 index 000000000..4be3bcfb9 --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/DebugMultiplyDepthTest.shader @@ -0,0 +1,13 @@ +Shader "Hidden/DebugMultiplyDepthTest" { + SubShader { + Pass { + Blend OneMinusDstColor Zero + ZWrite Off + Cull Off + BindChannels { + Bind "vertex", vertex + Bind "color", color + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Shaders/DebugMultiplyDepthTest.shader.meta b/Source/Assets/TouchScript/Shaders/DebugMultiplyDepthTest.shader.meta new file mode 100644 index 000000000..7d2ab942a --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/DebugMultiplyDepthTest.shader.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 8ab2229694277419eac9469988b1f138 +ShaderImporter: + defaultTextures: [] + userData: diff --git a/Source/Assets/TouchScript/Shaders/DebugMultiplyNoDepthTest.shader b/Source/Assets/TouchScript/Shaders/DebugMultiplyNoDepthTest.shader new file mode 100644 index 000000000..0a198c97b --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/DebugMultiplyNoDepthTest.shader @@ -0,0 +1,14 @@ +Shader "Hidden/DebugMultiplyNoDepthTest" { + SubShader { + Pass { + Blend OneMinusDstColor Zero + ZWrite Off + ZTest Always + Cull Off + BindChannels { + Bind "vertex", vertex + Bind "color", color + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Shaders/DebugMultiplyNoDepthTest.shader.meta b/Source/Assets/TouchScript/Shaders/DebugMultiplyNoDepthTest.shader.meta new file mode 100644 index 000000000..6d0342fb9 --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/DebugMultiplyNoDepthTest.shader.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 5fa254dc19f5e4c3eac6722085c53e2c +ShaderImporter: + defaultTextures: [] + userData: diff --git a/Source/Assets/TouchScript/Shaders/DebugNoDepthTest.shader b/Source/Assets/TouchScript/Shaders/DebugNoDepthTest.shader new file mode 100644 index 000000000..fcbf25662 --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/DebugNoDepthTest.shader @@ -0,0 +1,14 @@ +Shader "Hidden/DebugNoDepthTest" { + SubShader { + Pass { + Blend SrcAlpha OneMinusSrcAlpha + ZWrite Off + ZTest Always + Cull Off + BindChannels { + Bind "vertex", vertex + Bind "color", color + } + } + } +} \ No newline at end of file diff --git a/Source/Assets/TouchScript/Shaders/DebugNoDepthTest.shader.meta b/Source/Assets/TouchScript/Shaders/DebugNoDepthTest.shader.meta new file mode 100644 index 000000000..f830bf238 --- /dev/null +++ b/Source/Assets/TouchScript/Shaders/DebugNoDepthTest.shader.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 3486b6985d7504c0c9996ab3d9ea1ed7 +ShaderImporter: + defaultTextures: [] + userData: diff --git a/Source/Assets/TouchScript/license.txt b/Source/Assets/TouchScript/license.txt new file mode 100644 index 000000000..1294daf8e --- /dev/null +++ b/Source/Assets/TouchScript/license.txt @@ -0,0 +1,29 @@ +This software is distributed under The MIT License (MIT). + +Copyright (c) 2015 Valentin Simonov and other contributors. + +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. + +Assets used in examples: +1. Skybox Volume 2 (https://www.assetstore.unity3d.com/en/#!/content/3392) +2. Planet Earth Free (https://www.assetstore.unity3d.com/en/#!/content/23399) +3. Wooden Table and Chair (https://www.assetstore.unity3d.com/en/#!/content/18996) +4. Touch gesture illustrations provided by GestureWorks® (www.gestureworks.com) +5. Cartoon UI elements (http://opengameart.org/content/free-game-gui) +6. Cat images are just random images from Google search. \ No newline at end of file diff --git a/Source/Assets/TouchScript/license.txt.meta b/Source/Assets/TouchScript/license.txt.meta new file mode 100644 index 000000000..02480e72d --- /dev/null +++ b/Source/Assets/TouchScript/license.txt.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: d1e3a7a4a02e347bca24205e78d75ba4 +TextScriptImporter: + userData: diff --git a/Examples/Scaleform Examples/ProjectSettings/AudioManager.asset b/Source/ProjectSettings/AudioManager.asset similarity index 100% rename from Examples/Scaleform Examples/ProjectSettings/AudioManager.asset rename to Source/ProjectSettings/AudioManager.asset diff --git a/Source/ProjectSettings/ClusterInputManager.asset b/Source/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 000000000..e7886b266 --- /dev/null +++ b/Source/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/Examples/Scaleform Examples/ProjectSettings/DynamicsManager.asset b/Source/ProjectSettings/DynamicsManager.asset similarity index 95% rename from Examples/Scaleform Examples/ProjectSettings/DynamicsManager.asset rename to Source/ProjectSettings/DynamicsManager.asset index 717b5c27a..e1d58a315 100644 --- a/Examples/Scaleform Examples/ProjectSettings/DynamicsManager.asset +++ b/Source/ProjectSettings/DynamicsManager.asset @@ -11,5 +11,5 @@ PhysicsManager: m_MaxAngularVelocity: 7 m_MinPenetrationForPenalty: .00999999978 m_SolverIterationCount: 6 - m_RaycastsHitTriggers: 1 + m_RaycastsHitTriggers: 0 m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/Source/ProjectSettings/EditorBuildSettings.asset b/Source/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 000000000..8a88d13f0 --- /dev/null +++ b/Source/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/TouchScript/Examples/Examples.unity + guid: 7cba6bf72365a4167930fec2f6f39b74 + - enabled: 1 + path: Assets/TouchScript/Examples/RawInput/RawInput.unity + guid: 9ee061879a6b743808a9f9056a52d885 + - enabled: 1 + path: Assets/TouchScript/Examples/Taps/Taps.unity + guid: 5013fa58cea314376b273bd8905581f4 + - enabled: 1 + path: Assets/TouchScript/Examples/Camera/Camera.unity + guid: 9bc4a96ba8ead427ab54f883160abc15 + - enabled: 1 + path: Assets/TouchScript/Examples/Photos/Photos.unity + guid: e43bdd4f3bf144b74b4726208781dd66 + - enabled: 1 + path: Assets/TouchScript/Examples/Checkers/Checkers.unity + guid: 6ba58961df0a14cad91763f92bda13b9 + - enabled: 1 + path: Assets/TouchScript/Examples/Portal/Portal.unity + guid: 20ddca9320eeb4eb28b7ce5fcb289923 + - enabled: 1 + path: Assets/TouchScript/Examples/Colors/Colors.unity + guid: c56b29ea5ec5a4713b65552d4a8bd9ac + - enabled: 1 + path: Assets/TouchScript/Examples/Cube/Cube.unity + guid: 179bea80bb29f49ab9d5761fc9d3738b + - enabled: 1 + path: Assets/TouchScript/Examples/Multiuser/Multiuser.unity + guid: 3b34d0a4b336446dd98f5f9951fe6480 + - enabled: 1 + path: Assets/TouchScript/Examples/Pull/Pull.unity + guid: 6696ec8da4feb4725bf860ab58fa830f diff --git a/Source/ProjectSettings/EditorSettings.asset b/Source/ProjectSettings/EditorSettings.asset new file mode 100644 index 000000000..f6bcc6a6d --- /dev/null +++ b/Source/ProjectSettings/EditorSettings.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 3 + m_ExternalVersionControlSupport: Visible Meta Files + m_SerializationMode: 2 + m_WebSecurityEmulationEnabled: 0 + m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d + m_DefaultBehaviorMode: 0 + m_SpritePackerMode: 0 diff --git a/Source/ProjectSettings/GraphicsSettings.asset b/Source/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 000000000..5a96ca8a8 --- /dev/null +++ b/Source/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,37 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_ShaderSettings: + useScreenSpaceShadows: 1 + m_BuildTargetShaderSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDirSeparate: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepDynamicDirSeparate: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 diff --git a/Examples/General Examples/ProjectSettings/InputManager.asset b/Source/ProjectSettings/InputManager.asset similarity index 100% rename from Examples/General Examples/ProjectSettings/InputManager.asset rename to Source/ProjectSettings/InputManager.asset diff --git a/Source/ProjectSettings/NavMeshAreas.asset b/Source/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 000000000..79cb3ae98 --- /dev/null +++ b/Source/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,133 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshLayers: + m_ObjectHideFlags: 0 + Built-in Layer 0: + name: Default + cost: 1 + editType: 2 + Built-in Layer 1: + name: Not Walkable + cost: 1 + editType: 0 + Built-in Layer 2: + name: Jump + cost: 2 + editType: 2 + User Layer 0: + name: + cost: 1 + editType: 3 + User Layer 1: + name: + cost: 1 + editType: 3 + User Layer 2: + name: + cost: 1 + editType: 3 + User Layer 3: + name: + cost: 1 + editType: 3 + User Layer 4: + name: + cost: 1 + editType: 3 + User Layer 5: + name: + cost: 1 + editType: 3 + User Layer 6: + name: + cost: 1 + editType: 3 + User Layer 7: + name: + cost: 1 + editType: 3 + User Layer 8: + name: + cost: 1 + editType: 3 + User Layer 9: + name: + cost: 1 + editType: 3 + User Layer 10: + name: + cost: 1 + editType: 3 + User Layer 11: + name: + cost: 1 + editType: 3 + User Layer 12: + name: + cost: 1 + editType: 3 + User Layer 13: + name: + cost: 1 + editType: 3 + User Layer 14: + name: + cost: 1 + editType: 3 + User Layer 15: + name: + cost: 1 + editType: 3 + User Layer 16: + name: + cost: 1 + editType: 3 + User Layer 17: + name: + cost: 1 + editType: 3 + User Layer 18: + name: + cost: 1 + editType: 3 + User Layer 19: + name: + cost: 1 + editType: 3 + User Layer 20: + name: + cost: 1 + editType: 3 + User Layer 21: + name: + cost: 1 + editType: 3 + User Layer 22: + name: + cost: 1 + editType: 3 + User Layer 23: + name: + cost: 1 + editType: 3 + User Layer 24: + name: + cost: 1 + editType: 3 + User Layer 25: + name: + cost: 1 + editType: 3 + User Layer 26: + name: + cost: 1 + editType: 3 + User Layer 27: + name: + cost: 1 + editType: 3 + User Layer 28: + name: + cost: 1 + editType: 3 diff --git a/Source/ProjectSettings/NavMeshLayers.asset b/Source/ProjectSettings/NavMeshLayers.asset new file mode 100644 index 000000000..79cb3ae98 --- /dev/null +++ b/Source/ProjectSettings/NavMeshLayers.asset @@ -0,0 +1,133 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshLayers: + m_ObjectHideFlags: 0 + Built-in Layer 0: + name: Default + cost: 1 + editType: 2 + Built-in Layer 1: + name: Not Walkable + cost: 1 + editType: 0 + Built-in Layer 2: + name: Jump + cost: 2 + editType: 2 + User Layer 0: + name: + cost: 1 + editType: 3 + User Layer 1: + name: + cost: 1 + editType: 3 + User Layer 2: + name: + cost: 1 + editType: 3 + User Layer 3: + name: + cost: 1 + editType: 3 + User Layer 4: + name: + cost: 1 + editType: 3 + User Layer 5: + name: + cost: 1 + editType: 3 + User Layer 6: + name: + cost: 1 + editType: 3 + User Layer 7: + name: + cost: 1 + editType: 3 + User Layer 8: + name: + cost: 1 + editType: 3 + User Layer 9: + name: + cost: 1 + editType: 3 + User Layer 10: + name: + cost: 1 + editType: 3 + User Layer 11: + name: + cost: 1 + editType: 3 + User Layer 12: + name: + cost: 1 + editType: 3 + User Layer 13: + name: + cost: 1 + editType: 3 + User Layer 14: + name: + cost: 1 + editType: 3 + User Layer 15: + name: + cost: 1 + editType: 3 + User Layer 16: + name: + cost: 1 + editType: 3 + User Layer 17: + name: + cost: 1 + editType: 3 + User Layer 18: + name: + cost: 1 + editType: 3 + User Layer 19: + name: + cost: 1 + editType: 3 + User Layer 20: + name: + cost: 1 + editType: 3 + User Layer 21: + name: + cost: 1 + editType: 3 + User Layer 22: + name: + cost: 1 + editType: 3 + User Layer 23: + name: + cost: 1 + editType: 3 + User Layer 24: + name: + cost: 1 + editType: 3 + User Layer 25: + name: + cost: 1 + editType: 3 + User Layer 26: + name: + cost: 1 + editType: 3 + User Layer 27: + name: + cost: 1 + editType: 3 + User Layer 28: + name: + cost: 1 + editType: 3 diff --git a/Examples/Scaleform Examples/ProjectSettings/NetworkManager.asset b/Source/ProjectSettings/NetworkManager.asset similarity index 100% rename from Examples/Scaleform Examples/ProjectSettings/NetworkManager.asset rename to Source/ProjectSettings/NetworkManager.asset diff --git a/Examples/Scaleform Examples/ProjectSettings/Physics2DSettings.asset b/Source/ProjectSettings/Physics2DSettings.asset similarity index 100% rename from Examples/Scaleform Examples/ProjectSettings/Physics2DSettings.asset rename to Source/ProjectSettings/Physics2DSettings.asset diff --git a/Source/ProjectSettings/ProjectSettings.asset b/Source/ProjectSettings/ProjectSettings.asset new file mode 100644 index 000000000..68627b0a0 --- /dev/null +++ b/Source/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,616 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + productGUID: 0b2aa2b1c24cbc74ca2d27d2f6d0b8b4 + AndroidProfiler: 0 + defaultScreenOrientation: 3 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: valyard + productName: TouchScript Examples + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21176471, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_SplashScreenBackgroundLandscape: {fileID: 0} + m_SplashScreenBackgroundPortrait: {fileID: 0} + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + m_MTRendering: 1 + m_MobileMTRendering: 0 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + tizenShowActivityIndicatorOnLoading: -1 + iosAppInBackgroundBehavior: 1 + displayResolutionDialog: 1 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 0 + disableDepthAndStencilBuffers: 0 + defaultIsFullScreen: 0 + defaultIsNativeResolution: 1 + runInBackground: 1 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + graphicsJobs: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 0 + allowFullscreenSwitch: 1 + graphicsJobMode: 0 + macFullscreenMode: 2 + d3d9FullscreenMode: 1 + d3d11FullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + n3dsDisableStereoscopicView: 0 + n3dsEnableSharedListOpt: 1 + n3dsEnableVSync: 0 + ignoreAlphaClear: 0 + xboxOneResolution: 0 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + videoMemoryForVertexBuffers: 0 + psp2PowerMode: 0 + psp2AcquireBGM: 1 + wiiUTVResolution: 0 + wiiUGamePadMSAA: 1 + wiiUSupportsNunchuk: 0 + wiiUSupportsClassicController: 0 + wiiUSupportsBalanceBoard: 0 + wiiUSupportsMotionPlus: 0 + wiiUSupportsProController: 0 + wiiUAllowScreenCapture: 1 + wiiUControllerCount: 0 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 0 + xboxOneEnable7thCore: 0 + vrSettings: + cardboard: + depthFormat: 0 + enableTransitionView: 0 + daydream: + depthFormat: 0 + useSustainedPerformanceMode: 0 + hololens: + depthFormat: 1 + protectGraphicsMemory: 0 + useHDRDisplay: 0 + applicationIdentifier: + Android: ru.valyard.touchscript + Standalone: unity.valyard.TouchScript Examples + Tizen: ru.valyard.touchscript + iOS: ru.valyard.touchscript + tvOS: ru.valyard.touchscript + buildNumber: + iOS: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 16 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 1 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + VertexChannelCompressionMask: + serializedVersion: 2 + m_Bits: 238 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 8.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 9.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 1 + uIStatusBarStyle: 0 + iPhoneSplashScreen: {fileID: 0} + iPhoneHighResSplashScreen: {fileID: 0} + iPhoneTallHighResSplashScreen: {fileID: 0} + iPhone47inSplashScreen: {fileID: 0} + iPhone55inPortraitSplashScreen: {fileID: 0} + iPhone55inLandscapeSplashScreen: {fileID: 0} + iPadPortraitSplashScreen: {fileID: 0} + iPadHighResPortraitSplashScreen: {fileID: 0} + iPadLandscapeSplashScreen: {fileID: 0} + iPadHighResLandscapeSplashScreen: {fileID: 0} + appleTVSplashScreen: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSLargeIconLayers: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageWideLayers: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 0 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 1 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + appleEnableAutomaticSigning: 0 + AndroidTargetDevice: 0 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidTVCompatibility: 1 + AndroidIsGame: 1 + androidEnableBanner: 1 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + resolutionDialogBanner: {fileID: 0} + m_BuildTargetIcons: + - m_BuildTarget: + m_Icons: + - serializedVersion: 2 + m_Icon: {fileID: 0} + m_Width: 128 + m_Height: 128 + m_BuildTargetBatching: [] + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: WindowsStandaloneSupport + m_APIs: 01000000 + m_Automatic: 0 + - m_BuildTarget: AndroidPlayer + m_APIs: 08000000 + m_Automatic: 0 + m_BuildTargetVRSettings: [] + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + webPlayerTemplate: APPLICATION:Default + m_TemplateCustomTags: {} + wiiUTitleID: 0005000011000000 + wiiUGroupID: 00010000 + wiiUCommonSaveSize: 4096 + wiiUAccountSaveSize: 2048 + wiiUOlvAccessKey: 0 + wiiUTinCode: 0 + wiiUJoinGameId: 0 + wiiUJoinGameModeMask: 0000000000000000 + wiiUCommonBossSize: 0 + wiiUAccountBossSize: 0 + wiiUAddOnUniqueIDs: [] + wiiUMainThreadStackSize: 3072 + wiiULoaderThreadStackSize: 1024 + wiiUSystemHeapSize: 128 + wiiUTVStartupScreen: {fileID: 0} + wiiUGamePadStartupScreen: {fileID: 0} + wiiUDrcBufferDisabled: 0 + wiiUProfilerLibPath: + playModeTestRunnerEnabled: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchTouchScreenUsage: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchDataLossConfirmation: 0 + switchSupportedNpadStyles: 3 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 1 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 120 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 1 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + ps4Passcode: 5xr84P2R391UXaLHbavJvFZGfO47XWS2 + ps4UseDebugIl2cppLibs: 0 + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 3 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + monoEnv: + psp2Splashimage: {fileID: 0} + psp2NPTrophyPackPath: + psp2NPSupportGBMorGJP: 0 + psp2NPAgeRating: 12 + psp2NPTitleDatPath: + psp2NPCommsID: + psp2NPCommunicationsID: + psp2NPCommsPassphrase: + psp2NPCommsSig: + psp2ParamSfxPath: + psp2ManualPath: + psp2LiveAreaGatePath: + psp2LiveAreaBackroundPath: + psp2LiveAreaPath: + psp2LiveAreaTrialPath: + psp2PatchChangeInfoPath: + psp2PatchOriginalPackage: + psp2PackagePassword: qVOw5lxuBEBNue7b9PZS0hoI6pgabi9U + psp2KeystoneFile: + psp2MemoryExpansionMode: 0 + psp2DRMType: 0 + psp2StorageType: 0 + psp2MediaCapacity: 0 + psp2DLCConfigPath: + psp2ThumbnailPath: + psp2BackgroundPath: + psp2SoundPath: + psp2TrophyCommId: + psp2TrophyPackagePath: + psp2PackagedResourcesPath: + psp2SaveDataQuota: 10240 + psp2ParentalLevel: 1 + psp2ShortTitle: Not Set + psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF + psp2Category: 0 + psp2MasterVersion: 01.00 + psp2AppVersion: 01.00 + psp2TVBootMode: 0 + psp2EnterButtonAssignment: 2 + psp2TVDisableEmu: 0 + psp2AllowTwitterDialog: 1 + psp2Upgradable: 0 + psp2HealthWarning: 0 + psp2UseLibLocation: 0 + psp2InfoBarOnStartup: 0 + psp2InfoBarColor: 0 + psp2UseDebugIl2cppLibs: 0 + psmSplashimage: {fileID: 0} + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + spritePackerPolicy: + webGLMemorySize: 256 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 0 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLUseWasm: 0 + webGLCompressionFormat: 1 + scriptingDefineSymbols: + 1: + 4: + platformArchitecture: + iOS: 0 + scriptingBackend: + Android: 0 + Metro: 2 + Standalone: 0 + WP8: 2 + WebGL: 1 + iOS: 0 + incrementalIl2cppBuild: + iOS: 0 + additionalIl2CppArgs: + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: General Examples + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: General Examples + wsaImages: {} + metroTileShortName: + metroCommandLineArgsFile: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 1 + metroTileBackgroundColor: {r: 0, g: 0, b: 0, a: 1} + metroSplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + metroCompilationOverrides: 1 + tizenProductDescription: + tizenProductURL: + tizenSigningProfileName: + tizenGPSPermissions: 0 + tizenMicrophonePermissions: 0 + tizenDeploymentTarget: + tizenDeploymentTargetType: -1 + tizenMinOSVersion: 1 + n3dsUseExtSaveData: 0 + n3dsCompressStaticMem: 1 + n3dsExtSaveDataNumber: 0x12345 + n3dsStackSize: 131072 + n3dsTargetPlatform: 2 + n3dsRegion: 7 + n3dsMediaSize: 0 + n3dsLogoStyle: 3 + n3dsTitle: GameName + n3dsProductCode: + n3dsApplicationId: 0xFF3FF + stvDeviceAddress: + stvProductDescription: + stvProductAuthor: + stvProductAuthorEmail: + stvProductLink: + stvProductCategory: 0 + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnableGPUVariability: 0 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + xboxOneScriptCompiler: 0 + vrEditorSettings: + daydream: + daydreamIconForeground: {fileID: 0} + daydreamIconBackground: {fileID: 0} + cloudServicesEnabled: {} + facebookSdkVersion: 7.9.1 + apiCompatibilityLevel: 2 + cloudProjectId: + projectName: + organizationId: + cloudEnabled: 0 + enableNewInputSystem: 0 diff --git a/Source/ProjectSettings/ProjectVersion.txt b/Source/ProjectSettings/ProjectVersion.txt new file mode 100644 index 000000000..d542d5a64 --- /dev/null +++ b/Source/ProjectSettings/ProjectVersion.txt @@ -0,0 +1 @@ +m_EditorVersion: 5.6.1p4 diff --git a/Source/ProjectSettings/QualitySettings.asset b/Source/ProjectSettings/QualitySettings.asset new file mode 100644 index 000000000..683fb13ed --- /dev/null +++ b/Source/ProjectSettings/QualitySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 0 + m_QualitySettings: + - serializedVersion: 2 + name: Default + pixelLightCount: 1 + shadows: 1 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 50 + shadowNearPlaneOffset: 2 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + blendWeights: 1 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.3 + maximumLODLevel: 0 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 4 + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: {} diff --git a/Examples/General Examples/ProjectSettings/TagManager.asset b/Source/ProjectSettings/TagManager.asset similarity index 100% rename from Examples/General Examples/ProjectSettings/TagManager.asset rename to Source/ProjectSettings/TagManager.asset diff --git a/Examples/Scaleform Examples/ProjectSettings/TimeManager.asset b/Source/ProjectSettings/TimeManager.asset similarity index 100% rename from Examples/Scaleform Examples/ProjectSettings/TimeManager.asset rename to Source/ProjectSettings/TimeManager.asset diff --git a/Source/ProjectSettings/UnityConnectSettings.asset b/Source/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 000000000..ec1ab2929 --- /dev/null +++ b/Source/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,32 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + m_Enabled: 0 + m_TestMode: 0 + m_TestEventUrl: + m_TestConfigUrl: + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes + m_Enabled: 0 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_TestEventUrl: + m_TestConfigUrl: + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_EnabledPlatforms: 4294967295 + m_IosGameId: + m_AndroidGameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/TUIOsharp b/TUIOsharp deleted file mode 160000 index 2ee692661..000000000 --- a/TUIOsharp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2ee692661cf50613e65541f5c9ebc17e707f16c6 diff --git a/TouchScript.DotSettings b/TouchScript.DotSettings new file mode 100644 index 000000000..3d5c776f9 --- /dev/null +++ b/TouchScript.DotSettings @@ -0,0 +1,24 @@ + + True + True + True + True + True + True + TOGETHER_SAME_LINE + True + False + False + True + False + <Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /> + <Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Private, Protected, ProtectedInternal, Internal" Description="Fields (not public)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Private, Protected, ProtectedInternal, Internal" Description="Methods (not public)"><ElementKinds><Kind Name="METHOD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> + True + True + True \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/FlickGestureEditor.cs b/TouchScript.Editor/Gestures/FlickGestureEditor.cs deleted file mode 100644 index af6438f3b..000000000 --- a/TouchScript.Editor/Gestures/FlickGestureEditor.cs +++ /dev/null @@ -1,49 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures -{ - [CustomEditor(typeof(FlickGesture))] - public class FlickGestureEditor : GestureEditor - { - public const string TEXT_DIRECTION = "Flick direction."; - - public const string TEXT_MOVEMENTTHRESHOLD = "Minimum distance in cm touch points must move for the gesture to begin."; - - public const string TEXT_FLICKTIME = "Time interval in seconds during which touch points must move by for the gesture to be recognized."; - - public const string TEXT_MINDISTANCE = "Minimum distance in cm touch points must move in seconds for the gesture to be recognized."; - - private SerializedProperty direction; - - private SerializedProperty flickTime, minDistance, movementThreshold; - - protected override void OnEnable() - { - base.OnEnable(); - - flickTime = serializedObject.FindProperty("flickTime"); - minDistance = serializedObject.FindProperty("minDistance"); - movementThreshold = serializedObject.FindProperty("movementThreshold"); - direction = serializedObject.FindProperty("direction"); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - EditorGUILayout.PropertyField(direction, new GUIContent("Direction", TEXT_DIRECTION)); - EditorGUILayout.PropertyField(movementThreshold, new GUIContent("Movement Threshold (cm)", TEXT_MOVEMENTTHRESHOLD)); - EditorGUILayout.PropertyField(flickTime, new GUIContent("Flick Time (sec)", TEXT_FLICKTIME)); - EditorGUILayout.PropertyField(minDistance, new GUIContent("Minimum Distance (cm)", TEXT_MINDISTANCE)); - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/GestureEditor.cs b/TouchScript.Editor/Gestures/GestureEditor.cs deleted file mode 100644 index 2f650ec62..000000000 --- a/TouchScript.Editor/Gestures/GestureEditor.cs +++ /dev/null @@ -1,176 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Editor.Utils; -using TouchScript.Gestures; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures -{ - [CustomEditor(typeof(Gesture))] - public class GestureEditor : UnityEditor.Editor - { - public const string TEXT_FRIENDLY_HEADER = "Gestures which can work together with this gesture."; - - private const string FRIENDLY_GESTURES_PROPERTY_NAME = "friendlyGestures"; - - private SerializedProperty serializedGestures; - private bool shouldRecognizeShown; - - protected virtual void OnEnable() - { - hideFlags = HideFlags.HideAndDontSave; - serializedGestures = serializedObject.FindProperty(FRIENDLY_GESTURES_PROPERTY_NAME); - } - - public override void OnInspectorGUI() - { - shouldRecognizeShown = - GUIElements.Foldout(shouldRecognizeShown, new GUIContent("Friendly gestures", TEXT_FRIENDLY_HEADER), - () => - { - int gestureIndexToRemove = -1; - int gesturesDrawn = 0; - - serializedObject.UpdateIfDirtyOrScript(); - - GUILayout.BeginVertical(); - for (int i = 0; i < serializedGestures.arraySize; i++) - { - var gesture = serializedGestures.GetArrayElementAtIndex(i).objectReferenceValue as Gesture; - - if (gesture == null) - { - //Debug.Log(string.Format("Gesture at {0} on {1} is null!!", i, target)); - gestureIndexToRemove = i; - } else - { - Rect rect = EditorGUILayout.BeginHorizontal(GUIElements.BoxStyle, GUILayout.Height(23)); - EditorGUILayout.LabelField( - string.Format("{0} @ {1}", gesture.GetType().Name, gesture.name), - GUIElements.BoxLabelStyle, GUILayout.ExpandWidth(true)); - if (GUILayout.Button("remove", GUILayout.Width(60), GUILayout.Height(16))) - { - gestureIndexToRemove = i; - } else if (Event.current.type == EventType.MouseDown && - rect.Contains(Event.current.mousePosition)) - { - EditorGUIUtility.PingObject(gesture); - } - EditorGUILayout.EndHorizontal(); - gesturesDrawn++; - } - } - GUILayout.EndVertical(); - if (gesturesDrawn > 0) GUILayout.Space(9); - - Rect dropArea = GUILayoutUtility.GetRect(0.0f, 50.0f, GUIElements.BoxStyle, - GUILayout.ExpandWidth(true)); - GUI.Box(dropArea, "Drag a Gesture Here", GUIElements.BoxStyle); - switch (Event.current.type) - { - case EventType.DragUpdated: - if (dropArea.Contains(Event.current.mousePosition)) - DragAndDrop.visualMode = DragAndDropVisualMode.Copy; - break; - case EventType.DragPerform: - if (dropArea.Contains(Event.current.mousePosition)) - { - DragAndDrop.visualMode = DragAndDropVisualMode.Copy; - DragAndDrop.AcceptDrag(); - - foreach (Object obj in DragAndDrop.objectReferences) - { - if (obj is GameObject) - { - var go = obj as GameObject; - Gesture[] gestures = go.GetComponents(); - foreach (Gesture gesture in gestures) - { - addGesture(gesture); - } - } else if (obj is Gesture) - { - addGesture(obj as Gesture); - } - } - - Event.current.Use(); - } - break; - } - - if (gestureIndexToRemove > -1) - { - removeGestureAt(gestureIndexToRemove); - } - }); - - serializedObject.ApplyModifiedProperties(); - } - - private void addGesture(Gesture value) - { - if (value == null || value == target) return; - - for (int i = 0; i < serializedGestures.arraySize; i++) - { - if (serializedGestures.GetArrayElementAtIndex(i).objectReferenceValue == value) return; - } - - serializedGestures.arraySize++; - serializedGestures.GetArrayElementAtIndex(serializedGestures.arraySize - 1).objectReferenceValue = value; - - var so = new SerializedObject(value); - so.Update(); - SerializedProperty prop = so.FindProperty(FRIENDLY_GESTURES_PROPERTY_NAME); - prop.arraySize++; - prop.GetArrayElementAtIndex(prop.arraySize - 1).objectReferenceValue = target; - - serializedObject.ApplyModifiedProperties(); - so.ApplyModifiedProperties(); - EditorUtility.SetDirty(value); - } - - private void removeGestureAt(int index) - { - Object gesture = serializedGestures.GetArrayElementAtIndex(index).objectReferenceValue; - // I don't know why this doesn't work - //serializedGestures.DeleteArrayElementAtIndex(index); - removeFromArray(serializedGestures, index); - - if (gesture != null) - { - var so = new SerializedObject(gesture); - so.Update(); - SerializedProperty prop = so.FindProperty(FRIENDLY_GESTURES_PROPERTY_NAME); - for (int j = 0; j < prop.arraySize; j++) - { - if (prop.GetArrayElementAtIndex(j).objectReferenceValue == target) - { - // I don't know why this doesn't work - //prop.DeleteArrayElementAtIndex(j); - removeFromArray(prop, j); - break; - } - } - - so.ApplyModifiedProperties(); - EditorUtility.SetDirty(gesture); - } - } - - // A hack to remove a gesture from a list - private void removeFromArray(SerializedProperty array, int index) - { - if (index != array.arraySize - 1) - { - array.GetArrayElementAtIndex(index).objectReferenceValue = - array.GetArrayElementAtIndex(array.arraySize - 1).objectReferenceValue; - } - array.arraySize--; - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/LongPressGestureEditor.cs b/TouchScript.Editor/Gestures/LongPressGestureEditor.cs deleted file mode 100644 index c0b23f924..000000000 --- a/TouchScript.Editor/Gestures/LongPressGestureEditor.cs +++ /dev/null @@ -1,73 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures -{ - [CustomEditor(typeof(LongPressGesture))] - public class LongPressGestureEditor : GestureEditor - { - public const string TEXT_MAXTOUCHES = "Limit maximum number of simultaneous touch points."; - - public const string TEXT_TIMETOPRESS = "Total time in seconds required to hold touches for gesture to be recognized."; - - public const string TEXT_DISTANCELIMIT = "Gesture fails if fingers move more than cm."; - private SerializedProperty distanceLimit; - - private SerializedProperty maxTouches, timeToPress; - private bool useDistanceLimit; - private bool useTouchesLimit; - - protected override void OnEnable() - { - base.OnEnable(); - - maxTouches = serializedObject.FindProperty("maxTouches"); - timeToPress = serializedObject.FindProperty("timeToPress"); - distanceLimit = serializedObject.FindProperty("distanceLimit"); - - useTouchesLimit = maxTouches.intValue != int.MaxValue; - useDistanceLimit = !float.IsInfinity(distanceLimit.floatValue); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - EditorGUILayout.PropertyField(timeToPress, new GUIContent("Time to Press (sec)", TEXT_TIMETOPRESS)); - - bool newToucheslimit = GUILayout.Toggle(useTouchesLimit, new GUIContent("Limit Number of Touch Points", TEXT_MAXTOUCHES)); - if (newToucheslimit) - { - if (newToucheslimit != useTouchesLimit) maxTouches.intValue = 1; - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(maxTouches, new GUIContent("Value", TEXT_MAXTOUCHES)); - EditorGUI.indentLevel--; - } else - { - maxTouches.intValue = int.MaxValue; - } - useTouchesLimit = newToucheslimit; - - bool newDistanceLimit = GUILayout.Toggle(useDistanceLimit, new GUIContent("Limit Movement", TEXT_DISTANCELIMIT)); - if (newDistanceLimit) - { - if (newDistanceLimit != useDistanceLimit) distanceLimit.floatValue = 0; - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(distanceLimit, new GUIContent("Value (cm)", TEXT_DISTANCELIMIT)); - EditorGUI.indentLevel--; - } else - { - distanceLimit.floatValue = float.PositiveInfinity; - } - useDistanceLimit = newDistanceLimit; - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/PanGestureEditor.cs b/TouchScript.Editor/Gestures/PanGestureEditor.cs deleted file mode 100644 index 604f59525..000000000 --- a/TouchScript.Editor/Gestures/PanGestureEditor.cs +++ /dev/null @@ -1,14 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Editor.Gestures.Simple; -using TouchScript.Gestures; -using UnityEditor; - -namespace TouchScript.Editor.Gestures -{ - [CustomEditor(typeof(PanGesture))] - public class PanGestureEditor : SimplePanGestureEditor - {} -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/RotateGestureEditor.cs b/TouchScript.Editor/Gestures/RotateGestureEditor.cs deleted file mode 100644 index 293efbd7d..000000000 --- a/TouchScript.Editor/Gestures/RotateGestureEditor.cs +++ /dev/null @@ -1,14 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Editor.Gestures.Simple; -using TouchScript.Gestures; -using UnityEditor; - -namespace TouchScript.Editor.Gestures -{ - [CustomEditor(typeof(RotateGesture))] - public class RotateGestureEditor : SimpleRotateGestureEditor - {} -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/ScaleGestureEditor.cs b/TouchScript.Editor/Gestures/ScaleGestureEditor.cs deleted file mode 100644 index 515f1b70c..000000000 --- a/TouchScript.Editor/Gestures/ScaleGestureEditor.cs +++ /dev/null @@ -1,14 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Editor.Gestures.Simple; -using TouchScript.Gestures; -using UnityEditor; - -namespace TouchScript.Editor.Gestures -{ - [CustomEditor(typeof(ScaleGesture))] - public class ScaleGestureEditor : SimpleScaleGestureEditor - {} -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/Simple/MetaGestureEditor.cs b/TouchScript.Editor/Gestures/Simple/MetaGestureEditor.cs deleted file mode 100644 index 2cb9fd806..000000000 --- a/TouchScript.Editor/Gestures/Simple/MetaGestureEditor.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures.Simple; -using UnityEditor; - -namespace TouchScript.Editor.Gestures.Simple -{ - [CustomEditor(typeof(MetaGesture))] - public class MetaGestureEditor : GestureEditor - {} -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/Simple/PressGestureEditor.cs b/TouchScript.Editor/Gestures/Simple/PressGestureEditor.cs deleted file mode 100644 index 08769c96d..000000000 --- a/TouchScript.Editor/Gestures/Simple/PressGestureEditor.cs +++ /dev/null @@ -1,37 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures.Simple -{ - [CustomEditor(typeof(PressGesture))] - public class PressGestureEditor : GestureEditor - { - - public const string IGNORE_CHILDREN = "If selected this gesture ignores touch points from children."; - - private SerializedProperty ignoreChildren; - - protected override void OnEnable() - { - base.OnEnable(); - - ignoreChildren = serializedObject.FindProperty("ignoreChildren"); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - EditorGUILayout.PropertyField(ignoreChildren, new GUIContent("Ignore Children", IGNORE_CHILDREN)); - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/Simple/ReleaseGestureEditor.cs b/TouchScript.Editor/Gestures/Simple/ReleaseGestureEditor.cs deleted file mode 100644 index d64c9a8e9..000000000 --- a/TouchScript.Editor/Gestures/Simple/ReleaseGestureEditor.cs +++ /dev/null @@ -1,37 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures.Simple -{ - [CustomEditor(typeof(ReleaseGesture))] - public class ReleaseGestureEditor : GestureEditor - { - - public const string IGNORE_CHILDREN = "If selected this gesture ignores touch points from children."; - - private SerializedProperty ignoreChildren; - - protected override void OnEnable() - { - base.OnEnable(); - - ignoreChildren = serializedObject.FindProperty("ignoreChildren"); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - EditorGUILayout.PropertyField(ignoreChildren, new GUIContent("Ignore Children", IGNORE_CHILDREN)); - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/Simple/SimplePanGestureEditor.cs b/TouchScript.Editor/Gestures/Simple/SimplePanGestureEditor.cs deleted file mode 100644 index 33a25a832..000000000 --- a/TouchScript.Editor/Gestures/Simple/SimplePanGestureEditor.cs +++ /dev/null @@ -1,35 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures.Simple; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures.Simple -{ - [CustomEditor(typeof(SimplePanGesture))] - public class SimplePanGestureEditor : Transform2DGestureBaseEditor - { - public const string TEXT_MOVEMENTTHRESHOLD = "Minimum distance in cm touch points must move for the gesture to begin."; - - private SerializedProperty movementThreshold; - - protected override void OnEnable() - { - base.OnEnable(); - - movementThreshold = serializedObject.FindProperty("movementThreshold"); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - EditorGUILayout.PropertyField(movementThreshold, new GUIContent("Movement Threshold (cm)", TEXT_MOVEMENTTHRESHOLD)); - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/Simple/SimpleRotateGestureEditor.cs b/TouchScript.Editor/Gestures/Simple/SimpleRotateGestureEditor.cs deleted file mode 100644 index 15902d83a..000000000 --- a/TouchScript.Editor/Gestures/Simple/SimpleRotateGestureEditor.cs +++ /dev/null @@ -1,35 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures.Simple; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures.Simple -{ - [CustomEditor(typeof(SimpleRotateGesture))] - public class SimpleRotateGestureEditor : TwoPointTransform2DGestureBaseEditor - { - public const string TEXT_ROTATIONTHRESHOLD = "Minimum rotation in degrees for the gesture to begin."; - - private SerializedProperty rotationThreshold; - - protected override void OnEnable() - { - base.OnEnable(); - - rotationThreshold = serializedObject.FindProperty("rotationThreshold"); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - EditorGUILayout.PropertyField(rotationThreshold, new GUIContent("Rotation Threshold (deg)", TEXT_ROTATIONTHRESHOLD)); - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/Simple/SimpleScaleGestureEditor.cs b/TouchScript.Editor/Gestures/Simple/SimpleScaleGestureEditor.cs deleted file mode 100644 index 88a0d969b..000000000 --- a/TouchScript.Editor/Gestures/Simple/SimpleScaleGestureEditor.cs +++ /dev/null @@ -1,35 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures.Simple; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures.Simple -{ - [CustomEditor(typeof(SimpleScaleGesture))] - public class SimpleScaleGestureEditor : TwoPointTransform2DGestureBaseEditor - { - public const string TEXT_SCALINGTHRESHOLD = "Minimum distance in cm touch points must move for the gesture to begin."; - - private SerializedProperty scalingThreshold; - - protected override void OnEnable() - { - base.OnEnable(); - - scalingThreshold = serializedObject.FindProperty("scalingThreshold"); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - EditorGUILayout.PropertyField(scalingThreshold, new GUIContent("Scaling Threshold (cm)", TEXT_SCALINGTHRESHOLD)); - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/Simple/Transform2DGestureBaseEditor.cs b/TouchScript.Editor/Gestures/Simple/Transform2DGestureBaseEditor.cs deleted file mode 100644 index 1756b501a..000000000 --- a/TouchScript.Editor/Gestures/Simple/Transform2DGestureBaseEditor.cs +++ /dev/null @@ -1,42 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Editor.Utils; -using TouchScript.Gestures.Simple; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures.Simple -{ - public class Transform2DGestureBaseEditor : GestureEditor - { - public const string TEXT_PROJECTION = "Method used to project 2d screen positions of touch points into 3d space."; - - public const string TEXT_PROJECTIONNORMAL = "Normal of the plane in 3d space where touch points' positions are projected."; - - private SerializedProperty projection, projectionNormal; - - protected override void OnEnable() - { - base.OnEnable(); - - projection = serializedObject.FindProperty("projection"); - projectionNormal = serializedObject.FindProperty("projectionNormal"); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - EditorGUILayout.PropertyField(projection, new GUIContent("Projection Type", TEXT_PROJECTION)); - if (projection.enumValueIndex != (int)Transform2DGestureBase.ProjectionType.Camera) - { - GUIElements.CompactVector3(new GUIContent("Projection Normal", TEXT_PROJECTIONNORMAL), projectionNormal); - } - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/Simple/TwoPointTransform2DGestureBaseEditor.cs b/TouchScript.Editor/Gestures/Simple/TwoPointTransform2DGestureBaseEditor.cs deleted file mode 100644 index d18ce8069..000000000 --- a/TouchScript.Editor/Gestures/Simple/TwoPointTransform2DGestureBaseEditor.cs +++ /dev/null @@ -1,33 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures.Simple -{ - public class TwoPointTransform2DGestureBaseEditor : Transform2DGestureBaseEditor - { - public const string TEXT_MINPOINTSDISTANCE = "Minimum distance between two points (clusters) in cm to consider this gesture started. Used to prevent fake touch points spawned near real ones on cheap multitouch hardware to mess everything up."; - - private SerializedProperty minPointsDistance; - - protected override void OnEnable() - { - base.OnEnable(); - - minPointsDistance = serializedObject.FindProperty("minPointsDistance"); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - EditorGUILayout.PropertyField(minPointsDistance, new GUIContent("Min Points Distance (cm)", TEXT_MINPOINTSDISTANCE)); - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Gestures/TapGestureEditor.cs b/TouchScript.Editor/Gestures/TapGestureEditor.cs deleted file mode 100644 index b8eaf916e..000000000 --- a/TouchScript.Editor/Gestures/TapGestureEditor.cs +++ /dev/null @@ -1,77 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Gestures -{ - [CustomEditor(typeof(TapGesture))] - public class TapGestureEditor : GestureEditor - { - public const string TEXT_TIMELIMIT = "Gesture fails if it is being pressed for more than seconds."; - public const string TEXT_DISTANCELIMIT = "Gesture fails if fingers move more than cm."; - - public const string TEXT_COMBINETOUCHPOINTSINTERVAL = "When several fingers are used to perform a tap, touch points released not earlier than seconds ago are used to calculate gesture's final screen position. If set to 0, position of the last touch point is used."; - - private SerializedProperty combineTouchPointsInterval; - private SerializedProperty distanceLimit; - private SerializedProperty timeLimit; - private bool useDistanceLimit; - private bool useTimeLimit; - - protected override void OnEnable() - { - base.OnEnable(); - - timeLimit = serializedObject.FindProperty("timeLimit"); - distanceLimit = serializedObject.FindProperty("distanceLimit"); - combineTouchPointsInterval = serializedObject.FindProperty("combineTouchPointsInterval"); - - useTimeLimit = !float.IsInfinity(timeLimit.floatValue); - useDistanceLimit = !float.IsInfinity(distanceLimit.floatValue); - } - - public override void OnInspectorGUI() - { - serializedObject.UpdateIfDirtyOrScript(); - - bool newTimelimit = GUILayout.Toggle(useTimeLimit, new GUIContent("Limit Press Time", TEXT_TIMELIMIT)); - if (newTimelimit) - { - if (newTimelimit != useTimeLimit) timeLimit.floatValue = 0; - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(timeLimit, new GUIContent("Value (sec)", TEXT_TIMELIMIT)); - EditorGUI.indentLevel--; - } else - { - timeLimit.floatValue = float.PositiveInfinity; - } - useTimeLimit = newTimelimit; - - bool newDistanceLimit = GUILayout.Toggle(useDistanceLimit, - new GUIContent("Limit Movement", TEXT_DISTANCELIMIT)); - if (newDistanceLimit) - { - if (newDistanceLimit != useDistanceLimit) distanceLimit.floatValue = 0; - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(distanceLimit, new GUIContent("Value (cm)", TEXT_DISTANCELIMIT)); - EditorGUI.indentLevel--; - } else - { - distanceLimit.floatValue = float.PositiveInfinity; - } - useDistanceLimit = newDistanceLimit; - - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField(new GUIContent("Combine Interval (sec)", TEXT_COMBINETOUCHPOINTSINTERVAL), GUILayout.MinWidth(200)); - combineTouchPointsInterval.floatValue = EditorGUILayout.FloatField(GUIContent.none, combineTouchPointsInterval.floatValue, GUILayout.MinWidth(50)); - EditorGUILayout.EndHorizontal(); - - serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/Properties/AssemblyInfo.cs b/TouchScript.Editor/Properties/AssemblyInfo.cs deleted file mode 100644 index 76538630c..000000000 --- a/TouchScript.Editor/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TouchScript.Editor")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TouchScript.Editor")] -[assembly: AssemblyCopyright("Copyright © 2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c740f6e5-3744-4b32-b933-cef6be88d37c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TouchScript.Editor/TouchManagerEditor.cs b/TouchScript.Editor/TouchManagerEditor.cs deleted file mode 100644 index 632030cee..000000000 --- a/TouchScript.Editor/TouchManagerEditor.cs +++ /dev/null @@ -1,95 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using TouchScript.Editor.Utils; -using TouchScript.Layers; -using UnityEditor; -using UnityEngine; -using Object = UnityEngine.Object; - -namespace TouchScript.Editor -{ - [CustomEditor(typeof(TouchManager))] - public class TouchManagerEditor : UnityEditor.Editor - { - public const string TEXT_LIVEDPI = "DPI used in built app runing on target device."; - public const string TEXT_EDITORDPI = "DPI used in the editor."; - public const string TEXT_MOVEDOWN = "Move down."; - - private SerializedProperty editorDPI; - - private GUIStyle layerButtonStyle; - private SerializedProperty layers; - private SerializedProperty liveDPI; - private bool showLayers; - - private void OnEnable() - { - liveDPI = serializedObject.FindProperty("liveDpi"); - editorDPI = serializedObject.FindProperty("editorDpi"); - layers = serializedObject.FindProperty("layers"); - } - - public override void OnInspectorGUI() - { - if (layerButtonStyle == null) - { - layerButtonStyle = new GUIStyle(EditorStyles.miniButton); - layerButtonStyle.fontSize = 9; - layerButtonStyle.contentOffset = new Vector2(0, 0); - } - - serializedObject.Update(); - GUI.changed = false; - - EditorGUILayout.PropertyField(liveDPI, new GUIContent("Live DPI", TEXT_LIVEDPI)); - EditorGUILayout.PropertyField(editorDPI, new GUIContent("Editor DPI", TEXT_EDITORDPI)); - - showLayers = GUIElements.Foldout(showLayers, new GUIContent(String.Format("Layers ({0})", layers.arraySize)), - () => - { - EditorGUILayout.BeginVertical(); - for (int i = 0; i < layers.arraySize; i++) - { - var layer = layers.GetArrayElementAtIndex(i).objectReferenceValue as TouchLayer; - string name; - if (layer == null) name = "Unknown"; - else name = layer.Name; - - var rect = EditorGUILayout.BeginHorizontal(GUIElements.BoxStyle, GUILayout.Height(23)); - - EditorGUILayout.LabelField(name, GUIElements.BoxLabelStyle, GUILayout.ExpandWidth(true)); - if (GUILayout.Button(new GUIContent("v", TEXT_MOVEDOWN), layerButtonStyle, GUILayout.Width(20), GUILayout.Height(18))) - { - layers.MoveArrayElement(i, i + 1); - } else if (Event.current.type == EventType.MouseDown && rect.Contains(Event.current.mousePosition)) - { - EditorGUIUtility.PingObject(layer); - } - EditorGUILayout.EndHorizontal(); - } - EditorGUILayout.EndVertical(); - - GUILayout.Space(5f); - if (GUILayout.Button("Refresh", GUILayout.MaxWidth(100))) refresh(); - }); - - serializedObject.ApplyModifiedProperties(); - } - - private void refresh() - { - layers.ClearArray(); - Object[] allLayers = FindObjectsOfType(typeof(TouchLayer)); - int i = 0; - layers.arraySize = allLayers.Length; - foreach (TouchLayer l in allLayers) - { - layers.GetArrayElementAtIndex(i).objectReferenceValue = l; - i++; - } - } - } -} \ No newline at end of file diff --git a/TouchScript.Editor/TouchScript.Editor.csproj b/TouchScript.Editor/TouchScript.Editor.csproj deleted file mode 100644 index 3da142962..000000000 --- a/TouchScript.Editor/TouchScript.Editor.csproj +++ /dev/null @@ -1,89 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {AFD89D67-B5D9-4BB7-BD73-A7A78568D61A} - Library - Properties - TouchScript.Editor - TouchScript.Editor - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - ..\Lib\UnityEngine.dll - False - - - ..\Lib\UnityEditor.dll - False - - - - - - - - - - - - - - - - - - - - - - - - - {128FD14A-9D70-4B07-8F9A-E85A511BA28B} - TouchScript - False - - - - - xcopy /y $(ProjectDir)$(OutDir)*.dll "$(SolutionDir)Examples\General Examples\Assets\TouchScript\Editor\" -xcopy /y $(ProjectDir)$(OutDir)*.dll "$(SolutionDir)Examples\Scaleform Examples\Assets\TouchScript\Editor\" - - - \ No newline at end of file diff --git a/TouchScript.Editor/Utils/GUIElements.cs b/TouchScript.Editor/Utils/GUIElements.cs deleted file mode 100644 index 9e84fe8e1..000000000 --- a/TouchScript.Editor/Utils/GUIElements.cs +++ /dev/null @@ -1,86 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using UnityEditor; -using UnityEngine; - -namespace TouchScript.Editor.Utils -{ - public class GUIElements - { - private static GUIStyle foldoutStyle, headerStyle; - - public static GUIStyle BoxStyle - { - get - { - if (boxStyle == null) - { - boxStyle = new GUIStyle(GUI.skin.box); - boxStyle.margin = new RectOffset(0, 0, 1, 0); - boxStyle.padding = new RectOffset(0, 0, 0, 0); - boxStyle.contentOffset = new Vector2(0, 0); - boxStyle.normal.textColor = GUI.skin.label.normal.textColor; - boxStyle.alignment = TextAnchor.MiddleCenter; - } - return boxStyle; - } - } - - public static GUIStyle BoxLabelStyle - { - get - { - if (boxLabelStyle == null) - { - boxLabelStyle = new GUIStyle(GUI.skin.label); - boxLabelStyle.fontSize = 9; - boxLabelStyle.padding = new RectOffset(0, 0, 5, 0); - } - return boxLabelStyle; - } - } - - private static GUIStyle boxStyle, boxLabelStyle; - - public static bool Foldout(bool open, GUIContent header, Action content) - { - if (foldoutStyle == null) - { - foldoutStyle = new GUIStyle(GUI.skin.FindStyle("ShurikenModuleBg")); - foldoutStyle.padding = new RectOffset(10, 10, 10, 10); - - headerStyle = new GUIStyle(GUI.skin.FindStyle("ShurikenModuleTitle")); - headerStyle.contentOffset = new Vector2(3, -2); - } - - GUILayout.BeginVertical("ShurikenEffectBg", GUILayout.MinHeight(1f)); - - open = GUI.Toggle(GUILayoutUtility.GetRect(0, 16), open, header, headerStyle); - if (open) - { - GUILayout.BeginVertical(foldoutStyle); - - content(); - - GUILayout.EndVertical(); - } - GUILayout.EndVertical(); - - return open; - } - - public static void CompactVector3(GUIContent content, SerializedProperty property) - { - GUILayout.BeginHorizontal(); - EditorGUILayout.LabelField(content); - var x = EditorGUILayout.FloatField(property.vector3Value.x, GUILayout.MaxWidth(80), GUILayout.MinWidth(40)); - var y = EditorGUILayout.FloatField(property.vector3Value.y, GUILayout.MaxWidth(80), GUILayout.MinWidth(40)); - var z = EditorGUILayout.FloatField(property.vector3Value.z, GUILayout.MaxWidth(80), GUILayout.MinWidth(40)); - property.vector3Value = new Vector3(x, y, z); - GUILayout.EndHorizontal(); - } - } -} \ No newline at end of file diff --git a/TouchScript.Pro/InputSources/InputSourcePro.cs b/TouchScript.Pro/InputSources/InputSourcePro.cs deleted file mode 100644 index be1ad54ae..000000000 --- a/TouchScript.Pro/InputSources/InputSourcePro.cs +++ /dev/null @@ -1,110 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using UnityEngine; - -namespace TouchScript.InputSources -{ - /// - /// Base class for all PRO touch input sources. A duplicate of since Unity doesn't see classes extending a class from another DLL. - /// - public abstract class InputSourcePro : MonoBehaviour, IInputSource - { - #region Private variables - - /// - /// Reference to global touch manager. - /// - protected TouchManager manager; - - #endregion - - #region Public properties - - /// - /// Optional remapper to use to change screen coordinates which go into the TouchManager. - /// - public ICoordinatesRemapper CoordinatesRemapper { get; set; } - - #endregion - - #region Unity - - /// - /// Unity3d Start callback. - /// - protected virtual void Start() - { - manager = TouchManager.Instance; - if (manager == null) throw new InvalidOperationException("TouchManager instance is required!"); - } - - /// - /// Unity3d OnDestroy callback. - /// - protected virtual void OnDestroy() - { - manager = null; - } - - /// - /// Unity3d Update callback. - /// - protected virtual void Update() - { } - - #endregion - - #region Callbacks - - /// - /// Start touch in given screen position. - /// - /// Screen position. - /// Internal touch id. - protected int beginTouch(Vector2 position) - { - if (CoordinatesRemapper != null) - { - position = CoordinatesRemapper.Remap(position); - } - return manager.BeginTouch(position); - } - - /// - /// End touch with id. - /// - /// Touch point id. - protected void endTouch(int id) - { - manager.EndTouch(id); - } - - /// - /// Move touch with id. - /// - /// Touch id. - /// New screen position. - protected void moveTouch(int id, Vector2 position) - { - if (CoordinatesRemapper != null) - { - position = CoordinatesRemapper.Remap(position); - } - manager.MoveTouch(id, position); - } - - /// - /// Cancel touch with id. - /// - /// Touch id. - protected void cancelTouch(int id) - { - manager.CancelTouch(id); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript.Pro/InputSources/TuioInput.cs b/TouchScript.Pro/InputSources/TuioInput.cs deleted file mode 100644 index 381741706..000000000 --- a/TouchScript.Pro/InputSources/TuioInput.cs +++ /dev/null @@ -1,121 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TUIOsharp; -using UnityEngine; - -namespace TouchScript.InputSources -{ - /// - /// Processes TUIO 1.0 input. - /// - [AddComponentMenu("TouchScript/Input Sources/TUIO Input")] - public class TuioInput : InputSourcePro - { - #region Unity fields - - /// - /// Port to listen to. - /// - public int TuioPort = 3333; - - /// - /// Minimum movement delta to ignore in cm. - /// - public float MovementThreshold = 0f; - - #endregion - - #region Private variables - - private TuioServer server; - private Dictionary cursorToInternalId = new Dictionary(); - private int screenWidth; - private int screenHeight; - - #endregion - - #region Unity - - /// - protected override void Start() - { - base.Start(); - - server = new TuioServer(TuioPort); - server.MovementThreshold = MovementThreshold*TouchManager.Instance.DotsPerCentimeter/Mathf.Max(Screen.width, Screen.height); - server.CursorAdded += OnCursorAdded; - server.CursorUpdated += OnCursorUpdated; - server.CursorRemoved += OnCursorRemoved; - server.Connect(); - } - - /// - protected override void Update() - { - base.Update(); - screenWidth = Screen.width; - screenHeight = Screen.height; - } - - /// - protected override void OnDestroy() - { - if (server != null) - { - server.CursorAdded -= OnCursorAdded; - server.CursorUpdated -= OnCursorUpdated; - server.CursorRemoved -= OnCursorRemoved; - server.Disconnect(); - } - base.OnDestroy(); - } - - #endregion - - #region Event handlers - - private void OnCursorAdded(object sender, TuioCursorEventArgs tuioCursorEventArgs) - { - var cursor = tuioCursorEventArgs.Cursor; - lock (this) - { - var x = cursor.X*screenWidth; - var y = (1 - cursor.Y)*screenHeight; - cursorToInternalId.Add(cursor, beginTouch(new Vector2(x, y))); - } - } - - private void OnCursorUpdated(object sender, TuioCursorEventArgs tuioCursorEventArgs) - { - var cursor = tuioCursorEventArgs.Cursor; - lock (this) - { - int existingCursor; - if (!cursorToInternalId.TryGetValue(cursor, out existingCursor)) return; - - var x = cursor.X*screenWidth; - var y = (1 - cursor.Y)*screenHeight; - - moveTouch(existingCursor, new Vector2(x, y)); - } - } - - private void OnCursorRemoved(object sender, TuioCursorEventArgs tuioCursorEventArgs) - { - var cursor = tuioCursorEventArgs.Cursor; - lock (this) - { - int existingCursor; - if (!cursorToInternalId.TryGetValue(cursor, out existingCursor)) return; - - cursorToInternalId.Remove(cursor); - endTouch(existingCursor); - } - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript.Pro/Properties/AssemblyInfo.cs b/TouchScript.Pro/Properties/AssemblyInfo.cs deleted file mode 100644 index bcee952ba..000000000 --- a/TouchScript.Pro/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TouchScript.Pro")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TouchScript.Pro")] -[assembly: AssemblyCopyright("Copyright © 2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("bd834b89-42b9-4d29-80ac-03b32f697951")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TouchScript.Pro/TouchScript.Pro.csproj b/TouchScript.Pro/TouchScript.Pro.csproj deleted file mode 100644 index 0db2950b0..000000000 --- a/TouchScript.Pro/TouchScript.Pro.csproj +++ /dev/null @@ -1,75 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {BE1F19D3-E864-4A28-9717-EDD7FA69C2D6} - Library - Properties - TouchScript.Pro - TouchScript.Pro - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\TouchScript.Pro.XML - - - - - - ..\Lib\UnityEngine.dll - False - - - - - - - - - - {128FD14A-9D70-4B07-8F9A-E85A511BA28B} - TouchScript - True - - - {0ADB210D-0D25-4576-8868-9C47DC4762BE} - OSCsharp - - - {6080AD8B-8ACD-4C0E-ABAD-26DB043E202B} - TUIOsharp - True - - - - - xcopy /y $(ProjectDir)$(OutDir)*.dll "$(SolutionDir)Examples\General Examples\Assets\TouchScript\Plugins\" -xcopy /y $(ProjectDir)$(OutDir)*.dll "$(SolutionDir)Examples\Scaleform Examples\Assets\TouchScript\Plugins\" - - - \ No newline at end of file diff --git a/TouchScript.Windows/InputSources/InputSourceWindows.cs b/TouchScript.Windows/InputSources/InputSourceWindows.cs deleted file mode 100644 index 0f73d0eee..000000000 --- a/TouchScript.Windows/InputSources/InputSourceWindows.cs +++ /dev/null @@ -1,110 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using UnityEngine; - -namespace TouchScript.InputSources -{ - /// - /// Base class for all WINDOWS touch input sources. A duplicate of since Unity doesn't see classes extending a class from another DLL. - /// - public abstract class InputSourceWindows : MonoBehaviour, IInputSource - { - #region Private variables - - /// - /// Reference to global touch manager. - /// - protected TouchManager manager; - - #endregion - - #region Public properties - - /// - /// Optional remapper to use to change screen coordinates which go into the TouchManager. - /// - public ICoordinatesRemapper CoordinatesRemapper { get; set; } - - #endregion - - #region Unity - - /// - /// Unity3d Start callback. - /// - protected virtual void Start() - { - manager = TouchManager.Instance; - if (manager == null) throw new InvalidOperationException("TouchManager instance is required!"); - } - - /// - /// Unity3d OnDestroy callback. - /// - protected virtual void OnDestroy() - { - manager = null; - } - - /// - /// Unity3d Update callback. - /// - protected virtual void Update() - { } - - #endregion - - #region Callbacks - - /// - /// Start touch in given screen position. - /// - /// Screen position. - /// Internal touch id. - protected int beginTouch(Vector2 position) - { - if (CoordinatesRemapper != null) - { - position = CoordinatesRemapper.Remap(position); - } - return manager.BeginTouch(position); - } - - /// - /// End touch with id. - /// - /// Touch point id. - protected void endTouch(int id) - { - manager.EndTouch(id); - } - - /// - /// Move touch with id. - /// - /// Touch id. - /// New screen position. - protected void moveTouch(int id, Vector2 position) - { - if (CoordinatesRemapper != null) - { - position = CoordinatesRemapper.Remap(position); - } - manager.MoveTouch(id, position); - } - - /// - /// Cancel touch with id. - /// - /// Touch id. - protected void cancelTouch(int id) - { - manager.CancelTouch(id); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript.Windows/InputSources/Win7TouchInput.cs b/TouchScript.Windows/InputSources/Win7TouchInput.cs deleted file mode 100644 index 63e04bd13..000000000 --- a/TouchScript.Windows/InputSources/Win7TouchInput.cs +++ /dev/null @@ -1,244 +0,0 @@ -/* - * @author Valentin Frolov - * @author Valentin Simonov / http://va.lent.in/ - */ - -using UnityEngine; -using System; -using System.Collections.Generic; -using System.Runtime.InteropServices; - -namespace TouchScript.InputSources -{ - internal enum TouchEvent : int - { - TOUCHEVENTF_MOVE = 0x0001, - TOUCHEVENTF_DOWN = 0x0002, - TOUCHEVENTF_UP = 0x0004, - TOUCHEVENTF_INRANGE = 0x0008, - TOUCHEVENTF_PRIMARY = 0x0010, - TOUCHEVENTF_NOCOALESCE = 0x0020, - TOUCHEVENTF_PEN = 0x0040 - } - - /// - /// Processes Windows 7 touch events. - /// Known issues: - /// - /// DOES NOT WORK IN EDITOR. - /// - /// - [AddComponentMenu("TouchScript/Input Sources/Windows 7 Touch Input")] - public class Win7TouchInput : InputSourceWindows - { - private delegate IntPtr WndProcDelegate(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam); - - #region Private fields - - private IntPtr hMainWindow; - private IntPtr oldWndProcPtr; - private IntPtr newWndProcPtr; - - private WndProcDelegate newWndProc; - - private Dictionary winToInternalId = new Dictionary(); - private bool isInitialized = false; - - #endregion - - #region Unity - - /// - protected override void Start() - { - base.Start(); - init(); - } - - /// - protected override void OnDestroy() - { - if (isInitialized) - { - SetWindowLongPtr(hMainWindow, -4, oldWndProcPtr); - UnregisterTouchWindow(hMainWindow); - - hMainWindow = IntPtr.Zero; - oldWndProcPtr = IntPtr.Zero; - newWndProcPtr = IntPtr.Zero; - - newWndProc = null; - } - base.OnDestroy(); - } - - #endregion - - #region Private functions - - private void init() - { - if (Application.platform != RuntimePlatform.WindowsPlayer) return; - - touchInputSize = Marshal.SizeOf(typeof(TOUCHINPUT)); - - hMainWindow = GetForegroundWindow(); - RegisterTouchWindow(hMainWindow, 0); - - newWndProc = wndProc; - newWndProcPtr = Marshal.GetFunctionPointerForDelegate(newWndProc); - oldWndProcPtr = SetWindowLongPtr(hMainWindow, -4, newWndProcPtr); - - isInitialized = true; - } - - private IntPtr wndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam) - { - switch (msg) - { - case WM_TOUCH: - decodeTouches(wParam, lParam); - break; - case WM_CLOSE: - UnregisterTouchWindow(hWnd); - SetWindowLongPtr(hWnd, -4, oldWndProcPtr); - SendMessage(hWnd, WM_CLOSE, IntPtr.Zero, IntPtr.Zero); - return IntPtr.Zero; - } - return CallWindowProc(oldWndProcPtr, hWnd, msg, wParam, lParam); - } - - private void decodeTouches(IntPtr wParam, IntPtr lParam) - { - int inputCount = LOWORD(wParam.ToInt32()); - TOUCHINPUT[] inputs = new TOUCHINPUT[inputCount]; - - if (!GetTouchInputInfo(lParam, inputCount, inputs, touchInputSize)) - { - return; - } - - for (int i = 0; i < inputCount; i++) - { - TOUCHINPUT touch = inputs[i]; - - if ((touch.dwFlags & (int)TouchEvent.TOUCHEVENTF_DOWN) != 0) - { - POINT p = new POINT(); - p.X = touch.x/100; - p.Y = touch.y/100; - ScreenToClient(hMainWindow, ref p); - - winToInternalId.Add(touch.dwID, beginTouch(new Vector2(p.X, Screen.height - p.Y))); - } else if ((touch.dwFlags & (int)TouchEvent.TOUCHEVENTF_UP) != 0) - { - int existingId; - if (winToInternalId.TryGetValue(touch.dwID, out existingId)) - { - winToInternalId.Remove(touch.dwID); - endTouch(existingId); - } - } else if ((touch.dwFlags & (int)TouchEvent.TOUCHEVENTF_MOVE) != 0) - { - int existingId; - if (winToInternalId.TryGetValue(touch.dwID, out existingId)) - { - POINT p = new POINT(); - p.X = touch.x/100; - p.Y = touch.y/100; - ScreenToClient(hMainWindow, ref p); - - moveTouch(existingId, new Vector2(p.X, Screen.height - p.Y)); - } - } - } - - CloseTouchInputHandle(lParam); - } - - #endregion - - #region p/invoke - - // Touch event window message constants [winuser.h] - private const int WM_TOUCH = 0x0240; - private const int WM_CLOSE = 0x0010; - - // Touch API defined structures [winuser.h] - [StructLayout(LayoutKind.Sequential)] - private struct TOUCHINPUT - { - public int x; - public int y; - public IntPtr hSource; - public int dwID; - public int dwFlags; - public int dwMask; - public int dwTime; - public IntPtr dwExtraInfo; - public int cxContact; - public int cyContact; - } - - [StructLayout(LayoutKind.Sequential)] - private struct POINT - { - public int X; - public int Y; - } - - private IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr dwNewLong) - { - if (IntPtr.Size == 8) return SetWindowLongPtr64(hWnd, nIndex, dwNewLong); - return new IntPtr(SetWindowLong32(hWnd, nIndex, dwNewLong.ToInt32())); - } - - [DllImport("user32.dll")] - private static extern IntPtr GetForegroundWindow(); - - [DllImport("user32.dll", EntryPoint = "SetWindowLong")] - private static extern int SetWindowLong32(IntPtr hWnd, int nIndex, int dwNewLong); - - [DllImport("user32.dll", EntryPoint = "SetWindowLongPtr")] - private static extern IntPtr SetWindowLongPtr64(IntPtr hWnd, int nIndex, IntPtr dwNewLong); - - [DllImport("user32.dll")] - private static extern IntPtr CallWindowProc(IntPtr lpPrevWndFunc, IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); - - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.Bool)] - private static extern bool RegisterTouchWindow(IntPtr hWnd, uint ulFlags); - - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.Bool)] - private static extern bool UnregisterTouchWindow(IntPtr hWnd); - - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.Bool)] - private static extern bool GetTouchInputInfo(IntPtr hTouchInput, int cInputs, [Out] TOUCHINPUT[] pInputs, int cbSize); - - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.Bool)] - private static extern void CloseTouchInputHandle(IntPtr lParam); - - [DllImport("user32.dll")] - private static extern bool ScreenToClient(IntPtr hWnd, ref POINT lpPoint); - - [DllImport("coredll.dll", EntryPoint = "SendMessage", SetLastError = true)] - private static extern IntPtr SendMessage(IntPtr hWnd, uint uMsg, IntPtr wParam, IntPtr lParam); - - private int touchInputSize; - - private int HIWORD(int value) - { - return (int)(value >> 0xf); - } - - private int LOWORD(int value) - { - return (int)(value & 0xffff); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript.Windows/InputSources/Win8TouchInput.cs b/TouchScript.Windows/InputSources/Win8TouchInput.cs deleted file mode 100644 index febd76962..000000000 --- a/TouchScript.Windows/InputSources/Win8TouchInput.cs +++ /dev/null @@ -1,243 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - * @author Andrew David Griffiths - */ - -using UnityEngine; -using System; -using System.Collections.Generic; -using System.Runtime.InteropServices; - -namespace TouchScript.InputSources -{ - - /// - /// Processes Windows 8 touch events. - /// Known issues: - /// - /// DOES NOT WORK IN EDITOR. - /// - /// - [AddComponentMenu("TouchScript/Input Sources/Windows 8 Touch Input")] - public class Win8TouchInput : InputSourceWindows - { - private delegate IntPtr WndProcDelegate(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam); - - #region Private fields - - private IntPtr hMainWindow; - private IntPtr oldWndProcPtr; - private IntPtr newWndProcPtr; - - private WndProcDelegate newWndProc; - - private Dictionary winToInternalId = new Dictionary(); - private bool isInitialized = false; - - #endregion - - #region Unity - - /// - protected override void Start() - { - base.Start(); - init(); - } - - /// - protected override void OnDestroy() - { - if (isInitialized) - { - SetWindowLongPtr(hMainWindow, -4, oldWndProcPtr); - - hMainWindow = IntPtr.Zero; - oldWndProcPtr = IntPtr.Zero; - newWndProcPtr = IntPtr.Zero; - - newWndProc = null; - } - base.OnDestroy(); - } - - #endregion - - #region Private functions - - private void init() - { - if (Application.platform != RuntimePlatform.WindowsPlayer) return; - - hMainWindow = GetForegroundWindow(); - - newWndProc = wndProc; - newWndProcPtr = Marshal.GetFunctionPointerForDelegate(newWndProc); - oldWndProcPtr = SetWindowLongPtr(hMainWindow, -4, newWndProcPtr); - - isInitialized = true; - } - - private IntPtr wndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam) - { - switch (msg) - { - case WM_POINTERDOWN: - case WM_POINTERUP: - case WM_POINTERUPDATE: - decodeTouches(msg, wParam, lParam); - break; - case WM_CLOSE: - SetWindowLongPtr(hWnd, -4, oldWndProcPtr); - SendMessage(hWnd, WM_CLOSE, IntPtr.Zero, IntPtr.Zero); - return IntPtr.Zero; - } - return CallWindowProc(oldWndProcPtr, hWnd, msg, wParam, lParam); - } - - private void decodeTouches(uint msg, IntPtr wParam, IntPtr lParam) - { - int xPos = LOWORD(lParam.ToInt32()); - int yPos = HIWORD(lParam.ToInt32()); - int pointerId = LOWORD(wParam.ToInt32()); - - POINTER_INFO pointerInfo = new POINTER_INFO(); - if (!GetPointerInfo(pointerId, ref pointerInfo)) - { - return; - - } - - POINT p = new POINT(); - p.X = xPos; - p.Y = yPos; - ScreenToClient(hMainWindow, ref p); - - int existingId; - - switch (msg) - { - case WM_POINTERDOWN: - winToInternalId.Add(pointerId, beginTouch(new Vector2(p.X, Screen.height - p.Y))); - break; - case WM_POINTERUP: - if (winToInternalId.TryGetValue(pointerId, out existingId)) - { - winToInternalId.Remove(pointerId); - endTouch(existingId); - } - break; - case WM_POINTERUPDATE: - if (winToInternalId.TryGetValue(pointerId, out existingId)) - { - moveTouch(existingId, new Vector2(p.X, Screen.height - p.Y)); - } - break; - } - } - - #endregion - - - #region p/invoke - - // Touch event window message constants [winuser.h] - private const int WM_CLOSE = 0x0010; - private const int WM_POINTERDOWN = 0x0246; - private const int WM_POINTERUP = 0x0247; - private const int WM_POINTERUPDATE = 0x0245; - - - private enum POINTER_INPUT_TYPE - { - PT_POINTER = 0x00000001, - PT_TOUCH = 0x00000002, - PT_PEN = 0x00000003, - PT_MOUSE = 0x00000004, - } - - private enum POINTER_BUTTON_CHANGE_TYPE - { - POINTER_CHANGE_NONE, - POINTER_CHANGE_FIRSTBUTTON_DOWN, - POINTER_CHANGE_FIRSTBUTTON_UP, - POINTER_CHANGE_SECONDBUTTON_DOWN, - POINTER_CHANGE_SECONDBUTTON_UP, - POINTER_CHANGE_THIRDBUTTON_DOWN, - POINTER_CHANGE_THIRDBUTTON_UP, - POINTER_CHANGE_FOURTHBUTTON_DOWN, - POINTER_CHANGE_FOURTHBUTTON_UP, - POINTER_CHANGE_FIFTHBUTTON_DOWN, - POINTER_CHANGE_FIFTHBUTTON_UP, - } - - // Touch API defined structures [winuser.h] - [StructLayout(LayoutKind.Sequential, Pack=1)] - private struct POINTER_INFO - { - public POINTER_INPUT_TYPE pointerType; - public UInt32 pointerId; - public UInt32 frameId; - public UInt32 pointerFlags; - public IntPtr sourceDevice; - public IntPtr hwndTarget; - public POINT ptPixelLocation; - public POINT ptHimetricLocation; - public POINT ptPixelLocationRaw; - public POINT ptHimetricLocationRaw; - public UInt32 dwTime; - public UInt32 historyCount; - public Int32 inputData; - public UInt32 dwKeyStates; - public UInt64 PerformanceCount; - public POINTER_BUTTON_CHANGE_TYPE ButtonChangeType; - } - - [StructLayout(LayoutKind.Sequential)] - private struct POINT - { - public int X; - public int Y; - } - - private IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr dwNewLong) - { - if (IntPtr.Size == 8) return SetWindowLongPtr64(hWnd, nIndex, dwNewLong); - return new IntPtr(SetWindowLong32(hWnd, nIndex, dwNewLong.ToInt32())); - } - - [DllImport("user32.dll")] - private static extern IntPtr GetForegroundWindow(); - - [DllImport("user32.dll", EntryPoint = "SetWindowLong")] - private static extern int SetWindowLong32(IntPtr hWnd, int nIndex, int dwNewLong); - - [DllImport("user32.dll", EntryPoint = "SetWindowLongPtr")] - private static extern IntPtr SetWindowLongPtr64(IntPtr hWnd, int nIndex, IntPtr dwNewLong); - - [DllImport("user32.dll")] - private static extern IntPtr CallWindowProc(IntPtr lpPrevWndFunc, IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); - - [DllImport("user32.dll")] - private static extern bool ScreenToClient(IntPtr hWnd, ref POINT lpPoint); - - [DllImport("coredll.dll", EntryPoint = "SendMessage", SetLastError = true)] - private static extern IntPtr SendMessage(IntPtr hWnd, uint uMsg, IntPtr wParam, IntPtr lParam); - - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.Bool)] - private static extern bool GetPointerInfo(int pointerID, ref POINTER_INFO pPointerInfo); - - private int HIWORD(int value) - { - return (int)(value >> 0xf); - } - - private int LOWORD(int value) - { - return (int)(value & 0xffff); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript.Windows/Properties/AssemblyInfo.cs b/TouchScript.Windows/Properties/AssemblyInfo.cs deleted file mode 100644 index 64f167087..000000000 --- a/TouchScript.Windows/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TouchScript.Windows")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TouchScript.Windows")] -[assembly: AssemblyCopyright("Copyright © 2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("124fcbbf-1a9a-4648-adf0-2149d466792c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TouchScript.Windows/TouchScript.Windows.csproj b/TouchScript.Windows/TouchScript.Windows.csproj deleted file mode 100644 index 3dbc2b3ea..000000000 --- a/TouchScript.Windows/TouchScript.Windows.csproj +++ /dev/null @@ -1,75 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {6A8A2544-312D-45F2-BDE1-A16058E2AD99} - Library - Properties - TouchScript.Windows - TouchScript.Windows - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\TouchScript.Windows.XML - - - - - - - - - - - ..\Lib\UnityEngine.dll - False - - - - - - - - - - - - {128FD14A-9D70-4B07-8F9A-E85A511BA28B} - TouchScript - True - - - - - xcopy /y $(ProjectDir)$(OutDir)*.dll "$(SolutionDir)Examples\General Examples\Assets\TouchScript\Plugins\" -xcopy /y $(ProjectDir)$(OutDir)*.dll "$(SolutionDir)Examples\Scaleform Examples\Assets\TouchScript\Plugins\" - - - \ No newline at end of file diff --git a/TouchScript.Windows/TouchScript.Windows.csproj.bak b/TouchScript.Windows/TouchScript.Windows.csproj.bak deleted file mode 100644 index 0a1bfb2e6..000000000 --- a/TouchScript.Windows/TouchScript.Windows.csproj.bak +++ /dev/null @@ -1,53 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - 124fcbbf-1a9a-4648-adf0-2149d466792c - Library - Properties - TouchScript.Windows - TouchScript.Windows - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TouchScript.sln b/TouchScript.sln deleted file mode 100644 index 14635e7c6..000000000 --- a/TouchScript.sln +++ /dev/null @@ -1,77 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TouchScript", "TouchScript\TouchScript.csproj", "{128FD14A-9D70-4B07-8F9A-E85A511BA28B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSCsharp", "TUIOsharp\OSCsharp\OSCsharp.csproj", "{0ADB210D-0D25-4576-8868-9C47DC4762BE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TUIOsharp", "TUIOsharp\TUIOsharp\TUIOsharp.csproj", "{6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TouchScript.Editor", "TouchScript.Editor\TouchScript.Editor.csproj", "{AFD89D67-B5D9-4BB7-BD73-A7A78568D61A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TouchScript.Pro", "TouchScript.Pro\TouchScript.Pro.csproj", "{BE1F19D3-E864-4A28-9717-EDD7FA69C2D6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TouchScript.Windows", "TouchScript.Windows\TouchScript.Windows.csproj", "{6A8A2544-312D-45F2-BDE1-A16058E2AD99}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {128FD14A-9D70-4B07-8F9A-E85A511BA28B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {128FD14A-9D70-4B07-8F9A-E85A511BA28B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {128FD14A-9D70-4B07-8F9A-E85A511BA28B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {128FD14A-9D70-4B07-8F9A-E85A511BA28B}.Release|Any CPU.Build.0 = Release|Any CPU - {0ADB210D-0D25-4576-8868-9C47DC4762BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0ADB210D-0D25-4576-8868-9C47DC4762BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0ADB210D-0D25-4576-8868-9C47DC4762BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0ADB210D-0D25-4576-8868-9C47DC4762BE}.Release|Any CPU.Build.0 = Release|Any CPU - {6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}.Release|Any CPU.Build.0 = Release|Any CPU - {AFD89D67-B5D9-4BB7-BD73-A7A78568D61A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AFD89D67-B5D9-4BB7-BD73-A7A78568D61A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AFD89D67-B5D9-4BB7-BD73-A7A78568D61A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AFD89D67-B5D9-4BB7-BD73-A7A78568D61A}.Release|Any CPU.Build.0 = Release|Any CPU - {BE1F19D3-E864-4A28-9717-EDD7FA69C2D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE1F19D3-E864-4A28-9717-EDD7FA69C2D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE1F19D3-E864-4A28-9717-EDD7FA69C2D6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE1F19D3-E864-4A28-9717-EDD7FA69C2D6}.Release|Any CPU.Build.0 = Release|Any CPU - {6A8A2544-312D-45F2-BDE1-A16058E2AD99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6A8A2544-312D-45F2-BDE1-A16058E2AD99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6A8A2544-312D-45F2-BDE1-A16058E2AD99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6A8A2544-312D-45F2-BDE1-A16058E2AD99}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - StartupItem = TouchScript\TouchScript.csproj - Policies = $0 - $0.TextStylePolicy = $1 - $1.FileWidth = 120 - $1.inheritsSet = VisualStudio - $1.inheritsScope = text/plain - $1.scope = text/x-csharp - $0.CSharpFormattingPolicy = $2 - $2.IndentSwitchBody = True - $2.ElseNewLinePlacement = NewLine - $2.ElseIfNewLinePlacement = SameLine - $2.CatchNewLinePlacement = NewLine - $2.FinallyNewLinePlacement = NewLine - $2.WhileNewLinePlacement = NewLine - $2.BeforeMethodDeclarationParentheses = False - $2.BeforeMethodCallParentheses = False - $2.BeforeConstructorDeclarationParentheses = False - $2.BeforeIndexerDeclarationBracket = False - $2.BeforeDelegateDeclarationParentheses = False - $2.AfterDelegateDeclarationParameterComma = True - $2.NewParentheses = False - $2.SpacesBeforeBrackets = False - $2.inheritsSet = Mono - $2.inheritsScope = text/x-csharp - $2.scope = text/x-csharp - EndGlobalSection -EndGlobal diff --git a/TouchScript/Behaviors/FullscreenTarget.cs b/TouchScript/Behaviors/FullscreenTarget.cs deleted file mode 100644 index 3a6bcc2c3..000000000 --- a/TouchScript/Behaviors/FullscreenTarget.cs +++ /dev/null @@ -1,61 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using UnityEngine; - -namespace TouchScript.Behaviors -{ - /// - /// Fullscreen plane collider attached to a camera. - /// - /// - /// Creates a fullscreen collider and changes its parameters dynamically with Camera it is attached to. Can be either at far clipping plane or near clipping plane of the Camera. - /// - [AddComponentMenu("TouchScript/Behaviors/Fullscreen Target")] - [ExecuteInEditMode] - [RequireComponent(typeof(BoxCollider))] - [RequireComponent(typeof(Camera))] - public class FullscreenTarget : MonoBehaviour - { - /// - /// Type of the Fullscreen Target. - /// - public enum TargetType - { - /// - /// The target is attached to camera's far plane. - /// - Background, - - /// - /// The target is attached to camera's near plane. - /// - Foreground - } - - /// - /// Type of the Fullscreen Target. - /// - public TargetType Type = TargetType.Background; - - private void Update() - { - var box = GetComponent(); - - var h = 2*Mathf.Tan(camera.fieldOfView/360*Mathf.PI); - if (Type == TargetType.Background) - { - h *= camera.farClipPlane; - box.center = new Vector3(0, 0, camera.farClipPlane); - } else if (Type == TargetType.Foreground) - { - h *= camera.nearClipPlane + .0051f; - box.center = new Vector3(0, 0, camera.nearClipPlane + .0051f); - } - var w = (float)Screen.width/Screen.height*h; - - box.size = new Vector3(w, h, .01f); - } - } -} \ No newline at end of file diff --git a/TouchScript/Behaviors/Transformer2D.cs b/TouchScript/Behaviors/Transformer2D.cs deleted file mode 100644 index 54c3b5421..000000000 --- a/TouchScript/Behaviors/Transformer2D.cs +++ /dev/null @@ -1,150 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using TouchScript.Events; -using TouchScript.Gestures; -using TouchScript.Gestures.Simple; -using UnityEngine; - -namespace TouchScript.Behaviors -{ - /// - /// Simple Component which transforms an object according to events from gestures. - /// - [AddComponentMenu("TouchScript/Behaviors/Transformer2D")] - public class Transformer2D : MonoBehaviour - { - #region Unity fields - - /// - /// Max movement speed - /// - public float Speed = 10f; - - #endregion - - #region Private variables - - private Vector3 localPositionToGo, localScaleToGo; - private Quaternion localRotationToGo; - - private Vector3 lastLocalPosition, lastLocalScale; - private Quaternion lastLocalRotation; - - #endregion - - #region Unity - - private void Start() - { - setDefaults(); - - if (GetComponent() != null) - { - GetComponent().StateChanged += onPanStateChanged; - } - if (GetComponent() != null) - { - GetComponent().StateChanged += onScaleStateChanged; - } - if (GetComponent() != null) - { - GetComponent().StateChanged += onRotateStateChanged; - } - } - - private void Update() - { - var fraction = Speed*Time.deltaTime; - if (transform.localPosition != lastLocalPosition) - { - // changed by someone else - localPositionToGo = transform.localPosition; - } - transform.localPosition = lastLocalPosition = Vector3.Lerp(transform.localPosition, localPositionToGo, fraction); - if (transform.localScale != lastLocalScale) - { - localScaleToGo = transform.localScale; - } - transform.localScale = lastLocalScale = Vector3.Lerp(transform.localScale, localScaleToGo, fraction); - if (transform.localRotation != lastLocalRotation) - { - localRotationToGo = transform.localRotation; - } - transform.localRotation = lastLocalRotation = Quaternion.Lerp(transform.localRotation, localRotationToGo, fraction); - } - - #endregion - - #region Private functions - - private void setDefaults() - { - localPositionToGo = lastLocalPosition = transform.localPosition; - localRotationToGo = lastLocalRotation = transform.localRotation; - localScaleToGo = lastLocalScale = transform.localScale; - } - - #endregion - - #region Event handlers - - private void onPanStateChanged(object sender, GestureStateChangeEventArgs e) - { - switch (e.State) - { - case Gesture.GestureState.Began: - case Gesture.GestureState.Changed: - var gesture = (SimplePanGesture)sender; - - if (gesture.LocalDeltaPosition != Vector3.zero) - { - localPositionToGo += gesture.LocalDeltaPosition; - } - break; - } - } - - private void onRotateStateChanged(object sender, GestureStateChangeEventArgs e) - { - switch (e.State) - { - case Gesture.GestureState.Began: - case Gesture.GestureState.Changed: - var gesture = (SimpleRotateGesture)sender; - - if (Math.Abs(gesture.LocalDeltaRotation) > 0.01) - { - if (transform.parent == null) - { - localRotationToGo = Quaternion.AngleAxis(gesture.LocalDeltaRotation, gesture.WorldTransformPlane.normal)*localRotationToGo; - } else - { - localRotationToGo = Quaternion.AngleAxis(gesture.LocalDeltaRotation, transform.parent.InverseTransformDirection(gesture.WorldTransformPlane.normal))*localRotationToGo; - } - } - break; - } - } - - private void onScaleStateChanged(object sender, GestureStateChangeEventArgs e) - { - switch (e.State) - { - case Gesture.GestureState.Began: - case Gesture.GestureState.Changed: - var gesture = (SimpleScaleGesture)sender; - - if (Math.Abs(gesture.LocalDeltaScale - 1) > 0.00001) - { - localScaleToGo *= gesture.LocalDeltaScale; - } - break; - } - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Clusters/Cluster.cs b/TouchScript/Clusters/Cluster.cs deleted file mode 100644 index 139b9ba82..000000000 --- a/TouchScript/Clusters/Cluster.cs +++ /dev/null @@ -1,197 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace TouchScript.Clusters -{ - /// - /// Abstract base for points separated into clusters. - /// - public abstract class Cluster - { - #region Public properties - - /// - /// Number of total points in clusters represented by this object. - /// - public int PointsCount - { - get { return points.Count; } - } - - #endregion - - #region Private variables - - /// - /// List of points in clusters. - /// - protected List points = new List(); - - /// - /// Indicates if clusters must be rebuilt. - /// - protected bool dirty { get; private set; } - - #endregion - - /// - /// Initializes a new instance of the class. - /// - protected Cluster() - { - markDirty(); - } - - #region Static methods - - /// - /// Returns a camera which was used to capture cluster's points. - /// - /// List of touch points. - /// Camera instance. - public static Camera GetClusterCamera(IList touches) - { - if (touches.Count == 0) return Camera.main; - var cam = touches[0].Layer.Camera; - if (cam == null) return Camera.main; - return cam; - } - - /// - /// Calculates the centroid of touch points' positions. - /// - /// List of touch points. - /// Centroid of touch points' positions or if cluster contains no points. - public static Vector2 Get2DCenterPosition(IList touches) - { - var length = touches.Count; - if (length == 0) return TouchPoint.InvalidPosition; - if (length == 1) return touches[0].Position; - - var position = new Vector2(); - foreach (var point in touches) position += point.Position; - return position/(float)length; - } - - /// - /// Calculates the centroid of previous touch points' positions. - /// - /// List of touch points. - /// Centroid of previous touch point's positions or if cluster contains no points. - public static Vector2 GetPrevious2DCenterPosition(IList touches) - { - var length = touches.Count; - if (length == 0) return TouchPoint.InvalidPosition; - if (length == 1) return touches[0].PreviousPosition; - - var position = new Vector2(); - foreach (var point in touches) position += point.PreviousPosition; - return position/(float)length; - } - - /// - /// Computes a unique hash for a list of touch points. - /// - /// List of touch points. - /// A unique string for a list of touch points. - public static String GetPointsHash(List touches) - { - var result = ""; - foreach (var touchPoint in touches) result += "#" + Convert.ToString(touchPoint.Id); - return result; - } - - #endregion - - #region Public methods - - /// - /// Adds a point to cluster. - /// - /// A point. - /// - public void AddPoint(TouchPoint point) - { - if (points.Contains(point)) return; - - points.Add(point); - markDirty(); - } - - /// - /// Adds a list of points to cluster. - /// - /// List of points. - public void AddPoints(IList points) - { - foreach (var point in points) AddPoint(point); - } - - /// - /// Removes a point from cluster. - /// - /// A point. - /// - public void RemovePoint(TouchPoint point) - { - if (!points.Contains(point)) return; - - points.Remove(point); - markDirty(); - } - - /// - /// Removes a list of points from cluster. - /// - /// List of points. - public void RemovePoints(IList points) - { - foreach (var point in points) RemovePoint(point); - } - - /// - /// Removes all points from cluster. - /// - public void RemoveAllPoints() - { - points.Clear(); - markDirty(); - } - - /// - /// Invalidates cluster state. - /// Call this method to recalculate cluster properties. - /// - public void Invalidate() - { - markDirty(); - } - - #endregion - - #region Protected functions - - /// - /// Signals that clusters changed and must be rebuilt. - /// - protected void markDirty() - { - dirty = true; - } - - /// - /// Signals that clusters have just been rebuilt. - /// - protected void markClean() - { - dirty = false; - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Clusters/Clusters2.cs b/TouchScript/Clusters/Clusters2.cs deleted file mode 100644 index dec723d77..000000000 --- a/TouchScript/Clusters/Clusters2.cs +++ /dev/null @@ -1,209 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using UnityEngine; - -namespace TouchScript.Clusters -{ - /// - /// Represents a pool of points separated into two clusters. - /// - public class Clusters2 : Cluster - { - /// - /// The first cluster. - /// - public const int CLUSTER1 = 0; - - /// - /// The second cluster. - /// - public const int CLUSTER2 = 1; - - #region Public properties - - /// - /// Minimum distance in cm between clusters to treat them as two separate clusters. - /// Default: 1cm. - /// - public float MinPointsDistance { get; set; } - - /// - /// Indicates that this cluster instance has two valid clusters. - /// - /// - /// true if this instance has clusters; otherwise, false. - /// - public bool HasClusters - { - get - { - if (points.Count < 2) return false; - foreach (var p1 in points) - { - foreach (var p2 in points) - { - if (p1 == p2) continue; - if (Vector2.Distance(p1.Position, p2.Position) > MinPointsDistance) return true; - } - } - return false; - } - } - - #endregion - - #region Private variables - - private List cluster1 = new List(); - private List cluster2 = new List(); - - #endregion - - /// - /// Initializes a new instance of the class. - /// - public Clusters2() : base() - { - MinPointsDistance = 1; - } - - #region Public methods - - /// - /// Calculates the center position of one of the clusters. - /// - /// Cluster id. Either or . - /// Cluster's centroid position or if cluster contains no points. - public Vector2 GetCenterPosition(int id) - { - if (!HasClusters) return TouchPoint.InvalidPosition; - if (dirty) distributePoints(); - - Vector2 result; - switch (id) - { - case CLUSTER1: - result = Get2DCenterPosition(cluster1); - break; - case CLUSTER2: - result = Get2DCenterPosition(cluster2); - break; - default: - return TouchPoint.InvalidPosition; - } - return result; - } - - /// - /// Calculates previous center position of one of the clusters. - /// - /// Cluster id. Either or . - /// Cluster's centroid previous position or if cluster contains no points. - public Vector2 GetPreviousCenterPosition(int id) - { - if (!HasClusters) return TouchPoint.InvalidPosition; - if (dirty) distributePoints(); - - Vector2 result; - switch (id) - { - case CLUSTER1: - result = GetPrevious2DCenterPosition(cluster1); - break; - case CLUSTER2: - result = GetPrevious2DCenterPosition(cluster2); - break; - default: - return TouchPoint.InvalidPosition; - } - return result; - } - - #endregion - - #region Private functions - - private void distributePoints() - { - cluster1.Clear(); - cluster2.Clear(); - cluster1.Add(points[0]); - cluster2.Add(points[1]); - - var total = points.Count; - if (total == 2) return; - - var oldHash1 = ""; - var oldHash2 = ""; - var hash1 = "#"; - var hash2 = "#"; - - while (oldHash1 != hash1 || oldHash2 != hash2) - { - var center1 = Get2DCenterPosition(cluster1); - var center2 = Get2DCenterPosition(cluster2); - TouchPoint obj1 = null; - TouchPoint obj2 = null; - - // Take most distant points from cluster1 and cluster2 - var maxDist1 = -float.MaxValue; - var maxDist2 = -float.MaxValue; - for (var i = 0; i < total; i++) - { - var obj = points[i]; - var dist = (center1 - obj.Position).sqrMagnitude; - if (dist > maxDist2) - { - maxDist2 = dist; - obj2 = obj; - } - - dist = (center2 - obj.Position).sqrMagnitude; - if (dist > maxDist1) - { - maxDist1 = dist; - obj1 = obj; - } - } - - // If it is the same point it means that this point is too far away from both clusters and has to be in a separate cluster - if (obj1 == obj2) - { - center1 = (center1 + center2)*.5f; - center2 = obj2.Position; - } else - { - center1 = obj1.Position; - center2 = obj2.Position; - } - - cluster1.Clear(); - cluster2.Clear(); - - for (var i = 0; i < total; i++) - { - var obj = points[i]; - if ((center1 - obj.Position).sqrMagnitude < (center2 - obj.Position).sqrMagnitude) - { - cluster1.Add(obj); - } else - { - cluster2.Add(obj); - } - } - - oldHash1 = hash1; - oldHash2 = hash2; - hash1 = GetPointsHash(cluster1); - hash2 = GetPointsHash(cluster2); - } - - markClean(); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Debugging/TouchDebugger.cs b/TouchScript/Debugging/TouchDebugger.cs deleted file mode 100644 index 69437a9b9..000000000 --- a/TouchScript/Debugging/TouchDebugger.cs +++ /dev/null @@ -1,130 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TouchScript.Events; -using UnityEngine; - -namespace TouchScript.Debugging -{ - /// - /// Visual debugger to show touches as GUI elements. - /// - [AddComponentMenu("TouchScript/Touch Debugger")] - public class TouchDebugger : MonoBehaviour - { - #region Unity fields - - /// - /// Texture to use. - /// - public Texture2D TouchTexture; - - /// - /// Font color for touch ids. - /// - public Color FontColor; - - #endregion - - #region Private variables - - private Dictionary dummies = new Dictionary(); - - #endregion - - #region Unity - - private void Start() - { - if (TouchManager.Instance != null) - { - TouchManager.Instance.TouchesBegan += OnTouchesBegan; - TouchManager.Instance.TouchesEnded += OnTouchesEnded; - TouchManager.Instance.TouchesMoved += OnTouchesMoved; - TouchManager.Instance.TouchesCancelled += OnTouchesCancelled; - } - } - - private void OnGUI() - { - if (TouchTexture == null) return; - - GUI.color = FontColor; - - foreach (KeyValuePair dummy in dummies) - { - var x = dummy.Value.Position.x; - var y = Screen.height - dummy.Value.Position.y; - GUI.DrawTexture(new Rect(x - TouchTexture.width/2, y - TouchTexture.height/2, TouchTexture.width, TouchTexture.height), TouchTexture, ScaleMode.ScaleToFit); - GUI.Label(new Rect(x + TouchTexture.width, y - 9, 60, 25), dummy.Value.Id.ToString()); - } - } - - private void OnDestroy() - { - if (TouchManager.Instance != null) - { - TouchManager.Instance.TouchesBegan -= OnTouchesBegan; - TouchManager.Instance.TouchesEnded -= OnTouchesEnded; - TouchManager.Instance.TouchesMoved -= OnTouchesMoved; - TouchManager.Instance.TouchesCancelled -= OnTouchesCancelled; - } - } - - #endregion - - #region Private functions - - private void updateDummy(TouchPoint dummy) - { - dummies[dummy.Id] = dummy; - } - - #endregion - - #region Event handlers - - private void OnTouchesBegan(object sender, TouchEventArgs e) - { - if (!enabled) return; - - foreach (var touchPoint in e.TouchPoints) - { - dummies.Add(touchPoint.Id, touchPoint); - } - } - - private void OnTouchesMoved(object sender, TouchEventArgs e) - { - if (!enabled) return; - - foreach (var touchPoint in e.TouchPoints) - { - TouchPoint dummy; - if (!dummies.TryGetValue(touchPoint.Id, out dummy)) return; - updateDummy(touchPoint); - } - } - - private void OnTouchesEnded(object sender, TouchEventArgs e) - { - if (!enabled) return; - - foreach (var touchPoint in e.TouchPoints) - { - TouchPoint dummy; - if (!dummies.TryGetValue(touchPoint.Id, out dummy)) return; - dummies.Remove(touchPoint.Id); - } - } - - private void OnTouchesCancelled(object sender, TouchEventArgs e) - { - OnTouchesEnded(sender, e); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Events/GestureStateChangeEventArgs.cs b/TouchScript/Events/GestureStateChangeEventArgs.cs deleted file mode 100644 index dcf75c5ba..000000000 --- a/TouchScript/Events/GestureStateChangeEventArgs.cs +++ /dev/null @@ -1,36 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using TouchScript.Gestures; - -namespace TouchScript.Events -{ - /// - /// Gesture state change event arguments. - /// - public class GestureStateChangeEventArgs : EventArgs - { - /// - /// Previous gesture state. - /// - public Gesture.GestureState PreviousState; - - /// - /// Current gesture state. - /// - public Gesture.GestureState State; - - /// - /// Initializes a new instance of the class. - /// - /// Current gesture state. - /// Previous gesture state. - public GestureStateChangeEventArgs(Gesture.GestureState state, Gesture.GestureState previousState) - { - State = state; - PreviousState = previousState; - } - } -} \ No newline at end of file diff --git a/TouchScript/Events/TouchEventArgs.cs b/TouchScript/Events/TouchEventArgs.cs deleted file mode 100644 index 833c12caf..000000000 --- a/TouchScript/Events/TouchEventArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using System.Collections.Generic; - -namespace TouchScript.Events -{ - /// - /// Touch event arguments. - /// - public class TouchEventArgs : EventArgs - { - /// - /// List of touch points participating in the event. - /// - public List TouchPoints; - - /// - /// Initializes a new instance of the class. - /// - /// List of touch points. - public TouchEventArgs(List touchPoints) - { - TouchPoints = touchPoints; - } - } -} \ No newline at end of file diff --git a/TouchScript/GestureManager.cs b/TouchScript/GestureManager.cs deleted file mode 100644 index 79b7cba28..000000000 --- a/TouchScript/GestureManager.cs +++ /dev/null @@ -1,429 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using System.Collections.Generic; -using TouchScript.Events; -using TouchScript.Gestures; -using UnityEngine; - -namespace TouchScript -{ - /// - /// Manages touch points dispatching within a hierarchy of gestures. - /// - [AddComponentMenu("TouchScript/Gesture Manager")] - public class GestureManager : MonoBehaviour - { - #region Public properties - - /// - /// Singleton instance. - /// - public static GestureManager Instance - { - get - { - if (shuttingDown) return null; - if (instance == null) - { - instance = FindObjectOfType(typeof(GestureManager)) as GestureManager; - if (instance == null && Application.isPlaying) - { - var touchManager = FindObjectOfType(typeof(TouchManager)) as TouchManager; - if (touchManager == null) - { - var go = GameObject.Find("TouchScript"); - if (go == null) go = new GameObject("TouchScript"); - instance = go.AddComponent(); - } else - { - instance = touchManager.gameObject.AddComponent(); - } - } - } - return instance; - } - } - - #endregion - - #region Private variables - - private static GestureManager instance; - // Flag to indicate that we are going out of Play Mode in the editor. Otherwise there might be a loop when while deinitializing other objects access TouchScript.Instance which recreates an instance of TouchManager and everything breaks. - private static bool shuttingDown = false; - - // Upcoming changes - private List gesturesToReset = new List(); - - #endregion - - #region Temporary variables - - // Temporary variables for update methods. - private Dictionary> targetTouches = new Dictionary>(); - private Dictionary> gestureTouches = new Dictionary>(); - private List activeGestures = new List(); - - #endregion - - #region Unity - - private void Awake() - { - shuttingDown = false; - if (instance == null) instance = this; - - TouchManager.Instance.FrameStarted += frameStartedHandler; - TouchManager.Instance.FrameFinished += frameFinishedHandler; - TouchManager.Instance.TouchesBegan += touchBeganHandler; - TouchManager.Instance.TouchesMoved += touchMovedHandler; - TouchManager.Instance.TouchesEnded += touchEndedHandler; - TouchManager.Instance.TouchesCancelled += touchCancelledHandler; - } - - private void OnDestroy() - { - if (!Application.isLoadingLevel) shuttingDown = true; - } - - #endregion - - #region Internal methods - - internal Gesture.GestureState GestureChangeState(Gesture gesture, Gesture.GestureState state) - { - switch (state) - { - case Gesture.GestureState.Possible: - break; - case Gesture.GestureState.Began: - switch (gesture.State) - { - case Gesture.GestureState.Possible: - break; - default: - print(String.Format("Gesture {0} erroneously tried to enter state {1} from state {2}", new object[] {gesture, state, gesture.State})); - break; - } - if (gestureCanRecognize(gesture)) - { - recognizeGesture(gesture); - } else - { - if (!gesturesToReset.Contains(gesture)) gesturesToReset.Add(gesture); - return Gesture.GestureState.Failed; - } - break; - case Gesture.GestureState.Changed: - switch (gesture.State) - { - case Gesture.GestureState.Began: - case Gesture.GestureState.Changed: - break; - default: - print(String.Format("Gesture {0} erroneously tried to enter state {1} from state {2}", new object[] {gesture, state, gesture.State})); - break; - } - break; - case Gesture.GestureState.Failed: - if (!gesturesToReset.Contains(gesture)) gesturesToReset.Add(gesture); - break; - case Gesture.GestureState.Recognized: // Ended - if (!gesturesToReset.Contains(gesture)) gesturesToReset.Add(gesture); - switch (gesture.State) - { - case Gesture.GestureState.Possible: - if (gestureCanRecognize(gesture)) - { - recognizeGesture(gesture); - } else - { - return Gesture.GestureState.Failed; - } - break; - case Gesture.GestureState.Began: - case Gesture.GestureState.Changed: - break; - default: - print(String.Format("Gesture {0} erroneously tried to enter state {1} from state {2}", new object[] {gesture, state, gesture.State})); - break; - } - break; - case Gesture.GestureState.Cancelled: - if (!gesturesToReset.Contains(gesture)) gesturesToReset.Add(gesture); - break; - } - - return state; - } - - #endregion - - #region Private functions - - private void updateBegan(List points) - { - update(points, processTargetBegan, - (gesture, touchPoints) => gesture.TouchesBegan(touchPoints)); - } - - private void updateMoved(List points) - { - update(points, processTarget, - (gesture, touchPoints) => gesture.TouchesMoved(touchPoints)); - } - - private void updateEnded(List points) - { - update(points, processTarget, - (gesture, touchPoints) => gesture.TouchesEnded(touchPoints)); - } - - private void updateCancelled(List points) - { - update(points, processTarget, - (gesture, touchPoints) => gesture.TouchesCancelled(touchPoints)); - } - - private void update(List points, Action process, Action> dispatch) - { - // WARNING! Arcane magic ahead! - - // Dictionary> - touch points sorted by targets - targetTouches.Clear(); - // Dictionary> - touch points sorted by gesture - gestureTouches.Clear(); - // gestures which got any touch points - // needed because there's no order in dictionary - activeGestures.Clear(); - - foreach (var touch in points) - { - if (touch.Target != null) - { - List list; - if (!targetTouches.TryGetValue(touch.Target, out list)) - { - list = new List(); - targetTouches.Add(touch.Target, list); - } - list.Add(touch); - } - } - // arranged touch points by target - - foreach (var target in targetTouches.Keys) process(target); - foreach (var gesture in activeGestures) - if (gestureIsActive(gesture)) dispatch(gesture, gestureTouches[gesture]); - } - - private void processTarget(Transform target) - { - // gestures on objects in the hierarchy from "root" to target - var possibleGestures = getHierarchyEndingWith(target); - - foreach (var gesture in possibleGestures) - { - if (!gestureIsActive(gesture)) continue; - - distributePointsByGestures(target, gesture, gesture.HasTouchPoint); - } - } - - private void processTargetBegan(Transform target) - { - // gestures in the target's hierarchy which might affect gesture on the target - var mightBeActiveGestures = getHierarchyContaining(target); - // gestures on objects in the hierarchy from "root" to target - var possibleGestures = getHierarchyEndingWith(target); - foreach (var gesture in possibleGestures) - { - // WARNING! Gestures might change during this loop. - // For example when one of them recognizes. - if (!gestureIsActive(gesture)) continue; - - var canReceiveTouches = true; - foreach (var activeGesture in mightBeActiveGestures) - { - if (gesture == activeGesture) continue; - if ((activeGesture.State == Gesture.GestureState.Began || activeGesture.State == Gesture.GestureState.Changed) && (activeGesture.CanPreventGesture(gesture))) - { - // there's a started gesture which prevents this one - canReceiveTouches = false; - break; - } - } - - // check gesture's ShouldReceiveTouch callback - if (canReceiveTouches) distributePointsByGestures(target, gesture, gesture.ShouldReceiveTouch); - } - } - - private void distributePointsByGestures(Transform target, Gesture gesture, Predicate condition) - { - var touchesToReceive = - targetTouches[target].FindAll(condition); - if (touchesToReceive.Count > 0) - { - if (gestureTouches.ContainsKey(gesture)) - { - gestureTouches[gesture].AddRange(touchesToReceive); - } else - { - activeGestures.Add(gesture); - gestureTouches.Add(gesture, touchesToReceive); - } - } - } - - private void resetGestures() - { - if (gesturesToReset.Count == 0) return; - foreach (var gesture in gesturesToReset) - { - gesture.Reset(); - gesture.SetState(Gesture.GestureState.Possible); - } - gesturesToReset.Clear(); - } - - private List getHierarchyEndingWith(Transform target) - { - var hierarchy = new List(); - while (target != null) - { - hierarchy.AddRange(getEnabledGesturesOnTarget(target)); - target = target.parent; - } - return hierarchy; - } - - private List getHierarchyBeginningWith(Transform target, bool includeSelf) - { - var hierarchy = new List(); - if (includeSelf) - { - hierarchy.AddRange(getEnabledGesturesOnTarget(target)); - } - foreach (Transform child in target) - { - hierarchy.AddRange(getHierarchyBeginningWith(child, true)); - } - return hierarchy; - } - - private List getHierarchyContaining(Transform target) - { - var hierarchy = getHierarchyEndingWith(target); - hierarchy.AddRange(getHierarchyBeginningWith(target, false)); - return hierarchy; - } - - private List getEnabledGesturesOnTarget(Transform target) - { - var result = new List(); - if (target.gameObject.activeInHierarchy) - { - var gestures = target.GetComponents(); - foreach (var gesture in gestures) - { - if (gesture.enabled) result.Add(gesture); - } - } - return result; - } - - private bool gestureIsActive(Gesture gesture) - { - if (gesture.gameObject.activeInHierarchy == false) return false; - if (gesture.enabled == false) return false; - switch (gesture.State) - { - case Gesture.GestureState.Failed: - case Gesture.GestureState.Recognized: - case Gesture.GestureState.Cancelled: - return false; - default: - return true; - } - } - - private bool gestureCanRecognize(Gesture gesture) - { - if (!gesture.ShouldBegin()) return false; - - var gestures = getHierarchyContaining(gesture.transform); - foreach (var otherGesture in gestures) - { - if (gesture == otherGesture) continue; - if (!gestureIsActive(otherGesture)) continue; - if ((otherGesture.State == Gesture.GestureState.Began || otherGesture.State == Gesture.GestureState.Changed) && - otherGesture.CanPreventGesture(gesture)) - { - return false; - } - } - - return true; - } - - private void recognizeGesture(Gesture gesture) - { - var gestures = getHierarchyContaining(gesture.transform); - foreach (var otherGesture in gestures) - { - if (gesture == otherGesture) continue; - if (!gestureIsActive(otherGesture)) continue; - if (!(otherGesture.State == Gesture.GestureState.Began || otherGesture.State == Gesture.GestureState.Changed) && - gesture.CanPreventGesture(otherGesture)) - { - failGesture(otherGesture); - } - } - } - - private void failGesture(Gesture gesture) - { - gesture.SetState(Gesture.GestureState.Failed); - } - - #endregion - - #region Touch events handlers - - private void frameFinishedHandler(object sender, EventArgs eventArgs) - { - resetGestures(); - } - - private void frameStartedHandler(object sender, EventArgs eventArgs) - { - resetGestures(); - } - - private void touchBeganHandler(object sender, TouchEventArgs touchEventArgs) - { - updateBegan(touchEventArgs.TouchPoints); - } - - private void touchMovedHandler(object sender, TouchEventArgs touchEventArgs) - { - updateMoved(touchEventArgs.TouchPoints); - } - - private void touchEndedHandler(object sender, TouchEventArgs touchEventArgs) - { - updateEnded(touchEventArgs.TouchPoints); - } - - private void touchCancelledHandler(object sender, TouchEventArgs touchEventArgs) - { - updateCancelled(touchEventArgs.TouchPoints); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/FlickGesture.cs b/TouchScript/Gestures/FlickGesture.cs deleted file mode 100644 index 402137ce9..000000000 --- a/TouchScript/Gestures/FlickGesture.cs +++ /dev/null @@ -1,225 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TouchScript.Clusters; -using UnityEngine; - -namespace TouchScript.Gestures -{ - /// - /// Recognizes fast movement before releasing touches. - /// Doesn't care how much time touch points were on surface and how much they moved. - /// - [AddComponentMenu("TouchScript/Gestures/Flick Gesture")] - public class FlickGesture : Gesture - { - - #region Unity fields - - /// - /// Direction of a flick. - /// - public enum GestureDirection - { - /// - /// Direction doesn't matter. - /// - Any, - - /// - /// Only horizontal. - /// - Horizontal, - - /// - /// Only vertical. - /// - Vertical, - } - - #endregion - - #region Private variables - - [SerializeField] - private float flickTime = .1f; - - [SerializeField] - private float minDistance = 1f; - - [SerializeField] - private float movementThreshold = .5f; - - [SerializeField] - private GestureDirection direction = GestureDirection.Any; - - private bool moving = false; - private Vector2 movementBuffer = Vector2.zero; - private bool isActive = false; - - private List positionDeltas = new List(); - private List timeDeltas = new List(); - - #endregion - - #region Public properties - - /// - /// Time interval in seconds in which touch points must move by . - /// - public float FlickTime - { - get { return flickTime; } - set { flickTime = value; } - } - - /// - /// Minimum distance in cm to move in before ending gesture for it to be recognized. - /// - public float MinDistance - { - get { return minDistance; } - set { minDistance = value; } - } - - /// - /// Minimum distance in cm for touch points to move for gesture to be recognized. - /// Prevents misinterpreting taps. - /// - public float MovementThreshold - { - get { return movementThreshold; } - set { movementThreshold = value; } - } - - /// - /// Direction to look for. - /// - public GestureDirection Direction - { - get { return direction; } - set { direction = value; } - } - - /// - /// Contains flick direction (not normalized) when gesture is recognized. - /// - public Vector2 ScreenFlickVector { get; private set; } - - public float ScreenFlickTime { get; private set; } - - #endregion - - protected void LateUpdate() - { - if (!isActive) return; - - positionDeltas.Add(ScreenPosition - PreviousScreenPosition); - timeDeltas.Add(Time.deltaTime); - } - - #region Gesture callbacks - - /// - protected override void touchesBegan(IList touches) - { - base.touchesBegan(touches); - - if (activeTouches.Count == touches.Count) - { - isActive = true; - } - } - - /// - protected override void touchesMoved(IList touches) - { - base.touchesMoved(touches); - - if (!moving) - { - movementBuffer += ScreenPosition - PreviousScreenPosition; - var dpiMovementThreshold = MovementThreshold*touchManager.DotsPerCentimeter; - if (movementBuffer.sqrMagnitude >= dpiMovementThreshold*dpiMovementThreshold) - { - moving = true; - } - } - } - - /// - protected override void touchesEnded(IList touches) - { - base.touchesEnded(touches); - - if (activeTouches.Count == 0) - { - isActive = false; - - if (!moving) - { - setState(GestureState.Failed); - return; - } - - positionDeltas.Add(Cluster.Get2DCenterPosition(touches) - Cluster.GetPrevious2DCenterPosition(touches)); - timeDeltas.Add(Time.deltaTime); - - var totalTime = 0f; - var totalMovement = Vector2.zero; - var i = timeDeltas.Count - 1; - while (i >= 0 && totalTime < FlickTime) - { - totalTime += timeDeltas[i]; - totalMovement += positionDeltas[i]; - i--; - } - - switch (Direction) - { - case GestureDirection.Horizontal: - totalMovement.y = 0; - break; - case GestureDirection.Vertical: - totalMovement.x = 0; - break; - } - - if (totalMovement.magnitude < MinDistance * TouchManager.Instance.DotsPerCentimeter) - { - setState(GestureState.Failed); - } - else - { - ScreenFlickVector = totalMovement; - ScreenFlickTime = totalTime; - setState(GestureState.Recognized); - } - } - } - - /// - protected override void touchesCancelled(IList touches) - { - base.touchesCancelled(touches); - - touchesEnded(touches); - } - - /// - protected override void reset() - { - base.reset(); - - isActive = false; - moving = false; - movementBuffer = Vector2.zero; - positionDeltas.Clear(); - timeDeltas.Clear(); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/Gesture.cs b/TouchScript/Gestures/Gesture.cs deleted file mode 100644 index a86f45d76..000000000 --- a/TouchScript/Gestures/Gesture.cs +++ /dev/null @@ -1,576 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using System.Collections.Generic; -using TouchScript.Events; -using TouchScript.Clusters; -using TouchScript.Hit; -using TouchScript.Layers; -using UnityEngine; - -namespace TouchScript.Gestures -{ - /// - /// Base class for all gestures - /// - public abstract class Gesture : MonoBehaviour - { - /// - /// Invalid 3d position. Some properties return this constant when their result doesn't make sense. - /// - public static readonly Vector3 InvalidPosition = new Vector3(float.NaN, float.NaN, float.NaN); - - /// - /// Possible states of a gesture. - /// - public enum GestureState - { - /// - /// Gesture is possible - /// - Possible, - - /// - /// Continuous gesture has just begun - /// - Began, - - /// - /// Started continuous gesture is updated - /// - Changed, - - /// - /// Continuous gesture is ended - /// - Ended, - - /// - /// Gesture is cancelled - /// - Cancelled, - - /// - /// Gesture is failed by itself or by another recognized gesture - /// - Failed, - - /// - /// Gesture is recognized - /// - Recognized = Ended - } - - /// - /// Determines whether position is invalid. - /// - /// The position. - /// - /// true if position is invalid; otherwise, false. - /// - public static bool IsInvalidPosition(Vector3 position) - { - return position.Equals(InvalidPosition); - } - - #region Events - - /// - /// Occurs when gesture changes state. - /// - public event EventHandler StateChanged - { - add { stateChangedInvoker += value; } - remove { stateChangedInvoker -= value; } - } - - // Needed to overcome iOS AOT limitations - private EventHandler stateChangedInvoker; - - #endregion - - #region Public properties - - private GestureState state = GestureState.Possible; - - /// - /// Current gesture state. - /// - public GestureState State - { - get { return state; } - private set - { - PreviousState = state; - state = value; - - switch (value) - { - case GestureState.Possible: - onPossible(); - break; - case GestureState.Began: - onBegan(); - break; - case GestureState.Changed: - onChanged(); - break; - case GestureState.Recognized: - onRecognized(); - break; - case GestureState.Failed: - onFailed(); - break; - case GestureState.Cancelled: - onCancelled(); - break; - } - - if (stateChangedInvoker != null) stateChangedInvoker(this, new GestureStateChangeEventArgs(state, PreviousState)); - } - } - - /// - /// Previous gesture state. - /// - public GestureState PreviousState { get; private set; } - - /// - /// Transformation center in screen coordinates. - /// - public virtual Vector2 ScreenPosition - { - get - { - if (activeTouches.Count == 0) return TouchPoint.InvalidPosition; - return Cluster.Get2DCenterPosition(activeTouches); - } - } - - /// - /// Previous transformation center in screen coordinates. - /// - public virtual Vector2 PreviousScreenPosition - { - get - { - if (activeTouches.Count == 0) return TouchPoint.InvalidPosition; - return Cluster.GetPrevious2DCenterPosition(activeTouches); - } - } - - /// - /// Transformation center in normalized screen coordinates. - /// - public Vector2 NormalizedScreenPosition - { - get - { - if (activeTouches.Count == 0) return TouchPoint.InvalidPosition; - var position = ScreenPosition; - return new Vector2(position.x/Screen.width, position.y/Screen.height); - } - } - - /// - /// Previous center in screen coordinates. - /// - public Vector2 PreviousNormalizedScreenPosition - { - get - { - if (activeTouches.Count == 0) return TouchPoint.InvalidPosition; - var position = PreviousScreenPosition; - return new Vector2(position.x/Screen.width, position.y/Screen.height); - } - } - - /// - /// Touch points the gesture currently owns and works with. - /// - protected List activeTouches = new List(); - - /// - /// List of gesture's active touch points. - /// - public List ActiveTouches - { - get { return new List(activeTouches); } - } - - #endregion - - /// - /// An object implementing to be asked for gesture specific actions. - /// - public IGestureDelegate Delegate { get; set; } - - #region Private variables - - /// - /// Reference to global GestureManager. - /// - protected GestureManager gestureManager { get; private set; } - - /// - /// Reference to global TouchManager. - /// - protected TouchManager touchManager { get; private set; } - - [SerializeField] - private List friendlyGestures = new List(); - - private List friendlyGestureIds = new List(); - - #endregion - - #region Unity - - /// - /// Unity3d Awake handler. - /// - protected virtual void Awake() - { - foreach (var gesture in friendlyGestures) - { - AddFriendlyGesture(gesture); - } - } - - /// - /// Unity3d Start handler. - /// - protected virtual void Start() - { - touchManager = TouchManager.Instance; - gestureManager = GestureManager.Instance; - - if (touchManager == null) Debug.LogError("No TouchManager found! Please add an instance of TouchManager to the scene!"); - if (gestureManager == null) Debug.LogError("No GesturehManager found! Please add an instance of GesturehManager to the scene!"); - - Reset(); - } - - /// - /// Unity3d OnDisable handler. - /// - protected virtual void OnDisable() - { - setState(GestureState.Failed); - } - - /// - /// Unity3d OnDestroy handler. - /// - protected virtual void OnDestroy() - { - gestureManager = null; - } - - #endregion - - #region Public methods - - /// - /// Adds a friendly gesture. - /// - /// The gesture. - public virtual void AddFriendlyGesture(Gesture gesture) - { - if (gesture == null || gesture == this) return; - - RegisterFriendlyGesture(gesture); - gesture.RegisterFriendlyGesture(this); - } - - /// - /// Removes a friendly gesture. - /// - /// The gesture. - public virtual void RemoveFriendlyGesture(Gesture gesture) - { - if (gesture == null || gesture == this) return; - - UnregisterFriendlyGesture(gesture); - gesture.UnregisterFriendlyGesture(this); - } - - /// - /// Determines whether the specified gesture is friendly. - /// - /// The gesture. - /// - /// true if the specified gesture is friendly; otherwise, false. - /// - public bool IsFriendly(Gesture gesture) - { - return friendlyGestureIds.Contains(gesture.GetInstanceID()); - } - - /// - /// Gets result of casting a ray from gesture touch points' centroid screen position. - /// - /// true if ray hits gesture's target; otherwise, false. - public virtual bool GetTargetHitResult() - { - TouchHit hit; - return GetTargetHitResult(ScreenPosition, out hit); - } - - /// - /// Gets result of casting a ray from gesture touch points centroid screen position. - /// - /// Raycast result - /// true if ray hits gesture's target; otherwise, false. - public virtual bool GetTargetHitResult(out TouchHit hit) - { - return GetTargetHitResult(ScreenPosition, out hit); - } - - /// - /// Gets result of casting a ray from specific screen position. - /// - /// The position. - /// true if ray hits gesture's target; otherwise, false. - public virtual bool GetTargetHitResult(Vector2 position) - { - TouchHit hit; - return GetTargetHitResult(position, out hit); - } - - /// - /// Gets result of casting a ray from specific screen position. - /// - /// The position. - /// Raycast result. - /// true if ray hits gesture's target; otherwise, false. - public virtual bool GetTargetHitResult(Vector2 position, out TouchHit hit) - { - TouchLayer layer = null; - if (!TouchManager.Instance.GetHitTarget(position, out hit, out layer)) return false; - - if (transform == hit.Transform || hit.Transform.IsChildOf(transform)) return true; - return false; - } - - /// - /// Determines whether gesture controls a touch point. - /// - /// The touch. - /// - /// true if gesture controls the touch point; otherwise, false. - /// - public bool HasTouchPoint(TouchPoint touch) - { - return activeTouches.Contains(touch); - } - - /// - /// Determines whether this instance can prevent the specified gesture. - /// - /// The gesture. - /// - /// true if this instance can prevent the specified gesture; otherwise, false. - /// - public virtual bool CanPreventGesture(Gesture gesture) - { - if (Delegate == null) - { - if (gesture.CanBePreventedByGesture(this)) return !IsFriendly(gesture); - return false; - } - return !Delegate.ShouldRecognizeSimultaneously(this, gesture); - } - - /// - /// Determines whether this instance can be prevented by specified gesture. - /// - /// The gesture. - /// - /// true if this instance can be prevented by specified gesture; otherwise, false. - /// - public virtual bool CanBePreventedByGesture(Gesture gesture) - { - if (Delegate == null) return !IsFriendly(gesture); - return !Delegate.ShouldRecognizeSimultaneously(this, gesture); - } - - /// - /// Specifies if gesture can receive this specific touch point. - /// - /// The touch. - /// true if this touch should be received by the gesture; otherwise, false. - public virtual bool ShouldReceiveTouch(TouchPoint touch) - { - if (Delegate == null) return true; - return Delegate.ShouldReceiveTouch(this, touch); - } - - /// - /// Specifies if gesture can begin or recognize. - /// - /// true if gesture should begin; otherwise, false. - public virtual bool ShouldBegin() - { - if (Delegate == null) return true; - return Delegate.ShouldBegin(this); - } - - #endregion - - #region Internal functions - - internal void SetState(GestureState value) - { - setState(value); - } - - internal void Reset() - { - activeTouches.Clear(); - reset(); - } - - internal void TouchesBegan(IList touches) - { - activeTouches.AddRange(touches); - touchesBegan(touches); - } - - internal void TouchesMoved(IList touches) - { - touchesMoved(touches); - } - - internal void TouchesEnded(IList touches) - { - activeTouches.RemoveAll(touches.Contains); - touchesEnded(touches); - } - - internal void TouchesCancelled(IList touches) - { - activeTouches.RemoveAll(touches.Contains); - touchesCancelled(touches); - } - - internal void RegisterFriendlyGesture(Gesture gesture) - { - if (gesture == this || friendlyGestureIds.Contains(gesture.GetInstanceID())) return; - - friendlyGestureIds.Add(gesture.GetInstanceID()); - } - - internal void UnregisterFriendlyGesture(Gesture gesture) - { - friendlyGestureIds.Remove(gesture.GetInstanceID()); - } - - #endregion - - #region Misc methods - - /// - /// Tries to change gesture state. - /// - /// New state. - /// true if state was changed; otherwise, false. - protected bool setState(GestureState value) - { - if (gestureManager == null) return false; - if (value == state && state != GestureState.Changed) return false; - - var newState = gestureManager.GestureChangeState(this, value); - State = newState; - - return value == newState; - } - - /// - /// Manually ignore touch. - /// - /// Touch to ignore. - protected void ignoreTouch(TouchPoint touch) - { - activeTouches.Remove(touch); - } - - #endregion - - #region Callbacks - - /// - /// Called when new touches appear. - /// - /// The touches. - protected virtual void touchesBegan(IList touches) - {} - - /// - /// Called for moved touches. - /// - /// The touches. - protected virtual void touchesMoved(IList touches) - {} - - /// - /// Called if touches are removed. - /// - /// The touches. - protected virtual void touchesEnded(IList touches) - {} - - /// - /// Called when touches are cancelled. - /// - /// The touches. - protected virtual void touchesCancelled(IList touches) - {} - - /// - /// Called to reset gesture state after it fails or recognizes. - /// - protected virtual void reset() - {} - - /// - /// Called when state is changed to Possible. - /// - protected virtual void onPossible() - {} - - /// - /// Called when state is changed to Began. - /// - protected virtual void onBegan() - {} - - /// - /// Called when state is changed to Changed. - /// - protected virtual void onChanged() - {} - - /// - /// Called when state is changed to Recognized. - /// - protected virtual void onRecognized() - {} - - /// - /// Called when state is changed to Failed. - /// - protected virtual void onFailed() - {} - - /// - /// Called when state is changed to Cancelled. - /// - protected virtual void onCancelled() - {} - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/LongPressGesture.cs b/TouchScript/Gestures/LongPressGesture.cs deleted file mode 100644 index e10eacc4c..000000000 --- a/TouchScript/Gestures/LongPressGesture.cs +++ /dev/null @@ -1,160 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections; -using System.Collections.Generic; -using TouchScript.Hit; -using UnityEngine; - -namespace TouchScript.Gestures -{ - /// - /// Gesture which recognizes a point cluster which didn't move for specified time since it appeared. - /// - [AddComponentMenu("TouchScript/Gestures/Long Press Gesture")] - public class LongPressGesture : Gesture - { - #region Private fields - - [SerializeField] - private int maxTouches = int.MaxValue; - - [SerializeField] - private float timeToPress = 1; - - [SerializeField] - private float distanceLimit = float.PositiveInfinity; - - private Vector2 totalMovement; - private float recognizeTime; - private bool fireRecognizedNextUpdate = false; - - #endregion - - #region Public properties - - /// - /// Maximum number of simultaneous touch points. - /// - public int MaxTouches - { - get { return maxTouches; } - set { maxTouches = value; } - } - - /// - /// Total time in seconds required to hold touches still. - /// - public float TimeToPress - { - get { return timeToPress; } - set { timeToPress = value; } - } - - /// - /// Maximum distance in cm touch points can move before gesture fails. - /// - public float DistanceLimit - { - get { return distanceLimit; } - set { distanceLimit = value; } - } - - #endregion - - #region Unity - - /// - protected void Update() - { - if (fireRecognizedNextUpdate) - { - if (base.GetTargetHitResult()) - { - setState(GestureState.Recognized); - } else - { - setState(GestureState.Failed); - } - } - } - - #endregion - - #region Gesture callbacks - - /// - protected override void touchesBegan(IList touches) - { - base.touchesBegan(touches); - - if (activeTouches.Count > MaxTouches) - { - setState(GestureState.Failed); - return; - } - if (activeTouches.Count == touches.Count) - { - StartCoroutine("wait"); - } - } - - /// - protected override void touchesMoved(IList touches) - { - base.touchesMoved(touches); - - totalMovement += ScreenPosition - PreviousScreenPosition; - if (totalMovement.magnitude/TouchManager.Instance.DotsPerCentimeter >= DistanceLimit) - { - setState(GestureState.Failed); - } - } - - /// - protected override void touchesEnded(IList touches) - { - base.touchesEnded(touches); - - if (activeTouches.Count == 0) - { - StopCoroutine("wait"); - setState(GestureState.Failed); - } - } - - /// - protected override void onFailed() - { - base.onFailed(); - - reset(); - } - - /// - protected override void reset() - { - base.reset(); - - fireRecognizedNextUpdate = false; - StopCoroutine("wait"); - } - - #endregion - - #region Private functions - - private IEnumerator wait() - { - recognizeTime = Time.time + TimeToPress; - while (Time.time < recognizeTime) - { - yield return null; - } - fireRecognizedNextUpdate = true; - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/PanGesture.cs b/TouchScript/Gestures/PanGesture.cs deleted file mode 100644 index ec28c080a..000000000 --- a/TouchScript/Gestures/PanGesture.cs +++ /dev/null @@ -1,82 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TouchScript.Clusters; -using TouchScript.Gestures.Simple; -using UnityEngine; - -namespace TouchScript.Gestures -{ - /// - /// Recognizes dragging gesture. - /// - [AddComponentMenu("TouchScript/Gestures/Pan Gesture")] - public class PanGesture : SimplePanGesture - { - private Clusters2 clusters = new Clusters2(); - - /// - public override Vector2 ScreenPosition - { - get - { - if (activeTouches.Count == 0) return TouchPoint.InvalidPosition; - if (activeTouches.Count == 1) return activeTouches[0].Position; - return (clusters.GetCenterPosition(Clusters2.CLUSTER1) + clusters.GetCenterPosition(Clusters2.CLUSTER2))*.5f; - } - } - - /// - public override Vector2 PreviousScreenPosition - { - get - { - if (activeTouches.Count == 0) return TouchPoint.InvalidPosition; - if (activeTouches.Count == 1) return activeTouches[0].PreviousPosition; - return (clusters.GetPreviousCenterPosition(Clusters2.CLUSTER1) + clusters.GetPreviousCenterPosition(Clusters2.CLUSTER2))*.5f; - } - } - - /// - protected override void Awake() - { - base.Awake(); - - clusters.MinPointsDistance = 0; - } - - /// - protected override void touchesBegan(IList touches) - { - clusters.AddPoints(touches); - - base.touchesBegan(touches); - } - - /// - protected override void touchesMoved(IList touches) - { - clusters.Invalidate(); - - base.touchesMoved(touches); - } - - /// - protected override void touchesEnded(IList touches) - { - clusters.RemovePoints(touches); - - base.touchesEnded(touches); - } - - /// - protected override void reset() - { - base.reset(); - - clusters.RemoveAllPoints(); - } - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/RotateGesture.cs b/TouchScript/Gestures/RotateGesture.cs deleted file mode 100644 index e64e1632f..000000000 --- a/TouchScript/Gestures/RotateGesture.cs +++ /dev/null @@ -1,106 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TouchScript.Clusters; -using TouchScript.Gestures.Simple; -using UnityEngine; - -namespace TouchScript.Gestures -{ - /// - /// Recognizes rotation gesture. - /// - [AddComponentMenu("TouchScript/Gestures/Rotate Gesture")] - public class RotateGesture : SimpleRotateGesture - { - /// - /// Cluster object - /// - protected Clusters2 clusters = new Clusters2(); - - /// - public override float MinPointsDistance - { - get { return base.MinPointsDistance; } - set - { - base.MinPointsDistance = value; - if (Application.isPlaying) - { - clusters.MinPointsDistance = minPointsDistanceInPixels; - } - } - } - - /// - protected override void Awake() - { - base.Awake(); - - clusters.MinPointsDistance = minPointsDistanceInPixels; - } - - /// - protected override void touchesBegan(IList touches) - { - clusters.AddPoints(touches); - - base.touchesBegan(touches); - } - - /// - protected override void touchesMoved(IList touches) - { - clusters.Invalidate(); - - base.touchesMoved(touches); - } - - /// - protected override void touchesEnded(IList touches) - { - clusters.RemovePoints(touches); - - base.touchesEnded(touches); - } - - /// - protected override void reset() - { - base.reset(); - - clusters.RemoveAllPoints(); - } - - /// - protected override bool gotEnoughTouchPoints() - { - return clusters.HasClusters; - } - - /// - protected override bool relevantTouchPoints(IList touches) - { - // every touch point is relevant for us - return true; - } - - /// - protected override Vector2 getPointScreenPosition(int index) - { - if (index < 0) index = 0; - else if (index > 1) index = 1; - return clusters.GetCenterPosition(index); - } - - /// - protected override Vector2 getPointPreviousScreenPosition(int index) - { - if (index < 0) index = 0; - else if (index > 1) index = 1; - return clusters.GetPreviousCenterPosition(index); - } - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/ScaleGesture.cs b/TouchScript/Gestures/ScaleGesture.cs deleted file mode 100644 index 5c802f57f..000000000 --- a/TouchScript/Gestures/ScaleGesture.cs +++ /dev/null @@ -1,106 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TouchScript.Clusters; -using TouchScript.Gestures.Simple; -using UnityEngine; - -namespace TouchScript.Gestures -{ - /// - /// Recognizes scaling gesture. - /// - [AddComponentMenu("TouchScript/Gestures/Scale Gesture")] - public class ScaleGesture : SimpleScaleGesture - { - /// - /// Cluster object - /// - protected Clusters2 clusters = new Clusters2(); - - /// - public override float MinPointsDistance - { - get { return base.MinPointsDistance; } - set - { - base.MinPointsDistance = value; - if (Application.isPlaying) - { - clusters.MinPointsDistance = minPointsDistanceInPixels; - } - } - } - - /// - protected override void Awake() - { - base.Awake(); - - clusters.MinPointsDistance = minPointsDistanceInPixels; - } - - /// - protected override void touchesBegan(IList touches) - { - clusters.AddPoints(touches); - - base.touchesBegan(touches); - } - - /// - protected override void touchesMoved(IList touches) - { - clusters.Invalidate(); - - base.touchesMoved(touches); - } - - /// - protected override void touchesEnded(IList touches) - { - clusters.RemovePoints(touches); - - base.touchesEnded(touches); - } - - /// - protected override void reset() - { - base.reset(); - - clusters.RemoveAllPoints(); - } - - /// - protected override bool gotEnoughTouchPoints() - { - return clusters.HasClusters; - } - - /// - protected override bool relevantTouchPoints(IList touches) - { - // every touch point is relevant for us - return true; - } - - /// - protected override Vector2 getPointScreenPosition(int index) - { - if (index < 0) index = 0; - else if (index > 1) index = 1; - return clusters.GetCenterPosition(index); - } - - /// - protected override Vector2 getPointPreviousScreenPosition(int index) - { - if (index < 0) index = 0; - else if (index > 1) index = 1; - return clusters.GetPreviousCenterPosition(index); - } - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/Simple/MetaGesture.cs b/TouchScript/Gestures/Simple/MetaGesture.cs deleted file mode 100644 index 4cd2b81f4..000000000 --- a/TouchScript/Gestures/Simple/MetaGesture.cs +++ /dev/null @@ -1,129 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace TouchScript.Gestures.Simple -{ - /// - /// Converts touchpoint events for target object into separate events to be used somewhere else. - /// - [AddComponentMenu("TouchScript/Gestures/Meta Gesture")] - public class MetaGesture : Gesture - { - #region Events - - /// - /// Occurs when a touch point is added. - /// - public event EventHandler TouchPointBegan - { - add { touchPointBeganInvoker += value; } - remove { touchPointBeganInvoker -= value; } - } - - /// - /// Occurs when a touch point is updated. - /// - public event EventHandler TouchPointMoved - { - add { touchPointMovedInvoker += value; } - remove { touchPointMovedInvoker -= value; } - } - - /// - /// Occurs when a touch point is removed. - /// - public event EventHandler TouchPointEnded - { - add { touchPointEndedInvoker += value; } - remove { touchPointEndedInvoker -= value; } - } - - /// - /// Occurs when a touch point is cancelled. - /// - public event EventHandler TouchPointCancelled - { - add { touchPointCancelledInvoker += value; } - remove { touchPointCancelledInvoker -= value; } - } - - // iOS Events AOT hack - private EventHandler touchPointBeganInvoker, touchPointMovedInvoker, - touchPointEndedInvoker, touchPointCancelledInvoker; - - #endregion - - #region Gesture callbacks - - /// - protected override void touchesBegan(IList touches) - { - base.touchesBegan(touches); - - if (State == GestureState.Possible) setState(GestureState.Began); - - if (touchPointBeganInvoker == null) return; - foreach (var touchPoint in touches) touchPointBeganInvoker(this, new MetaGestureEventArgs(touchPoint)); - } - - /// - protected override void touchesMoved(IList touches) - { - base.touchesMoved(touches); - - if (State == GestureState.Began || State == GestureState.Changed) setState(GestureState.Changed); - - if (touchPointMovedInvoker == null) return; - foreach (var touchPoint in touches) touchPointMovedInvoker(this, new MetaGestureEventArgs(touchPoint)); - } - - /// - protected override void touchesEnded(IList touches) - { - base.touchesEnded(touches); - - if ((State == GestureState.Began || State == GestureState.Changed) && activeTouches.Count == 0) setState(GestureState.Ended); - - if (touchPointEndedInvoker == null) return; - foreach (var touchPoint in touches) touchPointEndedInvoker(this, new MetaGestureEventArgs(touchPoint)); - } - - /// - protected override void touchesCancelled(IList touches) - { - base.touchesCancelled(touches); - - if ((State == GestureState.Began || State == GestureState.Changed) && activeTouches.Count == 0) setState(GestureState.Ended); - - if (touchPointCancelledInvoker == null) return; - foreach (var touchPoint in touches) touchPointCancelledInvoker(this, new MetaGestureEventArgs(touchPoint)); - } - - #endregion - } - - /// - /// EventArgs for MetaGesture events. - /// - public class MetaGestureEventArgs : EventArgs - { - /// - /// Current touch point. - /// - public TouchPoint TouchPoint; - - /// - /// Initializes a new instance of the class. - /// - /// Touch point the event is for. - public MetaGestureEventArgs(TouchPoint touchPoint) - { - TouchPoint = touchPoint; - } - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/Simple/PressGesture.cs b/TouchScript/Gestures/Simple/PressGesture.cs deleted file mode 100644 index 6e10444de..000000000 --- a/TouchScript/Gestures/Simple/PressGesture.cs +++ /dev/null @@ -1,71 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using UnityEngine; - -namespace TouchScript.Gestures -{ - /// - /// Recognizes when an object is touched. - /// Works with any gesture unless a Delegate is set. - /// - [AddComponentMenu("TouchScript/Gestures/Press Gesture")] - public class PressGesture : Gesture - { - - #region Public properties - - public bool IgnoreChildren - { - get { return ignoreChildren; } - set { ignoreChildren = value; } - } - - #endregion - - #region Private variables - - [SerializeField] - private bool ignoreChildren = false; - - #endregion - - #region Gesture callbacks - - public override bool ShouldReceiveTouch(TouchPoint touch) - { - if (!IgnoreChildren) return base.ShouldReceiveTouch(touch); - if (!base.ShouldReceiveTouch(touch)) return false; - - if (touch.Target != transform) return false; - return true; - } - - /// - public override bool CanPreventGesture(Gesture gesture) - { - if (Delegate == null) return false; - return Delegate.ShouldRecognizeSimultaneously(this, gesture); - } - - /// - public override bool CanBePreventedByGesture(Gesture gesture) - { - if (Delegate == null) return false; - return !Delegate.ShouldRecognizeSimultaneously(this, gesture); - } - - /// - protected override void touchesBegan(IList touches) - { - base.touchesBegan(touches); - - if (activeTouches.Count == touches.Count) setState(GestureState.Recognized); - } - - #endregion - - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/Simple/ReleaseGesture.cs b/TouchScript/Gestures/Simple/ReleaseGesture.cs deleted file mode 100644 index 22100528a..000000000 --- a/TouchScript/Gestures/Simple/ReleaseGesture.cs +++ /dev/null @@ -1,71 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using UnityEngine; - -namespace TouchScript.Gestures -{ - /// - /// Recognizes when last touch is released from target. - /// Works with any gesture unless a Delegate is set. - /// - [AddComponentMenu("TouchScript/Gestures/Release Gesture")] - public class ReleaseGesture : Gesture - { - - #region Public properties - - public bool IgnoreChildren - { - get { return ignoreChildren; } - set { ignoreChildren = value; } - } - - #endregion - - #region Private variables - - [SerializeField] - private bool ignoreChildren = false; - - #endregion - - #region Gesture callbacks - - public override bool ShouldReceiveTouch(TouchPoint touch) - { - if (!IgnoreChildren) return base.ShouldReceiveTouch(touch); - if (!base.ShouldReceiveTouch(touch)) return false; - - if (touch.Target != transform) return false; - return true; - } - - /// - public override bool CanPreventGesture(Gesture gesture) - { - if (Delegate == null) return false; - return Delegate.ShouldRecognizeSimultaneously(this, gesture); - } - - /// - public override bool CanBePreventedByGesture(Gesture gesture) - { - if (Delegate == null) return false; - return !Delegate.ShouldRecognizeSimultaneously(this, gesture); - } - - /// - protected override void touchesEnded(IList touches) - { - base.touchesEnded(touches); - - if (activeTouches.Count == 0) setState(GestureState.Recognized); - } - - #endregion - - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/Simple/SimplePanGesture.cs b/TouchScript/Gestures/Simple/SimplePanGesture.cs deleted file mode 100644 index 77df1edee..000000000 --- a/TouchScript/Gestures/Simple/SimplePanGesture.cs +++ /dev/null @@ -1,156 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TouchScript.Utils; -using UnityEngine; - -namespace TouchScript.Gestures.Simple -{ - /// - /// Simple Pan gesture which only relies on the first touch. - /// - [AddComponentMenu("TouchScript/Gestures/Simple Pan Gesture")] - public class SimplePanGesture : Transform2DGestureBase - { - #region Public properties - - /// - /// Minimum distance in cm for touch points to move for gesture to begin. - /// - public float MovementThreshold - { - get { return movementThreshold; } - set { movementThreshold = value; } - } - - /// - /// 3D delta position in global coordinates. - /// - public Vector3 WorldDeltaPosition { get; private set; } - - /// - /// 3D delta position in local coordinates. - /// - public Vector3 LocalDeltaPosition { get; private set; } - - /// - public override Vector2 ScreenPosition - { - get - { - if (activeTouches.Count == 0) return TouchPoint.InvalidPosition; - if (activeTouches.Count == 1) return activeTouches[0].Position; - return (activeTouches[0].Position + activeTouches[1].Position)*.5f; - } - } - - /// - public override Vector2 PreviousScreenPosition - { - get - { - if (activeTouches.Count == 0) return TouchPoint.InvalidPosition; - if (activeTouches.Count == 1) return activeTouches[0].PreviousPosition; - return (activeTouches[0].PreviousPosition + activeTouches[1].PreviousPosition)*.5f; - } - } - - #endregion - - #region Private variables - - [SerializeField] - private float movementThreshold = 0.5f; - - private Vector2 movementBuffer; - private bool isMoving = false; - - #endregion - - #region Gesture callbacks - - /// - protected override void touchesMoved(IList touches) - { - base.touchesMoved(touches); - - var globalDelta3DPos = Vector3.zero; - var localDelta3DPos = Vector3.zero; - Vector3 oldGlobalCenter3DPos, oldLocalCenter3DPos, newGlobalCenter3DPos, newLocalCenter3DPos; - - Vector2 oldCenter2DPos = PreviousScreenPosition; - Vector2 newCenter2DPos = ScreenPosition; - - if (isMoving) - { - oldGlobalCenter3DPos = ProjectionUtils.CameraToPlaneProjection(oldCenter2DPos, projectionCamera, WorldTransformPlane); - newGlobalCenter3DPos = ProjectionUtils.CameraToPlaneProjection(newCenter2DPos, projectionCamera, WorldTransformPlane); - globalDelta3DPos = newGlobalCenter3DPos - oldGlobalCenter3DPos; - oldLocalCenter3DPos = globalToLocalPosition(oldGlobalCenter3DPos); - newLocalCenter3DPos = globalToLocalPosition(newGlobalCenter3DPos); - localDelta3DPos = newLocalCenter3DPos - globalToLocalPosition(oldGlobalCenter3DPos); - } else - { - movementBuffer += newCenter2DPos - oldCenter2DPos; - var dpiMovementThreshold = MovementThreshold*touchManager.DotsPerCentimeter; - if (movementBuffer.sqrMagnitude > dpiMovementThreshold*dpiMovementThreshold) - { - isMoving = true; - oldGlobalCenter3DPos = ProjectionUtils.CameraToPlaneProjection(oldCenter2DPos - movementBuffer, projectionCamera, WorldTransformPlane); - newGlobalCenter3DPos = ProjectionUtils.CameraToPlaneProjection(newCenter2DPos, projectionCamera, WorldTransformPlane); - globalDelta3DPos = newGlobalCenter3DPos - oldGlobalCenter3DPos; - oldLocalCenter3DPos = globalToLocalPosition(oldGlobalCenter3DPos); - newLocalCenter3DPos = globalToLocalPosition(newGlobalCenter3DPos); - localDelta3DPos = newLocalCenter3DPos - globalToLocalPosition(oldGlobalCenter3DPos); - } else - { - newGlobalCenter3DPos = ProjectionUtils.CameraToPlaneProjection(newCenter2DPos - movementBuffer, projectionCamera, WorldTransformPlane); - newLocalCenter3DPos = globalToLocalPosition(newGlobalCenter3DPos); - oldGlobalCenter3DPos = newGlobalCenter3DPos; - oldLocalCenter3DPos = newLocalCenter3DPos; - } - } - - if (globalDelta3DPos != Vector3.zero) - { - switch (State) - { - case GestureState.Possible: - case GestureState.Began: - case GestureState.Changed: - PreviousWorldTransformCenter = oldGlobalCenter3DPos; - WorldTransformCenter = newGlobalCenter3DPos; - WorldDeltaPosition = globalDelta3DPos; - PreviousWorldTransformCenter = oldGlobalCenter3DPos; - LocalTransformCenter = newLocalCenter3DPos; - LocalDeltaPosition = localDelta3DPos; - PreviousLocalTransformCenter = oldLocalCenter3DPos; - - if (State == GestureState.Possible) - { - setState(GestureState.Began); - } else - { - setState(GestureState.Changed); - } - break; - } - } - } - - /// - protected override void reset() - { - base.reset(); - - WorldDeltaPosition = Vector3.zero; - LocalDeltaPosition = Vector3.zero; - movementBuffer = Vector2.zero; - isMoving = false; - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/Simple/SimpleRotateGesture.cs b/TouchScript/Gestures/Simple/SimpleRotateGesture.cs deleted file mode 100644 index a3a7c520c..000000000 --- a/TouchScript/Gestures/Simple/SimpleRotateGesture.cs +++ /dev/null @@ -1,143 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using System.Collections.Generic; -using TouchScript.Utils; -using UnityEngine; - -namespace TouchScript.Gestures.Simple -{ - /// - /// Simple Rotate gesture which takes into account only the first two touch points. - /// - [AddComponentMenu("TouchScript/Gestures/Simple Rotate Gesture")] - public class SimpleRotateGesture : TwoPointTransform2DGestureBase - { - #region Private variables - - [SerializeField] - private float rotationThreshold = 3f; - - private float rotationBuffer; - private bool isRotating = false; - - #endregion - - #region Public properties - - /// - /// Minimum rotation in degrees for gesture to begin. - /// - public float RotationThreshold - { - get { return rotationThreshold; } - set { rotationThreshold = value; } - } - - /// - /// Local delta rotation in degrees. Changes every Begin or Changed state. - /// - public float LocalDeltaRotation { get; private set; } - - #endregion - - #region Gesture callbacks - - /// - protected override void touchesMoved(IList touches) - { - if (!gotEnoughTouchPoints()) return; - if (!relevantTouchPoints(touches)) return; - - Vector3 oldGlobalCenter3DPos, oldLocalCenter3DPos, newGlobalCenter3DPos, newLocalCenter3DPos; - var deltaRotation = 0f; - - var new2DPos1 = getPointScreenPosition(0); - var new2DPos2 = getPointScreenPosition(1); - if (Vector2.Distance(new2DPos1, new2DPos2) < minPointsDistanceInPixels) return; - - base.touchesMoved(touches); - - var old2DPos1 = getPointPreviousScreenPosition(0); - var old2DPos2 = getPointPreviousScreenPosition(1); - var old3DPos1 = ProjectionUtils.CameraToPlaneProjection(old2DPos1, projectionCamera, WorldTransformPlane); - var old3DPos2 = ProjectionUtils.CameraToPlaneProjection(old2DPos2, projectionCamera, WorldTransformPlane); - var new3DPos1 = ProjectionUtils.CameraToPlaneProjection(new2DPos1, projectionCamera, WorldTransformPlane); - var new3DPos2 = ProjectionUtils.CameraToPlaneProjection(new2DPos2, projectionCamera, WorldTransformPlane); - var newVector = new3DPos2 - new3DPos1; - var oldVector = old3DPos2 - old3DPos1; - - Vector2 oldCenter2DPos = (old2DPos1 + old2DPos2)*.5f; - Vector2 newCenter2DPos = (new2DPos1 + new2DPos2)*.5f; - - var angle = Vector3.Angle(oldVector, newVector); - if (Vector3.Dot(Vector3.Cross(oldVector, newVector), WorldTransformPlane.normal) < 0) angle = -angle; - if (isRotating) - { - deltaRotation = angle; - } else - { - rotationBuffer += angle; - if (rotationBuffer*rotationBuffer >= RotationThreshold*RotationThreshold) - { - isRotating = true; - deltaRotation = rotationBuffer; - } - } - - oldGlobalCenter3DPos = ProjectionUtils.CameraToPlaneProjection(oldCenter2DPos, projectionCamera, WorldTransformPlane); - newGlobalCenter3DPos = ProjectionUtils.CameraToPlaneProjection(newCenter2DPos, projectionCamera, WorldTransformPlane); - oldLocalCenter3DPos = globalToLocalPosition(oldGlobalCenter3DPos); - newLocalCenter3DPos = globalToLocalPosition(newGlobalCenter3DPos); - - if (Math.Abs(deltaRotation) > 0.00001) - { - switch (State) - { - case GestureState.Possible: - case GestureState.Began: - case GestureState.Changed: - screenPosition = newCenter2DPos; - previousScreenPosition = oldCenter2DPos; - PreviousWorldTransformCenter = oldGlobalCenter3DPos; - WorldTransformCenter = newGlobalCenter3DPos; - PreviousWorldTransformCenter = oldGlobalCenter3DPos; - LocalTransformCenter = newLocalCenter3DPos; - PreviousLocalTransformCenter = oldLocalCenter3DPos; - - LocalDeltaRotation = deltaRotation; - - if (State == GestureState.Possible) - { - setState(GestureState.Began); - } else - { - setState(GestureState.Changed); - } - break; - } - } - } - - /// - protected override void reset() - { - base.reset(); - - rotationBuffer = 0f; - isRotating = false; - } - - /// - protected override void restart() - { - base.restart(); - - LocalDeltaRotation = 0f; - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/Simple/SimpleScaleGesture.cs b/TouchScript/Gestures/Simple/SimpleScaleGesture.cs deleted file mode 100644 index a886759d1..000000000 --- a/TouchScript/Gestures/Simple/SimpleScaleGesture.cs +++ /dev/null @@ -1,147 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TouchScript.Utils; -using UnityEngine; - -namespace TouchScript.Gestures.Simple -{ - /// - /// Simple Scale gesture which takes into account only the first two touch points. - /// - [AddComponentMenu("TouchScript/Gestures/Simple Scale Gesture")] - public class SimpleScaleGesture : TwoPointTransform2DGestureBase - { - #region Private variables - - [SerializeField] - private float scalingThreshold = .5f; - - private float scalingBuffer; - private bool isScaling = false; - - #endregion - - #region Public properties - - /// - /// Minimum distance in cm between touch points for gesture to begin. - /// - public float ScalingThreshold - { - get { return scalingThreshold; } - set { scalingThreshold = value; } - } - - /// - /// Contains local delta scale when gesture is recognized. - /// Value is between 0 and +infinity, where 1 is no scale, 0.5 is scaled in half, 2 scaled twice. - /// - public float LocalDeltaScale { get; private set; } - - #endregion - - #region Gesture callbacks - - /// - protected override void touchesMoved(IList touches) - { - if (!gotEnoughTouchPoints()) return; - if (!relevantTouchPoints(touches)) return; - - Vector3 oldGlobalCenter3DPos, oldLocalCenter3DPos, newGlobalCenter3DPos, newLocalCenter3DPos; - var deltaScale = 1f; - - var new2DPos1 = getPointScreenPosition(0); - var new2DPos2 = getPointScreenPosition(1); - if (Vector2.Distance(new2DPos1, new2DPos2) < minPointsDistanceInPixels) return; - - base.touchesMoved(touches); - - var old2DPos1 = getPointPreviousScreenPosition(0); - var old2DPos2 = getPointPreviousScreenPosition(1); - var old3DPos1 = ProjectionUtils.CameraToPlaneProjection(old2DPos1, projectionCamera, WorldTransformPlane); - var old3DPos2 = ProjectionUtils.CameraToPlaneProjection(old2DPos2, projectionCamera, WorldTransformPlane); - var new3DPos1 = ProjectionUtils.CameraToPlaneProjection(new2DPos1, projectionCamera, WorldTransformPlane); - var new3DPos2 = ProjectionUtils.CameraToPlaneProjection(new2DPos2, projectionCamera, WorldTransformPlane); - var newVector = new3DPos2 - new3DPos1; - - Vector2 oldCenter2DPos = (old2DPos1 + old2DPos2)*.5f; - Vector2 newCenter2DPos = (new2DPos1 + new2DPos2)*.5f; - - if (isScaling) - { - deltaScale = newVector.magnitude/Vector3.Distance(old3DPos2, old3DPos1); - } else - { - var old2DDist = Vector2.Distance(old2DPos1, old2DPos2); - var new2DDist = Vector2.Distance(new2DPos1, new2DPos2); - var delta2DDist = new2DDist - old2DDist; - scalingBuffer += delta2DDist; - var dpiScalingThreshold = ScalingThreshold*touchManager.DotsPerCentimeter; - if (scalingBuffer*scalingBuffer >= dpiScalingThreshold*dpiScalingThreshold) - { - isScaling = true; - var oldVector2D = (old2DPos2 - old2DPos1).normalized; - var startScale = (new2DDist - scalingBuffer)*.5f; - var startVector = oldVector2D*startScale; - deltaScale = newVector.magnitude/(ProjectionUtils.CameraToPlaneProjection(oldCenter2DPos + startVector, projectionCamera, WorldTransformPlane) - ProjectionUtils.CameraToPlaneProjection(oldCenter2DPos - startVector, projectionCamera, WorldTransformPlane)).magnitude; - } - } - - oldGlobalCenter3DPos = ProjectionUtils.CameraToPlaneProjection(oldCenter2DPos, projectionCamera, WorldTransformPlane); - newGlobalCenter3DPos = ProjectionUtils.CameraToPlaneProjection(newCenter2DPos, projectionCamera, WorldTransformPlane); - oldLocalCenter3DPos = globalToLocalPosition(oldGlobalCenter3DPos); - newLocalCenter3DPos = globalToLocalPosition(newGlobalCenter3DPos); - - if (Mathf.Abs(deltaScale - 1f) > 0.00001) - { - switch (State) - { - case GestureState.Possible: - case GestureState.Began: - case GestureState.Changed: - screenPosition = newCenter2DPos; - previousScreenPosition = oldCenter2DPos; - PreviousWorldTransformCenter = oldGlobalCenter3DPos; - WorldTransformCenter = newGlobalCenter3DPos; - PreviousWorldTransformCenter = oldGlobalCenter3DPos; - LocalTransformCenter = newLocalCenter3DPos; - PreviousLocalTransformCenter = oldLocalCenter3DPos; - - LocalDeltaScale = deltaScale; - - if (State == GestureState.Possible) - { - setState(GestureState.Began); - } else - { - setState(GestureState.Changed); - } - break; - } - } - } - - /// - protected override void reset() - { - base.reset(); - - scalingBuffer = 0f; - isScaling = false; - } - - /// - protected override void restart() - { - base.restart(); - - LocalDeltaScale = 1f; - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/Simple/Transform2DGestureBase.cs b/TouchScript/Gestures/Simple/Transform2DGestureBase.cs deleted file mode 100644 index 500542ed0..000000000 --- a/TouchScript/Gestures/Simple/Transform2DGestureBase.cs +++ /dev/null @@ -1,232 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TouchScript.Clusters; -using UnityEngine; - -namespace TouchScript.Gestures.Simple -{ - /// - /// Base class for transform gestures. - /// - public abstract class Transform2DGestureBase : Gesture - { - /// - /// Transform's projection type. - /// - public enum ProjectionType - { - /// - /// Use a plane parallel to camera viewport. - /// - Camera, - - /// - /// Use a plane with certain normal vector in local coordinates. - /// - Local, - - /// - /// Use a plane with certain normal vector in global coordinates. - /// - Global - } - - #region Public properties - - /// - /// Transform's projection type. - /// - public ProjectionType Projection - { - get { return projection; } - set - { - if (projection == value) return; - projection = value; - if (Application.isPlaying) updateProjectionPlane(); - } - } - - /// - /// Transform's projection plane normal. - /// - public Vector3 ProjectionNormal - { - get - { - if (projection == ProjectionType.Camera) - { - return projectionCamera.transform.forward; - } else - { - return projectionNormal; - } - } - set - { - if (projectionNormal == value) return; - projectionNormal = value; - if (Application.isPlaying) updateProjectionPlane(); - } - } - - /// - /// Previous global transform center in 3D. - /// - public Vector3 PreviousWorldTransformCenter { get; protected set; } - - /// - /// Global transform center in 3D. - /// - public Vector3 WorldTransformCenter { get; protected set; } - - /// - /// Previous local transform center in 3D. - /// - public Vector3 PreviousLocalTransformCenter { get; protected set; } - - /// - /// Local transform center in 3D. - /// - public Vector3 LocalTransformCenter { get; protected set; } - - /// - /// Plane where transformation occured. - /// - public Plane WorldTransformPlane { get; private set; } - - #endregion - - #region Private variables - - [SerializeField] - private ProjectionType projection = ProjectionType.Camera; - - [SerializeField] - private Vector3 projectionNormal = Vector3.forward; - - /// - /// Camera which is used to project touch points from screen space to a 3d plane. - /// - protected Camera projectionCamera; - - #endregion - - #region Unity - - /// - protected override void Awake() - { - base.Awake(); - - updateProjectionCamera(); - updateProjectionPlane(); - } - - #endregion - - #region Gesture callbacks - - /// - protected override void touchesMoved(IList touches) - { - base.touchesMoved(touches); - - updateProjectionCamera(); - updateProjectionPlane(); - } - - /// - protected override void touchesEnded(IList touches) - { - base.touchesEnded(touches); - - if (activeTouches.Count == 0) - { - switch (State) - { - case GestureState.Began: - case GestureState.Changed: - setState(GestureState.Ended); - break; - } - } - } - - /// - protected override void touchesCancelled(IList touches) - { - base.touchesCancelled(touches); - - touchesEnded(touches); - } - - /// - protected override void reset() - { - base.reset(); - - WorldTransformCenter = InvalidPosition; - PreviousWorldTransformCenter = InvalidPosition; - LocalTransformCenter = InvalidPosition; - PreviousLocalTransformCenter = InvalidPosition; - } - - #endregion - - #region Private functions - - /// - /// Converts a vector from global space to object's local space. - /// - /// Global vector to convert. - /// Vector in local space. - protected virtual Vector3 globalToLocalPosition(Vector3 global) - { - if (transform.parent != null) - { - return transform.parent.InverseTransformPoint(global); - } - return global; - } - - /// - /// Updates projection camera. - /// - protected void updateProjectionCamera() - { - if (activeTouches.Count == 0) projectionCamera = Camera.main; - else projectionCamera = Cluster.GetClusterCamera(activeTouches); - } - - /// - /// Updates projection plane based on options set. - /// - protected void updateProjectionPlane() - { - if (!Application.isPlaying) return; - - Vector3 center; - if (collider != null) center = collider.bounds.center; - else center = transform.position; - - switch (projection) - { - case ProjectionType.Camera: - WorldTransformPlane = new Plane(projectionCamera.transform.forward, center); - break; - case ProjectionType.Local: - WorldTransformPlane = new Plane(transform.TransformDirection(projectionNormal).normalized, center); - break; - case ProjectionType.Global: - WorldTransformPlane = new Plane(projectionNormal.normalized, center); - break; - } - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/Simple/TwoPointTransform2DGestureBase.cs b/TouchScript/Gestures/Simple/TwoPointTransform2DGestureBase.cs deleted file mode 100644 index 138eff9b4..000000000 --- a/TouchScript/Gestures/Simple/TwoPointTransform2DGestureBase.cs +++ /dev/null @@ -1,162 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using UnityEngine; - -namespace TouchScript.Gestures.Simple -{ - /// - /// Base class for transform gestures involving two points/clusters. - /// - public abstract class TwoPointTransform2DGestureBase : Transform2DGestureBase - { - #region Public properties - - /// - /// Minimum distance between 2 points in cm for gesture to begin. - /// - public virtual float MinPointsDistance - { - get { return minPointsDistance; } - set - { - minPointsDistance = value; - minPointsDistanceInPixels = value*TouchManager.Instance.DotsPerCentimeter; - } - } - - /// - public override Vector2 ScreenPosition - { - get - { - if (TouchPoint.IsInvalidPosition(screenPosition)) return base.ScreenPosition; - return screenPosition; - } - } - - /// - public override Vector2 PreviousScreenPosition - { - get - { - if (TouchPoint.IsInvalidPosition(previousScreenPosition)) return base.PreviousScreenPosition; - return previousScreenPosition; - } - } - - #endregion - - #region Private variables - - [SerializeField] - private float minPointsDistance = .5f; - - /// - /// in pixels for internal use. - /// - protected float minPointsDistanceInPixels; - - /// - /// Transform's center point screen position. - /// - protected Vector2 screenPosition; - - /// - /// Transform's center point previous screen position. - /// - protected Vector2 previousScreenPosition; - - #endregion - - /// - protected override void Awake() - { - base.Awake(); - - minPointsDistanceInPixels = minPointsDistance*TouchManager.Instance.DotsPerCentimeter; - } - - /// - /// Checks if gesture has enough touch points to be recognized. - /// - /// True if there are two or more active touch points, False otherwise. - protected virtual bool gotEnoughTouchPoints() - { - return activeTouches.Count >= 2; - } - - /// - /// Checks if there are touch points in the list which matter for the gesture. - /// - /// List of touch points - /// True if there are relevant touch points, False otherwise. - protected virtual bool relevantTouchPoints(IList touches) - { - var result = false; - // We care only about the first and the second touch points - foreach (var touchPoint in touches) - { - if (touchPoint == activeTouches[0] || touchPoint == activeTouches[1]) - { - result = true; - break; - } - } - - return result; - } - - /// - /// Returns screen position of a point with index 0 or 1 - /// - /// The index. - protected virtual Vector2 getPointScreenPosition(int index) - { - if (index < 0) index = 0; - else if (index > 1) index = 1; - return activeTouches[index].Position; - } - - /// - /// Returns previous screen position of a point with index 0 or 1 - /// - /// The index. - protected virtual Vector2 getPointPreviousScreenPosition(int index) - { - if (index < 0) index = 0; - else if (index > 1) index = 1; - return activeTouches[index].PreviousPosition; - } - - /// - /// Restarts the gesture when it continues after being left only with one finger. - /// - protected virtual void restart() - { - screenPosition = TouchPoint.InvalidPosition; - previousScreenPosition = TouchPoint.InvalidPosition; - } - - /// - protected override void touchesEnded(IList touches) - { - base.touchesEnded(touches); - - if (activeTouches.Count == 1 && (State == GestureState.Began || State == GestureState.Changed)) - { - restart(); - } - } - - /// - protected override void reset() - { - base.reset(); - - restart(); - } - } -} \ No newline at end of file diff --git a/TouchScript/Gestures/TapGesture.cs b/TouchScript/Gestures/TapGesture.cs deleted file mode 100644 index 1466a2191..000000000 --- a/TouchScript/Gestures/TapGesture.cs +++ /dev/null @@ -1,215 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System.Collections.Generic; -using TouchScript.Clusters; -using TouchScript.Hit; -using UnityEngine; - -namespace TouchScript.Gestures -{ - /// - /// Recognizes a tap. - /// - [AddComponentMenu("TouchScript/Gestures/Tap Gesture")] - public class TapGesture : Gesture - { - #region Private variables - - [SerializeField] - private float timeLimit = float.PositiveInfinity; - - [SerializeField] - private float distanceLimit = float.PositiveInfinity; - - [SerializeField] - private float combineTouchPointsInterval = .3f; - - /// - /// Cached screen position. - /// Used to keep tap's position which can't be calculated from touch points when the gesture is recognized since all touch points are gone. - /// - protected Vector2 cachedScreenPosition; - - /// - /// Cached previous screen position. - /// Used to keep tap's position which can't be calculated from touch points when the gesture is recognized since all touch points are gone. - /// - protected Vector2 cachedPreviousScreenPosition; - - /// - /// Cached target hit result. - /// Used to keep tap's position which can't be calculated from touch points when the gesture is recognized since all touch points are gone. - /// - protected TouchHit cachedTargetHitResult; - - private Vector2 totalMovement = Vector2.zero; - private float startTime; - private List removedPoints = new List(); - private List removedPointsTimes = new List(); - - #endregion - - #region Public properties - - /// - /// Maximum time to hold touches until gesture fails. - /// - public float TimeLimit - { - get { return timeLimit; } - set { timeLimit = value; } - } - - /// - /// Maximum distance for touch cluster to move until gesture fails. - /// - public float DistanceLimit - { - get { return distanceLimit; } - set { distanceLimit = value; } - } - - /// - /// Time interval before gesture is recognized to combine all lifted touch points into a cluster and calculate their screen positions. - /// - public float CombineTouchPointsInterval - { - get { return combineTouchPointsInterval; } - set { combineTouchPointsInterval = value; } - } - - /// - public override Vector2 ScreenPosition - { - get - { - if (TouchPoint.IsInvalidPosition(cachedScreenPosition)) return base.ScreenPosition; - return cachedScreenPosition; - } - } - - /// - public override Vector2 PreviousScreenPosition - { - get - { - if (TouchPoint.IsInvalidPosition(cachedScreenPosition)) return base.PreviousScreenPosition; - return cachedPreviousScreenPosition; - } - } - - #endregion - - /// - public override bool GetTargetHitResult() - { - TouchHit hit; - return GetTargetHitResult(out hit); - } - - /// - public override bool GetTargetHitResult(out TouchHit hit) - { - if (State == GestureState.Ended) - { - hit = cachedTargetHitResult; - return true; - } - - return base.GetTargetHitResult(out hit); - } - - #region Gesture callbacks - - /// - protected override void touchesBegan(IList touches) - { - base.touchesBegan(touches); - - if (activeTouches.Count == touches.Count) - { - startTime = Time.time; - } - } - - /// - protected override void touchesMoved(IList touches) - { - base.touchesMoved(touches); - - totalMovement += ScreenPosition - PreviousScreenPosition; - } - - /// - protected override void touchesEnded(IList touches) - { - base.touchesEnded(touches); - - foreach (var touch in touches) - { - removedPoints.Add(touch); - removedPointsTimes.Add(Time.time); - } - - if (activeTouches.Count == 0) - { - if (totalMovement.magnitude/TouchManager.Instance.DotsPerCentimeter >= DistanceLimit || Time.time - startTime > TimeLimit) - { - setState(GestureState.Failed); - return; - } - - // Checking which points were removed in clusterExistenceTime seconds to set their centroid as cached screen position - var cluster = new List(); - var minTime = Time.time - combineTouchPointsInterval; - for (var i = removedPoints.Count - 1; i >= 0; i--) - { - var point = removedPoints[i]; - if (removedPointsTimes[i] >= minTime) - { - // Points must be over target when released - if (base.GetTargetHitResult(point.Position)) cluster.Add(point); - } else - { - break; - } - } - - if (cluster.Count > 0) - { - cachedScreenPosition = Cluster.Get2DCenterPosition(cluster); - cachedPreviousScreenPosition = Cluster.GetPrevious2DCenterPosition(cluster); - GetTargetHitResult(cachedScreenPosition, out cachedTargetHitResult); - setState(GestureState.Recognized); - } else - { - setState(GestureState.Failed); - } - } - } - - /// - protected override void touchesCancelled(IList touches) - { - base.touchesCancelled(touches); - - setState(GestureState.Failed); - } - - /// - protected override void reset() - { - base.reset(); - - totalMovement = Vector2.zero; - cachedScreenPosition = TouchPoint.InvalidPosition; - cachedPreviousScreenPosition = TouchPoint.InvalidPosition; - removedPoints.Clear(); - removedPointsTimes.Clear(); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Hit/HitTest.cs b/TouchScript/Hit/HitTest.cs deleted file mode 100644 index b1d28695e..000000000 --- a/TouchScript/Hit/HitTest.cs +++ /dev/null @@ -1,48 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using UnityEngine; - -namespace TouchScript.Hit -{ - /// - /// Parent class for all hit test handlers. - /// - public abstract class HitTest : MonoBehaviour - { - - /// - /// Result of a check to find if a hit object should recieve this touch or not. - /// - public enum ObjectHitResult - { - /// - /// Something happened. - /// - Error = 0, - /// - /// This is a hit, object should recieve touch. - /// - Hit = 1, - /// - /// Object should not recieve touch. - /// - Miss = 2, - /// - /// Object should not recieve touch and this touch should be discarded and not tested with any other object. - /// - Discard = 3 - } - - /// - /// Determines whether a touch point hit the object. - /// - /// Data from a raycast. - /// if touch point hits the object, if it doesn't, if it doesn't and this touch must be ignored, Error otherwise. - public virtual ObjectHitResult IsHit(TouchHit hit) - { - return ObjectHitResult.Hit; - } - } -} \ No newline at end of file diff --git a/TouchScript/Hit/TouchHit.cs b/TouchScript/Hit/TouchHit.cs deleted file mode 100644 index d4fa4ecb2..000000000 --- a/TouchScript/Hit/TouchHit.cs +++ /dev/null @@ -1,64 +0,0 @@ -using UnityEngine; - -namespace TouchScript.Hit -{ - public struct TouchHit - { - - public enum HitType - { - Hit3D, - Hit2D - } - - public static TouchHit FromRaycastHit(RaycastHit value) - { - var result = new TouchHit() - { - Type = HitType.Hit3D, - BarycentricCoordinate = value.barycentricCoordinate, - Collider = value.collider, - Distance = value.distance, - LightmapCoord = value.lightmapCoord, - Normal = value.normal, - Point = value.point, - Rigidbody = value.rigidbody, - TextureCoord = value.textureCoord, - TextureCoord2 = value.textureCoord2, - Transform = value.collider.transform, - TriangleIndex = value.triangleIndex - }; - return result; - } - - public static TouchHit FromRaycastHit2D(RaycastHit2D value) - { - var result = new TouchHit() - { - Type = HitType.Hit2D, - Collider2d = value.collider, - Distance = value.fraction, - Normal = -Vector3.forward, - Point = value.point, - Rigidbody2D = value.rigidbody, - Transform = value.collider.transform - }; - return result; - } - - public HitType Type; - public Vector3 BarycentricCoordinate; - public Collider Collider; - public Collider2D Collider2d; - public float Distance; - public Vector2 LightmapCoord; - public Vector3 Normal; - public Vector3 Point; - public Rigidbody Rigidbody; - public Rigidbody2D Rigidbody2D; - public Vector2 TextureCoord; - public Vector2 TextureCoord2; - public Transform Transform; - public int TriangleIndex; - } -} \ No newline at end of file diff --git a/TouchScript/Hit/Untouchable.cs b/TouchScript/Hit/Untouchable.cs deleted file mode 100644 index 552ec3994..000000000 --- a/TouchScript/Hit/Untouchable.cs +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using UnityEngine; - -namespace TouchScript.Hit -{ - /// - /// Makes an object it is attached to untouchable, i.e. it completely ignores all touch points landing on it. - /// - [AddComponentMenu("TouchScript/Behaviors/Untouchable")] - public class Untouchable : HitTest - { - /// - /// If true touch point not only prevented but discarded making it impossible for other gestures to get it. - /// - public bool DiscardTouch = false; - - /// - public override ObjectHitResult IsHit(TouchHit hit) - { - return DiscardTouch ? ObjectHitResult.Discard : ObjectHitResult.Miss; - } - } -} \ No newline at end of file diff --git a/TouchScript/IGestureDelegate.cs b/TouchScript/IGestureDelegate.cs deleted file mode 100644 index 631aee955..000000000 --- a/TouchScript/IGestureDelegate.cs +++ /dev/null @@ -1,37 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Gestures; - -namespace TouchScript -{ - /// - /// Interface to implement to be able to customize gestures' behavior. - /// - public interface IGestureDelegate - { - /// - /// Should the gesture receive touch or not - /// - /// The gesture. - /// The touch. - /// true if it should; false otherwise. - bool ShouldReceiveTouch(Gesture gesture, TouchPoint touch); - - /// - /// Shoulds the gesture begin or not. - /// - /// The gesture. - /// true if it should; false otherwise. - bool ShouldBegin(Gesture gesture); - - /// - /// Shoulds two gestures be recognized simultaneously or not. - /// - /// First gesture - /// Second gesture - /// true if they should; false otherwise. - bool ShouldRecognizeSimultaneously(Gesture first, Gesture second); - } -} \ No newline at end of file diff --git a/TouchScript/InputSources/ICoordinatesRemapper.cs b/TouchScript/InputSources/ICoordinatesRemapper.cs deleted file mode 100644 index e22d3c8cb..000000000 --- a/TouchScript/InputSources/ICoordinatesRemapper.cs +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using UnityEngine; - -namespace TouchScript.InputSources -{ - /// - /// Interface for objects which can remap screen coordinates. - /// - public interface ICoordinatesRemapper - { - /// - /// Remaps the specified input. - /// - /// Original coordinates. - /// Changed coordinates. - Vector2 Remap(Vector2 input); - } -} \ No newline at end of file diff --git a/TouchScript/InputSources/IInputSource.cs b/TouchScript/InputSources/IInputSource.cs deleted file mode 100644 index 67593a173..000000000 --- a/TouchScript/InputSources/IInputSource.cs +++ /dev/null @@ -1,17 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -namespace TouchScript.InputSources -{ - /// - /// Abstract touch input source. - /// - public interface IInputSource - { - /// - /// An object used to change coordinates of touch points coming from this input source. - /// - ICoordinatesRemapper CoordinatesRemapper { get; set; } - } -} diff --git a/TouchScript/InputSources/InputSource.cs b/TouchScript/InputSources/InputSource.cs deleted file mode 100644 index 1c8fe1c3b..000000000 --- a/TouchScript/InputSources/InputSource.cs +++ /dev/null @@ -1,110 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using UnityEngine; - -namespace TouchScript.InputSources -{ - /// - /// Base class for all touch input sources - /// - public abstract class InputSource : MonoBehaviour, IInputSource - { - #region Private variables - - /// - /// Reference to global touch manager. - /// - protected TouchManager manager; - - #endregion - - #region Public properties - - /// - /// Optional remapper to use to change screen coordinates which go into the TouchManager. - /// - public ICoordinatesRemapper CoordinatesRemapper { get; set; } - - #endregion - - #region Unity - - /// - /// Unity Start callback. - /// - protected virtual void Start() - { - manager = TouchManager.Instance; - if (manager == null) throw new InvalidOperationException("TouchManager instance is required!"); - } - - /// - /// Unity OnDestroy callback. - /// - protected virtual void OnDestroy() - { - manager = null; - } - - /// - /// Unity Update callback. - /// - protected virtual void Update() - {} - - #endregion - - #region Callbacks - - /// - /// Start touch in given screen position. - /// - /// Screen position. - /// Internal touch id. - protected int beginTouch(Vector2 position) - { - if (CoordinatesRemapper != null) - { - position = CoordinatesRemapper.Remap(position); - } - return manager.BeginTouch(position); - } - - /// - /// End touch with id. - /// - /// Touch point id. - protected void endTouch(int id) - { - manager.EndTouch(id); - } - - /// - /// Move touch with id. - /// - /// Touch id. - /// New screen position. - protected void moveTouch(int id, Vector2 position) - { - if (CoordinatesRemapper != null) - { - position = CoordinatesRemapper.Remap(position); - } - manager.MoveTouch(id, position); - } - - /// - /// Cancel touch with id. - /// - /// Touch id. - protected void cancelTouch(int id) - { - manager.CancelTouch(id); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/InputSources/MobileInput.cs b/TouchScript/InputSources/MobileInput.cs deleted file mode 100644 index 4f2cd8dd5..000000000 --- a/TouchScript/InputSources/MobileInput.cs +++ /dev/null @@ -1,121 +0,0 @@ -/* - * @author Michael Holub - */ - -using UnityEngine; -using System.Collections.Generic; - -namespace TouchScript.InputSources -{ - /// - /// Mobile Input Source - /// - [AddComponentMenu("TouchScript/Input Sources/Mobile Input")] - public class MobileInput : InputSource - { - #region Private variables - - private Dictionary touchStates = new Dictionary(); - private HashSet touchIds = new HashSet(); - - #endregion - - #region Unity - - /// - protected override void Update() - { - base.Update(); - - for (var i = 0; i < Input.touchCount; ++i) - { - var t = Input.GetTouch(i); - - switch (t.phase) - { - case TouchPhase.Began: - if (touchIds.Contains(t.fingerId)) - { - // ending previous touch (maybe we missed a frame) - endTouch(t.fingerId); - int id = beginTouch(t.position); - touchStates[t.fingerId] = new TouchState(id, t.phase, t.position); - } else - { - touchIds.Add(t.fingerId); - int id = beginTouch(t.position); - touchStates.Add(t.fingerId, new TouchState(id, t.phase, t.position)); - } - break; - case TouchPhase.Moved: - if (touchIds.Contains(t.fingerId)) - { - var ts = touchStates[t.fingerId]; - touchStates[t.fingerId] = new TouchState(ts.Id, t.phase, t.position); - moveTouch(ts.Id, t.position); - } else - { - // maybe we missed began phase - touchIds.Add(t.fingerId); - int id = beginTouch(t.position); - touchStates.Add(t.fingerId, new TouchState(id, t.phase, t.position)); - } - break; - case TouchPhase.Ended: - if (touchIds.Contains(t.fingerId)) - { - var ts = touchStates[t.fingerId]; - touchIds.Remove(t.fingerId); - touchStates.Remove(t.fingerId); - endTouch(ts.Id); - } else - { - // maybe we totally missed one finger begin-end transition - int id = beginTouch(t.position); - endTouch(id); - } - break; - case TouchPhase.Canceled: - if (touchIds.Contains(t.fingerId)) - { - var ts = touchStates[t.fingerId]; - touchIds.Remove(t.fingerId); - touchStates.Remove(t.fingerId); - endTouch(ts.Id); - } else - { - // maybe we totally missed one finger begin-end transition - int id = beginTouch(t.position); - cancelTouch(id); - } - break; - case TouchPhase.Stationary: - if (touchIds.Contains(t.fingerId)) - {} else - { - touchIds.Add(t.fingerId); - int id = beginTouch(t.position); - touchStates.Add(t.fingerId, new TouchState(id, t.phase, t.position)); - } - break; - } - } - } - - #endregion - } - - internal struct TouchState - { - public int Id; - public TouchPhase Phase; - public Vector2 Position; - - public TouchState(int anId, TouchPhase aPhase, Vector2 aPosition) - { - Id = anId; - Phase = aPhase; - Position = aPosition; - } - } -} \ No newline at end of file diff --git a/TouchScript/InputSources/MouseInput.cs b/TouchScript/InputSources/MouseInput.cs deleted file mode 100644 index 8d72c7f92..000000000 --- a/TouchScript/InputSources/MouseInput.cs +++ /dev/null @@ -1,95 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using UnityEngine; - -namespace TouchScript.InputSources -{ - /// - /// Input source to grab mouse clicks as touch points. - /// - [AddComponentMenu("TouchScript/Input Sources/Mouse Input")] - public class MouseInput : InputSource - { - #region Private variables - - private int mousePointId = -1; - private int fakeMousePointId = -1; - private Vector3 mousePointPos = Vector3.zero; - - #endregion - - #region Unity - - /// - protected override void Start() - { - switch (Application.platform) - { - case RuntimePlatform.Android: - case RuntimePlatform.IPhonePlayer: - Destroy(this); - return; - } - base.Start(); - } - - /// - protected override void Update() - { - base.Update(); - - var upHandled = false; - if (Input.GetMouseButtonUp(0)) - { - if (mousePointId != -1) - { - endTouch(mousePointId); - mousePointId = -1; - upHandled = true; - } - } - - if (fakeMousePointId > -1 && !(Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt))) - { - endTouch(fakeMousePointId); - fakeMousePointId = -1; - } - - if (Input.GetMouseButtonDown(0)) - { - var pos = Input.mousePosition; - if ((Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt)) && fakeMousePointId == -1) - { - if (fakeMousePointId == -1) fakeMousePointId = beginTouch(new Vector2(pos.x, pos.y)); - } else - { - if (mousePointId == -1) mousePointId = beginTouch(new Vector2(pos.x, pos.y)); - } - } else if (Input.GetMouseButton(0)) - { - var pos = Input.mousePosition; - if (mousePointPos != pos) - { - mousePointPos = pos; - if (fakeMousePointId > -1 && mousePointId == -1) - { - moveTouch(fakeMousePointId, new Vector2(pos.x, pos.y)); - } else - { - moveTouch(mousePointId, new Vector2(pos.x, pos.y)); - } - } - } - - if (Input.GetMouseButtonUp(0) && !upHandled) - { - endTouch(mousePointId); - mousePointId = -1; - } - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/Layers/CameraLayer.cs b/TouchScript/Layers/CameraLayer.cs deleted file mode 100644 index 5edea6e02..000000000 --- a/TouchScript/Layers/CameraLayer.cs +++ /dev/null @@ -1,90 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using System.Collections.Generic; -using TouchScript.Hit; -using UnityEngine; - -namespace TouchScript.Layers -{ - /// - /// Touch layer for a camera. Used to test if specific camera sees an object which should be hit by a touch point. - /// - [AddComponentMenu("TouchScript/Layers/Camera Layer")] - public class CameraLayer : CameraLayerBase - { - - private List sortedHits; - - protected override LayerHitResult castRay(Ray ray, out TouchHit hit) - { - hit = new TouchHit(); - var hits = Physics.RaycastAll(ray, float.PositiveInfinity, LayerMask); - - if (hits.Length == 0) return LayerHitResult.Miss; - if (hits.Length > 1) hits = sortHits(hits); - - var success = false; - foreach (var raycastHit in hits) - { - hit = TouchHit.FromRaycastHit(raycastHit); - var hitTests = raycastHit.transform.GetComponents(); - if (hitTests.Length == 0) - { - success = true; - break; - } - - var hitResult = HitTest.ObjectHitResult.Error; - foreach (var test in hitTests) - { - hitResult = test.IsHit(hit); - if (hitResult == HitTest.ObjectHitResult.Hit || hitResult == HitTest.ObjectHitResult.Discard) - { - break; - } - } - - if (hitResult == HitTest.ObjectHitResult.Hit) - { - success = true; - break; - } - if (hitResult == HitTest.ObjectHitResult.Discard) - { - break; - } - } - - if (success) - { - return LayerHitResult.Hit; - } - - return LayerHitResult.Miss; - } - - private void OnEnable() - { - sortedHits = new List(); - } - - private RaycastHit[] sortHits(RaycastHit[] hits) - { - var cameraPos = camera.transform.position; - sortedHits.Clear(); - sortedHits.AddRange(hits); - sortedHits.Sort((a, b) => - { - if (a.transform == b.transform) return 0; - var distA = (a.point - cameraPos).sqrMagnitude; - var distB = (b.point - cameraPos).sqrMagnitude; - return distA < distB ? -1 : 1; - }); - return sortedHits.ToArray(); - } - - } -} \ No newline at end of file diff --git a/TouchScript/Layers/CameraLayer2D.cs b/TouchScript/Layers/CameraLayer2D.cs deleted file mode 100644 index 9c2da850b..000000000 --- a/TouchScript/Layers/CameraLayer2D.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System.Collections.Generic; -using TouchScript.Hit; -using UnityEngine; - -namespace TouchScript.Layers -{ - [AddComponentMenu("TouchScript/Layers/Camera Layer 2D")] - public class CameraLayer2D : CameraLayerBase - { - - private List sortedHits; - - protected override LayerHitResult castRay(Ray ray, out TouchHit hit) - { - hit = new TouchHit(); - var hits = Physics2D.GetRayIntersectionAll(ray, float.PositiveInfinity, LayerMask); - - if (hits.Length == 0) return LayerHitResult.Miss; - if (hits.Length > 1) hits = sortHits(hits); - - var success = false; - foreach (var raycastHit in hits) - { - hit = TouchHit.FromRaycastHit2D(raycastHit); - var hitTests = raycastHit.transform.GetComponents(); - if (hitTests.Length == 0) - { - success = true; - break; - } - - var hitResult = HitTest.ObjectHitResult.Error; - foreach (var test in hitTests) - { - hitResult = test.IsHit(hit); - if (hitResult == HitTest.ObjectHitResult.Hit || hitResult == HitTest.ObjectHitResult.Discard) - { - break; - } - } - - if (hitResult == HitTest.ObjectHitResult.Hit) - { - success = true; - break; - } - if (hitResult == HitTest.ObjectHitResult.Discard) - { - break; - } - } - - if (success) - { - return LayerHitResult.Hit; - } - - return LayerHitResult.Miss; - } - - private void OnEnable() - { - sortedHits = new List(); - } - - private RaycastHit2D[] sortHits(RaycastHit2D[] hits) - { - sortedHits.Clear(); - sortedHits.AddRange(hits); - sortedHits.Sort((a, b) => - { - if (a.transform == b.transform) return 0; - - var sprite1 = a.transform.GetComponent(); - var sprite2 = b.transform.GetComponent(); - if (sprite1 == null || sprite2 == null) return 0; - - if (sprite1.sortingLayerID < sprite2.sortingLayerID) return 1; - if (sprite1.sortingLayerID > sprite2.sortingLayerID) return -1; - if (sprite1.sortingOrder < sprite2.sortingOrder) return 1; - if (sprite1.sortingOrder > sprite2.sortingOrder) return -1; - return 0; - }); - return sortedHits.ToArray(); - } - - } -} diff --git a/TouchScript/Layers/CameraLayerBase.cs b/TouchScript/Layers/CameraLayerBase.cs deleted file mode 100644 index 68ebdc760..000000000 --- a/TouchScript/Layers/CameraLayerBase.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using TouchScript.Hit; -using UnityEngine; - -namespace TouchScript.Layers -{ - public abstract class CameraLayerBase : TouchLayer - { - - #region Private fields - - [SerializeField] - private LayerMask layerMask = -1; - - #endregion - - #region Public properties - - /// - /// Layer mask to select layers which should be touchable from this CameraLayer. - /// - public LayerMask LayerMask - { - get { return layerMask; } - set { layerMask = value; } - } - - /// - public override Camera Camera - { - get { return camera; } - } - - #endregion - - /// - public override LayerHitResult Hit(Vector2 position, out TouchHit hit) - { - hit = new TouchHit(); - - if (camera == null) return LayerHitResult.Error; - if (camera.enabled == false || camera.gameObject.activeInHierarchy == false) return LayerHitResult.Miss; - if (!camera.pixelRect.Contains(position)) return LayerHitResult.Miss; - - var ray = camera.ScreenPointToRay(new Vector3(position.x, position.y, camera.nearClipPlane)); - return castRay(ray, out hit); - } - - /// - protected override LayerHitResult beginTouch(TouchPoint touch) - { - TouchHit hit; - var result = Hit(touch.Position, out hit); - if (result == LayerHitResult.Hit) - { - touch.Hit = hit; - touch.Target = hit.Transform; - } - return result; - } - - /// - protected override void setName() - { - if (String.IsNullOrEmpty(Name) && Camera != null) Name = Camera.name; - } - - protected abstract LayerHitResult castRay(Ray ray, out TouchHit hit); - - } -} diff --git a/TouchScript/Layers/TouchLayer.cs b/TouchScript/Layers/TouchLayer.cs deleted file mode 100644 index d4fa78a38..000000000 --- a/TouchScript/Layers/TouchLayer.cs +++ /dev/null @@ -1,168 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using TouchScript.Hit; -using UnityEngine; - -namespace TouchScript.Layers -{ - /// - /// Base class for all touch layers. Used to check if some object is hit by a touch point. - /// - [ExecuteInEditMode] - public abstract class TouchLayer : MonoBehaviour - { - /// - /// Result of a touch point's hit test with a layer. - /// - public enum LayerHitResult - { - /// - /// Something wrong happened. - /// - Error = 0, - - /// - /// Touch point hit an object. - /// - Hit = 1, - - /// - /// Touch point didn't hit an object. - /// - Miss = 2 - } - - public event EventHandler TouchBegan - { - add { touchBeganInvoker += value; } - remove { touchBeganInvoker -= value; } - } - - // Needed to overcome iOS AOT limitations - private EventHandler touchBeganInvoker; - - /// - /// Touch layer's name. - /// - public String Name; - - /// - /// Camera a touch layer is using. - /// Null if layer doesn't support cameras. - /// - public virtual Camera Camera - { - get { return null; } - } - - /// - /// Checks if a point hits something in this layer. - /// - /// Position in screen coordinates. - /// Raycast result. - /// Hit, if an object is hit, Miss or Error otherwise. - public virtual LayerHitResult Hit(Vector2 position, out TouchHit hit) - { - hit = new TouchHit(); - return LayerHitResult.Miss; - } - - internal bool BeginTouch(TouchPoint touch) - { - var result = beginTouch(touch); - if (result == LayerHitResult.Hit) - { - touch.Layer = this; - if (touchBeganInvoker != null) touchBeganInvoker(this, new TouchLayerEventArgs(touch)); - return true; - } - return false; - } - - internal void MoveTouch(TouchPoint touch) - { - moveTouch(touch); - } - - internal void EndTouch(TouchPoint touch) - { - endTouch(touch); - } - - internal void CancelTouch(TouchPoint touch) - { - cancelTouch(touch); - } - - /// - /// Unity Awake callback. - /// - protected virtual void Awake() - { - setName(); - if (Application.isPlaying) TouchManager.AddLayer(this); - } - - /// - /// Unity OnDestroy callback. - /// - protected virtual void OnDestroy() - { - if (Application.isPlaying) TouchManager.RemoveLayer(this); - } - - /// - /// Updates touch layers's name. - /// - protected virtual void setName() - { - Name = "undefined"; - } - - /// - /// Called when a layer is touched. - /// - /// Touch point. - /// If this touch hit anything in the layer. - protected virtual LayerHitResult beginTouch(TouchPoint touch) - { - return LayerHitResult.Error; - } - - /// - /// Called when a touch is moved. - /// - /// Touch point. - protected virtual void moveTouch(TouchPoint touch) - {} - - /// - /// Called when a touch is moved. - /// - /// Touch point. - protected virtual void endTouch(TouchPoint touch) - {} - - /// - /// Called when a touch is cancelled. - /// - /// Touch point. - protected virtual void cancelTouch(TouchPoint touch) - {} - } - - public class TouchLayerEventArgs : EventArgs - { - - public TouchPoint TouchPoint; - - public TouchLayerEventArgs(TouchPoint touchPoint) : base() - { - TouchPoint = touchPoint; - } - } - -} \ No newline at end of file diff --git a/TouchScript/Properties/AssemblyInfo.cs b/TouchScript/Properties/AssemblyInfo.cs deleted file mode 100644 index c0a667435..000000000 --- a/TouchScript/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TouchScript")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TouchScript")] -[assembly: AssemblyCopyright("Copyright © 2012 Interactive Lab")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("54e2c244-08c8-483e-87f2-f35a609e32f3")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TouchScript/TouchManager.cs b/TouchScript/TouchManager.cs deleted file mode 100644 index 521b12dae..000000000 --- a/TouchScript/TouchManager.cs +++ /dev/null @@ -1,594 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using System; -using System.Collections; -using System.Collections.Generic; -using TouchScript.Events; -using TouchScript.Hit; -using TouchScript.InputSources; -using TouchScript.Layers; -using UnityEngine; - -namespace TouchScript -{ - /// - /// Singleton which handles all touch points management. - /// - [AddComponentMenu("TouchScript/Touch Manager")] - public class TouchManager : MonoBehaviour - { - /// - /// Ratio of cm to inch - /// - public const float CM_TO_INCH = 0.393700787f; - - /// - /// Ratio of inch to cm - /// - public const float INCH_TO_CM = 1/CM_TO_INCH; - - #region Events - - /// - /// Occurs when a new frame is started before all other events. - /// - public event EventHandler FrameStarted - { - add { frameStartedInvoker += value; } - remove { frameStartedInvoker -= value; } - } - - /// - /// Occurs when a frame is finished. After all other events. - /// - public event EventHandler FrameFinished - { - add { frameFinishedInvoker += value; } - remove { frameFinishedInvoker -= value; } - } - - /// - /// Occurs when new touch points are added. - /// - public event EventHandler TouchesBegan - { - add { touchesBeganInvoker += value; } - remove { touchesBeganInvoker -= value; } - } - - /// - /// Occurs when touch points are updated. - /// - public event EventHandler TouchesMoved - { - add { touchesMovedInvoker += value; } - remove { touchesMovedInvoker -= value; } - } - - /// - /// Occurs when touch points are removed. - /// - public event EventHandler TouchesEnded - { - add { touchesEndedInvoker += value; } - remove { touchesEndedInvoker -= value; } - } - - /// - /// Occurs when touch points are cancelled. - /// - public event EventHandler TouchesCancelled - { - add { touchesCancelledInvoker += value; } - remove { touchesCancelledInvoker -= value; } - } - - // iOS Events AOT hack - private EventHandler touchesBeganInvoker, touchesMovedInvoker, - touchesEndedInvoker, touchesCancelledInvoker; - - private EventHandler frameStartedInvoker, frameFinishedInvoker; - - #endregion - - #region Public properties - - /// - /// TouchManager singleton instance. - /// - public static TouchManager Instance - { - get - { - if (shuttingDown) return null; - if (instance == null) - { - instance = FindObjectOfType(typeof(TouchManager)) as TouchManager; - if (instance == null && Application.isPlaying) - { - var go = GameObject.Find("TouchScript"); - if (go == null) go = new GameObject("TouchScript"); - instance = go.AddComponent(); - } - } - return instance; - } - } - - /// - /// Current DPI. - /// - public float DPI - { - get { return dpi; } - set - { - if (Application.isEditor) EditorDPI = value; - else LiveDPI = value; - } - } - - /// - /// DPI while testing in editor. - /// - public float EditorDPI - { - get { return editorDpi; } - set - { - editorDpi = value; - updateDPI(); - } - } - - /// - /// DPI of target touch device. - /// - public float LiveDPI - { - get { return liveDpi; } - set - { - liveDpi = value; - updateDPI(); - } - } - - /// - /// List of touch layers. - /// - public List Layers - { - get { return new List(layers); } - } - - /// - /// Pixels in a cm with current DPI. - /// - public float DotsPerCentimeter - { - get { return CM_TO_INCH*dpi; } - } - - /// - /// Number of active touches. - /// - public int TouchPointsCount - { - get { return touchPoints.Count; } - } - - /// - /// List of active touches. - /// - public List TouchPoints - { - get { return new List(touchPoints); } - } - - #endregion - - #region Private variables - - private static TouchManager instance; - // Flag to indicate that we are going out of Play Mode in the editor. Otherwise there might be a loop when while deinitializing other objects access TouchScript.Instance which recreates an instance of TouchManager and everything breaks. - private static bool shuttingDown = false; - - private float dpi = 72; - - [SerializeField] - private float liveDpi = 72; - - [SerializeField] - private float editorDpi = 72; - - [SerializeField] - private List layers = new List(); - - private List touchPoints = new List(); - private Dictionary idToTouch = new Dictionary(); - - // Upcoming changes - private List touchesBegan = new List(); - private Dictionary touchesMoved = new Dictionary(); - private List touchesEnded = new List(); - private List touchesCancelled = new List(); - - // Temporary variables for update methods. - private List reallyMoved = new List(); - - private int nextTouchPointId = 0; - - #endregion - - #region Unity - - private void Awake() - { - shuttingDown = false; - if (instance == null) instance = this; - updateDPI(); - - StartCoroutine(lateAwake()); - } - - private IEnumerator lateAwake() - { - yield return new WaitForEndOfFrame(); - - layers = layers.FindAll(l => l != null); // filter empty ones - var unknownLayers = FindObjectsOfType(typeof(TouchLayer)); - foreach (TouchLayer unknownLayer in unknownLayers) AddLayer(unknownLayer); - - createCameraLayer(); - createTouchInput(); - } - - private void Update() - { - updateTouchPoints(); - } - - private void OnDestroy() - { - if (!Application.isLoadingLevel) shuttingDown = true; - } - - #endregion - - #region Public static methods - - /// - /// Adds a layer. - /// - /// The layer. - /// True if layer was added. - public static bool AddLayer(TouchLayer layer) - { - if (shuttingDown) return false; - if (layer == null) return false; - if (Instance == null) return false; - if (Instance.layers.Contains(layer)) return false; - Instance.layers.Add(layer); - return true; - } - - /// - /// Removes a layer. - /// - /// The layer. - /// True if layer was removed. - public static bool RemoveLayer(TouchLayer layer) - { - if (shuttingDown) return false; - if (layer == null) return false; - if (instance == null) return false; - var result = instance.layers.Remove(layer); - return result; - } - - #endregion - - #region Public methods - - /// - /// Swaps layers in sorted array. - /// - /// Layer index 1. - /// Layer index 2 - public void ChangeLayerIndex(int at, int to) - { - if (at < 0 || at >= layers.Count) return; - if (to < 0 || to >= layers.Count) return; - var data = layers[at]; - layers.RemoveAt(at); - layers.Insert(to, data); - } - - /// - /// Checks if the touch has hit something. - /// - /// Touch screen position. - /// Object's transform which has been hit or null otherwise. - public Transform GetHitTarget(Vector2 position) - { - TouchHit hit; - TouchLayer layer; - if (GetHitTarget(position, out hit, out layer)) return hit.Transform; - return null; - } - - /// - /// Checks if the touch has hit something. - /// - /// Touch point screen position. - /// Output RaycastHit. - /// Output touch layer which was hit. - /// True if something was hit. - public bool GetHitTarget(Vector2 position, out TouchHit hit, out TouchLayer layer) - { - hit = new TouchHit(); - layer = null; - - foreach (var touchLayer in layers) - { - if (touchLayer == null) continue; - TouchHit _hit; - if (touchLayer.Hit(position, out _hit) == TouchLayer.LayerHitResult.Hit) - { - hit = _hit; - layer = touchLayer; - return true; - } - } - - return false; - } - - /// - /// Registers a touch. - /// - /// Touch position. - /// Internal id of the new touch. - public int BeginTouch(Vector2 position) - { - TouchPoint touch; - lock (touchesBegan) - { - touch = new TouchPoint(nextTouchPointId++, position); - touchesBegan.Add(touch); - } - return touch.Id; - } - - /// - /// Moves a touch. - /// - /// Internal touch id. - /// New position. - public void MoveTouch(int id, Vector2 position) - { - lock (touchesMoved) - { - Vector2 update; - if (touchesMoved.TryGetValue(id, out update)) - { - touchesMoved[id] = position; - } else - { - touchesMoved.Add(id, position); - } - } - } - - /// - /// Ends a touch. - /// - /// Internal touch id. - public void EndTouch(int id) - { - lock (touchesEnded) - { - TouchPoint touch; - if (!idToTouch.TryGetValue(id, out touch)) - { - // This touch was added this frame - foreach (var addedTouch in touchesBegan) - { - if (addedTouch.Id == id) - { - touch = addedTouch; - break; - } - } - // No touch with such id - if (touch == null) return; - } - touchesEnded.Add(touch); - } - } - - /// - /// Cancels a touch. - /// - /// Internal touch id. - public void CancelTouch(int id) - { - lock (touchesCancelled) - { - TouchPoint touch; - if (!idToTouch.TryGetValue(id, out touch)) - { - // This touch was added this frame - foreach (var addedTouch in touchesBegan) - { - if (addedTouch.Id == id) - { - touch = addedTouch; - break; - } - } - // No touch with such id - if (touch == null) return; - } - touchesCancelled.Add(touch); - } - } - - #endregion - - #region Internal methods - - #endregion - - #region Private functions - - private void updateDPI() - { - if (Application.isEditor) dpi = EditorDPI; - else dpi = LiveDPI; - } - - private void createCameraLayer() - { - if (layers.Count == 0) - { - Debug.Log("No camera layers. Adding one for the main camera."); - if (Camera.main != null) - { - Camera.main.gameObject.AddComponent(); - } else - { - Debug.LogError("No main camera found!"); - } - } - } - - private void createTouchInput() - { - var inputs = FindObjectsOfType(typeof(InputSource)); - if (inputs.Length == 0) - { - if (Application.platform == RuntimePlatform.IPhonePlayer || Application.platform == RuntimePlatform.Android) - { - gameObject.AddComponent(); - } else - { - gameObject.AddComponent(); - } - } - } - - private bool updateBegan() - { - if (touchesBegan.Count > 0) - { - foreach (var touch in touchesBegan) - { - touchPoints.Add(touch); - idToTouch.Add(touch.Id, touch); - foreach (var touchLayer in layers) - { - if (touchLayer == null) continue; - if (touchLayer.BeginTouch(touch)) break; - } - } - - if (touchesBeganInvoker != null) touchesBeganInvoker(this, new TouchEventArgs(new List(touchesBegan))); - touchesBegan.Clear(); - - return true; - } - return false; - } - - private bool updateMoved() - { - if (touchesMoved.Count > 0) - { - reallyMoved.Clear(); - - foreach (var touch in touchPoints) - { - if (touchesMoved.ContainsKey(touch.Id)) - { - var position = touchesMoved[touch.Id]; - if (position != touch.Position) - { - touch.Position = position; - reallyMoved.Add(touch); - if (touch.Layer != null) touch.Layer.MoveTouch(touch); - } else - { - touch.ResetPosition(); - } - } else - { - touch.ResetPosition(); - } - } - - if (reallyMoved.Count > 0 && touchesMovedInvoker != null) touchesMovedInvoker(this, new TouchEventArgs(new List(reallyMoved))); - touchesMoved.Clear(); - - return reallyMoved.Count > 0; - } - return false; - } - - private bool updateEnded() - { - if (touchesEnded.Count > 0) - { - foreach (var touch in touchesEnded) - { - idToTouch.Remove(touch.Id); - touchPoints.Remove(touch); - if (touch.Layer != null) touch.Layer.EndTouch(touch); - } - - if (touchesEndedInvoker != null) touchesEndedInvoker(this, new TouchEventArgs(new List(touchesEnded))); - touchesEnded.Clear(); - - return true; - } - return false; - } - - private bool updateCancelled() - { - if (touchesCancelled.Count > 0) - { - foreach (var touch in touchesCancelled) - { - idToTouch.Remove(touch.Id); - touchPoints.Remove(touch); - if (touch.Layer != null) touch.Layer.CancelTouch(touch); - } - - if (touchesCancelledInvoker != null) touchesCancelledInvoker(this, new TouchEventArgs(new List(touchesCancelled))); - touchesCancelled.Clear(); - - return true; - } - return false; - } - - private void updateTouchPoints() - { - if (frameStartedInvoker != null) frameStartedInvoker(this, EventArgs.Empty); - - bool updated; - lock (touchesBegan) updated = updateBegan(); - lock (touchesMoved) updated = updateMoved() || updated; - lock (touchesEnded) updated = updateEnded() || updated; - lock (touchesCancelled) updated = updateCancelled() || updated; - - if (frameFinishedInvoker != null) frameFinishedInvoker(this, EventArgs.Empty); - } - - #endregion - } -} \ No newline at end of file diff --git a/TouchScript/TouchPoint.cs b/TouchScript/TouchPoint.cs deleted file mode 100644 index 20f82959b..000000000 --- a/TouchScript/TouchPoint.cs +++ /dev/null @@ -1,90 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using TouchScript.Hit; -using TouchScript.Layers; -using UnityEngine; - -namespace TouchScript -{ - /// - /// Touch point. - /// - public class TouchPoint - { - /// - /// The value of TouchPoint.Position in an unkown state. - /// - public static readonly Vector2 InvalidPosition = new Vector2(float.NaN, float.NaN); - - /// - /// Determines whether position vector is invalid. - /// - /// The position. - /// - /// true position is invalid; otherwise, false. - /// - public static bool IsInvalidPosition(Vector2 position) - { - return position.Equals(InvalidPosition); - } - - /// - /// Initializes a new instance of the class. - /// - /// Touch point id. - /// Screen position. - public TouchPoint(int id, Vector2 position) - { - Id = id; - Position = position; - PreviousPosition = position; - } - - /// - /// Internal unique touch point id. - /// - public int Id { get; private set; } - - private Vector2 position = Vector2.zero; - - /// - /// Current touch position. - /// - public Vector2 Position - { - get { return position; } - set - { - PreviousPosition = position; - position = value; - } - } - - /// - ///Previous position. - /// - public Vector2 PreviousPosition { get; private set; } - - /// - /// Original hit target. - /// - public Transform Target { get; internal set; } - - /// - /// Original hit information. - /// - public TouchHit Hit { get; internal set; } - - /// - /// Original camera through which the target was seen. - /// - public TouchLayer Layer { get; internal set; } - - internal void ResetPosition() - { - PreviousPosition = Position; - } - } -} \ No newline at end of file diff --git a/TouchScript/TouchScript.csproj b/TouchScript/TouchScript.csproj deleted file mode 100644 index 54973d59b..000000000 --- a/TouchScript/TouchScript.csproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - Debug - AnyCPU - 10.0.20506 - 2.0 - {128FD14A-9D70-4B07-8F9A-E85A511BA28B} - Library - Properties - TouchScript - TouchScript - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\TouchScript.XML - - - - - - - - - - - ..\Lib\UnityEngine.dll - False - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xcopy /y $(ProjectDir)$(OutDir)*.dll "$(SolutionDir)Examples\General Examples\Assets\TouchScript\Plugins\" -xcopy /y $(ProjectDir)$(OutDir)*.dll "$(SolutionDir)Examples\Scaleform Examples\Assets\TouchScript\Plugins\" - - - \ No newline at end of file diff --git a/TouchScript/TouchScript.sln b/TouchScript/TouchScript.sln deleted file mode 100644 index 2f3bbf1c6..000000000 --- a/TouchScript/TouchScript.sln +++ /dev/null @@ -1,32 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TouchScript", "TouchScript.csproj", "{128FD14A-9D70-4B07-8F9A-E85A511BA28B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSCsharp", "..\TUIOsharp\OSCsharp\OSCsharp.csproj", "{0ADB210D-0D25-4576-8868-9C47DC4762BE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TUIOsharp", "..\TUIOsharp\TUIOsharp\TUIOsharp.csproj", "{6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0ADB210D-0D25-4576-8868-9C47DC4762BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0ADB210D-0D25-4576-8868-9C47DC4762BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0ADB210D-0D25-4576-8868-9C47DC4762BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0ADB210D-0D25-4576-8868-9C47DC4762BE}.Release|Any CPU.Build.0 = Release|Any CPU - {128FD14A-9D70-4B07-8F9A-E85A511BA28B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {128FD14A-9D70-4B07-8F9A-E85A511BA28B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {128FD14A-9D70-4B07-8F9A-E85A511BA28B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {128FD14A-9D70-4B07-8F9A-E85A511BA28B}.Release|Any CPU.Build.0 = Release|Any CPU - {6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6080AD8B-8ACD-4C0E-ABAD-26DB043E202B}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - StartupItem = TouchScript.csproj - EndGlobalSection -EndGlobal diff --git a/TouchScript/Utils/ProjectionUtils.cs b/TouchScript/Utils/ProjectionUtils.cs deleted file mode 100644 index 3456f2a71..000000000 --- a/TouchScript/Utils/ProjectionUtils.cs +++ /dev/null @@ -1,29 +0,0 @@ -/* - * @author Valentin Simonov / http://va.lent.in/ - */ - -using UnityEngine; - -namespace TouchScript.Utils -{ - /// - /// Projection utils. - /// - public class ProjectionUtils - { - /// - /// Projects a screen point to a plane. - /// - /// Screen point. - /// The camera. - /// The projection plane. - /// - public static Vector3 CameraToPlaneProjection(Vector2 position, Camera camera, Plane projectionPlane) - { - var ray = camera.ScreenPointToRay(position); - var relativeIntersection = 0f; - projectionPlane.Raycast(ray, out relativeIntersection); - return ray.origin + ray.direction*relativeIntersection; - } - } -} \ No newline at end of file diff --git a/license.txt b/license.txt index 0748d9ee0..1294daf8e 100644 --- a/license.txt +++ b/license.txt @@ -1,7 +1,29 @@ -Copyright (C) 2012 Interactive Lab +This software is distributed under The MIT License (MIT). -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: +Copyright (c) 2015 Valentin Simonov and other contributors. -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +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 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. \ No newline at end of file +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. + +Assets used in examples: +1. Skybox Volume 2 (https://www.assetstore.unity3d.com/en/#!/content/3392) +2. Planet Earth Free (https://www.assetstore.unity3d.com/en/#!/content/23399) +3. Wooden Table and Chair (https://www.assetstore.unity3d.com/en/#!/content/18996) +4. Touch gesture illustrations provided by GestureWorks® (www.gestureworks.com) +5. Cartoon UI elements (http://opengameart.org/content/free-game-gui) +6. Cat images are just random images from Google search. \ No newline at end of file