├── ProjectSettings ├── ProjectVersion.txt ├── ClusterInputManager.asset ├── NetworkManager.asset ├── TimeManager.asset ├── VFXManager.asset ├── EditorBuildSettings.asset ├── AudioManager.asset ├── TagManager.asset ├── EditorSettings.asset ├── PresetManager.asset ├── UnityConnectSettings.asset ├── DynamicsManager.asset ├── Physics2DSettings.asset ├── NavMeshAreas.asset ├── GraphicsSettings.asset ├── QualitySettings.asset ├── InputManager.asset └── ProjectSettings.asset ├── Assets ├── 3DPhotos.meta └── 3DPhotos │ ├── Prefabs.meta │ ├── Prefabs │ ├── 3DPhotoCamera.prefab.meta │ └── 3DPhotoCamera.prefab │ ├── Scripts.meta │ ├── Shaders.meta │ ├── Materials.meta │ ├── Sample Scene.meta │ ├── Sample Scene │ ├── SampleScene.unity.meta │ ├── Materials.meta │ ├── Materials │ │ ├── SphereMaterial.mat.meta │ │ └── SphereMaterial.mat │ └── SampleScene.unity │ ├── Materials │ ├── DepthPostProcessing.mat.meta │ └── DepthPostProcessing.mat │ ├── Shaders │ ├── DepthPostProcessing.shader.meta │ └── DepthPostProcessing.shader │ └── Scripts │ ├── Photo3DShooter.cs.meta │ └── Photo3DShooter.cs ├── .gitignore ├── LICENSE ├── Logs └── Packages-Update.log ├── Packages └── manifest.json └── README.md /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.3.6f1 2 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /Assets/3DPhotos.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d9077519071f17409a8f2b8b037deae 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8fc0579ece40df4bb9ed326546cb6af 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Prefabs/3DPhotoCamera.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5040451c6193bfa45894f72dc99892b4 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4f029f018b665f4fa4d77ff5e41af9d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cdf9a9439f6838c4ebb89aae481ef55b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 669147bacae498b49aa06483894757e6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Sample Scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5167159edb10c374484c0e7541ec8cbb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Sample Scene/SampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ada8c21ee1ad0a34888778cb8f3d96dc 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Sample Scene/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94d11714d4c6bb94d91948781be67548 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Materials/DepthPostProcessing.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 65023a62af465674291010c12f80fd8f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Sample Scene/Materials/SphereMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d1a3990493bc1e40a7f3eb87b0c864d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Shaders/DepthPostProcessing.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4201c49082e3e6843b14e001df04f210 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Scripts/Photo3DShooter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b79c26b771b8f34a9103f60c391fe58 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/3DPhotos/Sample Scene/SampleScene.unity 10 | guid: ada8c21ee1ad0a34888778cb8f3d96dc 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | [Bb]uilds/ 6 | [Bb]in/ 7 | Assets/AssetStoreTools* 8 | 9 | # Visual Studio cache directory 10 | .vs/ 11 | 12 | # Autogenerated VS/MD/Consulo solution and project files 13 | ExportedObj/ 14 | .consulo/ 15 | *.csproj 16 | *.unityproj 17 | *.sln 18 | *.suo 19 | *.tmp 20 | *.user 21 | *.userprefs 22 | *.pidb 23 | *.booproj 24 | *.svd 25 | *.pdb 26 | *.opendb 27 | 28 | # Unity3D generated meta files 29 | *.pidb.meta 30 | *.pdb.meta 31 | 32 | # Unity3D Generated File On Crash Reports 33 | sysinfo.txt 34 | 35 | # Builds 36 | *.apk 37 | *.unitypackage 38 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - PostProcessing 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 1 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 TonyViT 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 8 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | -------------------------------------------------------------------------------- /Logs/Packages-Update.log: -------------------------------------------------------------------------------- 1 | 2 | === Fri Apr 26 16:38:57 2019 3 | 4 | Packages were changed. 5 | Update Mode: mergeDefaultDependencies 6 | 7 | The following packages were added: 8 | com.unity.analytics@3.2.2 9 | com.unity.purchasing@2.0.3 10 | com.unity.ads@2.0.8 11 | com.unity.textmeshpro@1.3.0 12 | com.unity.package-manager-ui@2.0.3 13 | com.unity.collab-proxy@1.2.15 14 | com.unity.modules.ai@1.0.0 15 | com.unity.modules.animation@1.0.0 16 | com.unity.modules.assetbundle@1.0.0 17 | com.unity.modules.audio@1.0.0 18 | com.unity.modules.cloth@1.0.0 19 | com.unity.modules.director@1.0.0 20 | com.unity.modules.imageconversion@1.0.0 21 | com.unity.modules.imgui@1.0.0 22 | com.unity.modules.jsonserialize@1.0.0 23 | com.unity.modules.particlesystem@1.0.0 24 | com.unity.modules.physics@1.0.0 25 | com.unity.modules.physics2d@1.0.0 26 | com.unity.modules.screencapture@1.0.0 27 | com.unity.modules.terrain@1.0.0 28 | com.unity.modules.terrainphysics@1.0.0 29 | com.unity.modules.tilemap@1.0.0 30 | com.unity.modules.ui@1.0.0 31 | com.unity.modules.uielements@1.0.0 32 | com.unity.modules.umbra@1.0.0 33 | com.unity.modules.unityanalytics@1.0.0 34 | com.unity.modules.unitywebrequest@1.0.0 35 | com.unity.modules.unitywebrequestassetbundle@1.0.0 36 | com.unity.modules.unitywebrequestaudio@1.0.0 37 | com.unity.modules.unitywebrequesttexture@1.0.0 38 | com.unity.modules.unitywebrequestwww@1.0.0 39 | com.unity.modules.vehicles@1.0.0 40 | com.unity.modules.video@1.0.0 41 | com.unity.modules.vr@1.0.0 42 | com.unity.modules.wind@1.0.0 43 | com.unity.modules.xr@1.0.0 44 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_ReuseCollisionCallbacks: 1 28 | m_AutoSyncTransforms: 0 29 | m_AlwaysShowColliders: 0 30 | m_ShowColliderSleep: 1 31 | m_ShowColliderContacts: 0 32 | m_ShowColliderAABB: 0 33 | m_ContactArrowScale: 0.2 34 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 35 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 36 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 37 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 38 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 39 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ads": "2.0.8", 4 | "com.unity.analytics": "3.2.2", 5 | "com.unity.collab-proxy": "1.2.15", 6 | "com.unity.package-manager-ui": "2.0.3", 7 | "com.unity.purchasing": "2.0.3", 8 | "com.unity.textmeshpro": "1.3.0", 9 | "com.unity.modules.ai": "1.0.0", 10 | "com.unity.modules.animation": "1.0.0", 11 | "com.unity.modules.assetbundle": "1.0.0", 12 | "com.unity.modules.audio": "1.0.0", 13 | "com.unity.modules.cloth": "1.0.0", 14 | "com.unity.modules.director": "1.0.0", 15 | "com.unity.modules.imageconversion": "1.0.0", 16 | "com.unity.modules.imgui": "1.0.0", 17 | "com.unity.modules.jsonserialize": "1.0.0", 18 | "com.unity.modules.particlesystem": "1.0.0", 19 | "com.unity.modules.physics": "1.0.0", 20 | "com.unity.modules.physics2d": "1.0.0", 21 | "com.unity.modules.screencapture": "1.0.0", 22 | "com.unity.modules.terrain": "1.0.0", 23 | "com.unity.modules.terrainphysics": "1.0.0", 24 | "com.unity.modules.tilemap": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.umbra": "1.0.0", 28 | "com.unity.modules.unityanalytics": "1.0.0", 29 | "com.unity.modules.unitywebrequest": "1.0.0", 30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 31 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 32 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 33 | "com.unity.modules.unitywebrequestwww": "1.0.0", 34 | "com.unity.modules.vehicles": "1.0.0", 35 | "com.unity.modules.video": "1.0.0", 36 | "com.unity.modules.vr": "1.0.0", 37 | "com.unity.modules.wind": "1.0.0", 38 | "com.unity.modules.xr": "1.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Sample Scene/Materials/SphereMaterial.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: SphereMaterial 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Materials/DepthPostProcessing.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: DepthPostProcessing 11 | m_Shader: {fileID: 4800000, guid: 4201c49082e3e6843b14e001df04f210, type: 3} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DepthMultiplier: 5 62 | - _DetailNormalMapScale: 1 63 | - _DstBlend: 0 64 | - _GlossMapScale: 1 65 | - _Glossiness: 0.5 66 | - _GlossyReflections: 1 67 | - _Metallic: 0 68 | - _Mode: 0 69 | - _OcclusionStrength: 1 70 | - _Parallax: 0.02 71 | - _SmoothnessTextureChannel: 0 72 | - _SpecularHighlights: 1 73 | - _SrcBlend: 1 74 | - _UVSec: 0 75 | - _WaveDistance: 3.1790903 76 | - _WaveTrail: 1 77 | - _ZWrite: 1 78 | - _depthMultiplier: 0.005 79 | m_Colors: 80 | - _Color: {r: 1, g: 0, b: 0, a: 1} 81 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 82 | - _WaveColor: {r: 1, g: 0, b: 0, a: 1} 83 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 40 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 41 | m_PreloadedShaders: [] 42 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 43 | type: 0} 44 | m_CustomRenderPipeline: {fileID: 0} 45 | m_TransparencySortMode: 0 46 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 47 | m_DefaultRenderingPath: 1 48 | m_DefaultMobileRenderingPath: 1 49 | m_TierSettings: [] 50 | m_LightmapStripping: 0 51 | m_FogStripping: 0 52 | m_InstancingStripping: 0 53 | m_LightmapKeepPlain: 1 54 | m_LightmapKeepDirCombined: 1 55 | m_LightmapKeepDynamicPlain: 1 56 | m_LightmapKeepDynamicDirCombined: 1 57 | m_LightmapKeepShadowMask: 1 58 | m_LightmapKeepSubtractive: 1 59 | m_FogKeepLinear: 1 60 | m_FogKeepExp: 1 61 | m_FogKeepExp2: 1 62 | m_AlbedoSwatchInfos: [] 63 | m_LightsUseLinearIntensity: 0 64 | m_LightsUseColorTemperature: 0 65 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Prefabs/3DPhotoCamera.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &3378097855327244806 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 3378097855327244802} 12 | - component: {fileID: 3378097855327244805} 13 | - component: {fileID: 3378097855327244807} 14 | m_Layer: 0 15 | m_Name: 3DPhotoCamera 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!4 &3378097855327244802 22 | Transform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 3378097855327244806} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_Children: [] 32 | m_Father: {fileID: 0} 33 | m_RootOrder: 0 34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 35 | --- !u!20 &3378097855327244805 36 | Camera: 37 | m_ObjectHideFlags: 0 38 | m_CorrespondingSourceObject: {fileID: 0} 39 | m_PrefabInstance: {fileID: 0} 40 | m_PrefabAsset: {fileID: 0} 41 | m_GameObject: {fileID: 3378097855327244806} 42 | m_Enabled: 0 43 | serializedVersion: 2 44 | m_ClearFlags: 1 45 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} 46 | m_projectionMatrixMode: 1 47 | m_SensorSize: {x: 36, y: 24} 48 | m_LensShift: {x: 0, y: 0} 49 | m_GateFitMode: 2 50 | m_FocalLength: 50 51 | m_NormalizedViewPortRect: 52 | serializedVersion: 2 53 | x: 0 54 | y: 0 55 | width: 1 56 | height: 1 57 | near clip plane: 0.3 58 | far clip plane: 1000 59 | field of view: 60 60 | orthographic: 0 61 | orthographic size: 5 62 | m_Depth: -1 63 | m_CullingMask: 64 | serializedVersion: 2 65 | m_Bits: 4294967295 66 | m_RenderingPath: -1 67 | m_TargetTexture: {fileID: 0} 68 | m_TargetDisplay: 0 69 | m_TargetEye: 3 70 | m_HDR: 1 71 | m_AllowMSAA: 1 72 | m_AllowDynamicResolution: 0 73 | m_ForceIntoRT: 0 74 | m_OcclusionCulling: 1 75 | m_StereoConvergence: 10 76 | m_StereoSeparation: 0.022 77 | --- !u!114 &3378097855327244807 78 | MonoBehaviour: 79 | m_ObjectHideFlags: 0 80 | m_CorrespondingSourceObject: {fileID: 0} 81 | m_PrefabInstance: {fileID: 0} 82 | m_PrefabAsset: {fileID: 0} 83 | m_GameObject: {fileID: 3378097855327244806} 84 | m_Enabled: 1 85 | m_EditorHideFlags: 0 86 | m_Script: {fileID: 11500000, guid: 8b79c26b771b8f34a9103f60c391fe58, type: 3} 87 | m_Name: 88 | m_EditorClassIdentifier: 89 | PostprocessMaterial: {fileID: 2100000, guid: 65023a62af465674291010c12f80fd8f, type: 2} 90 | DepthMultiplier: 5 91 | PhotoWidth: 1920 92 | PhotoHeight: 1080 93 | ProgramTag: UnityApp 94 | ReferenceCamera: {fileID: 0} 95 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Shaders/DepthPostProcessing.shader: -------------------------------------------------------------------------------- 1 | //MIT License 2 | 3 | //Copyright(c) 2019 Antony Vitillo(a.k.a. "Skarredghost") 4 | 5 | //Permission is hereby granted, free of charge, to any person obtaining a copy 6 | //of this software and associated documentation files (the "Software"), to deal 7 | //in the Software without restriction, including without limitation the rights 8 | //to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | //copies of the Software, and to permit persons to whom the Software is 10 | //furnished to do so, subject to the following conditions: 11 | 12 | //The above copyright notice and this permission notice shall be included in all 13 | //copies or substantial portions of the Software. 14 | 15 | //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | //IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | //FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | //AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | //LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | //OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | //SOFTWARE. 22 | 23 | //The code is a modification of a tutorial by Ronja, that is released until a CC-0 license 24 | //You can find his tutorial at this link https://www.ronja-tutorials.com/2018/07/01/postprocessing-depth.html 25 | //And the related GitHub repository at this link https://github.com/ronja-tutorials/ShaderTutorials 26 | 27 | Shader "Photo3D/Depth_Postprocessing"{ 28 | //show values to edit in inspector 29 | Properties{ 30 | [HideInInspector]_MainTex ("Texture", 2D) = "white" {} 31 | _DepthMultiplier("Depth Multiplier", Float) = 1 32 | } 33 | 34 | SubShader{ 35 | // markers that specify that we don't need culling 36 | // or comparing/writing to the depth buffer 37 | Cull Off 38 | ZWrite Off 39 | ZTest Always 40 | 41 | Pass{ 42 | CGPROGRAM 43 | //include useful shader functions 44 | #include "UnityCG.cginc" 45 | 46 | //define vertex and fragment shader 47 | #pragma vertex vert 48 | #pragma fragment frag 49 | 50 | //the rendered screen so far 51 | sampler2D _MainTex; 52 | 53 | //the depth texture 54 | sampler2D _CameraDepthTexture; 55 | 56 | //the depth multiplier 57 | float _DepthMultiplier; 58 | 59 | //the object data that's put into the vertex shader 60 | struct appdata{ 61 | float4 vertex : POSITION; 62 | float2 uv : TEXCOORD0; 63 | }; 64 | 65 | //the data that's used to generate fragments and can be read by the fragment shader 66 | struct v2f{ 67 | float4 position : SV_POSITION; 68 | float2 uv : TEXCOORD0; 69 | }; 70 | 71 | //the vertex shader 72 | v2f vert(appdata v){ 73 | v2f o; 74 | //convert the vertex positions from object space to clip space so they can be rendered 75 | o.position = UnityObjectToClipPos(v.vertex); 76 | o.uv = v.uv; 77 | return o; 78 | } 79 | 80 | //the fragment shader 81 | fixed4 frag(v2f i) : SV_TARGET{ 82 | //get depth from depth texture 83 | float depth = tex2D(_CameraDepthTexture, i.uv).r; 84 | 85 | //linear depth between camera and far clipping plane 86 | depth = Linear01Depth(depth); 87 | 88 | //if a pixel is beyond the far plane, draw it in black 89 | if (depth >= 1) 90 | return fixed4(0, 0, 0, 1); 91 | 92 | //depth as distance from camera in units 93 | depth = depth * _DepthMultiplier; 94 | 95 | //return depth color 96 | return fixed4(1 - depth, 1 - depth, 1 - depth, 1);; 97 | } 98 | ENDCG 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 4 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 16 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 16 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 1 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 16 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 2 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 16 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 40 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 1 136 | antiAliasing: 4 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 16 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 1 164 | antiAliasing: 4 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 16 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSP2: 2 183 | Standalone: 5 184 | Tizen: 2 185 | WebGL: 3 186 | WiiU: 5 187 | Windows Store Apps: 5 188 | XboxOne: 5 189 | iPhone: 2 190 | tvOS: 2 191 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # UnityFacebook3DPhoto 2 | A plugin to let you shoot easily 3D Photos for Facebook directly from Unity. 3 | 4 | With this solution you will be able to just press a key in your Unity project and generate instantly the color and depth images required to publish a 3D Photo post of Facebook. The photos will be taken by a Camera that is in the Unity scene and saved on the disk. This way you will be able to promote your Unity project on Facebook in a more innovative way. 5 | 6 | The solution is experimental, so feel free to experiment with it and improve its features. 7 | 8 | ## Getting Started 9 | To see what the UnityFacebook3DPhoto plugin is able to do, my advice is to start by just giving it a try. So, clone this repository, open the project with Unity and open the SampleScene that is located in \Assets\3DPhotos\Sample Scene. Run the application in the editor and press P on your keyboard. Now go to the main folder of the project (the parent folder of Assets): you should find two images, with a name like "UnityApp_Photo3D_2019_4_27_17_1_7.png" and "UnityApp_Photo3D_2019_4_27_17_1_7_depth.png". If you try to drag contemporarily them on Facebook, Facebook will create a 3D post out of them. 10 | 11 | ## Using it in other projects 12 | After you have tested the sample, you would like for sure to use this plugin in a project of yours. To do this, you have just to: 13 | * Copy the \Assets\3DPhotos folder inside the Assets folder of your Unity project; 14 | * Drag into your Unity scene the 3DPhotoCamera Prefab that is located in the \Assets\3DPhotos\Prefabs folder 15 | * Tweak the parameters of the Photo3DShooter behaviour attached to the prefab, if needed 16 | * Modify the code of the Photo3DShooter script, if needed 17 | * Run your application and trigger the photo, using the P key 18 | 19 | The resulting Photo files will be located in: 20 | * The main project folder, if you are in the Unity editor 21 | * The executable folder, if you are launching an .EXE on windows 22 | * The \DCIM\\<ProgramTag> folder, on Android (included AR and VR devices that run Android). "ProgramTag" is one of the parameters of the script, that is set by default as "UnityApp" 23 | 24 | ### Script parameters 25 | The parameters of the Photo3DShooter behaviour define how the 3D photo will be shot. They are heavily commented in the code and also through tooltips, so it is easy for the developer modifying them. 26 | 27 | They are: 28 | * Postprocess Material: you had better not changing it. It is a material used to create the depth map 29 | * Depth Multiplier: it is a constant for which the depth values of the scene gets multiplied for. Unity computes the depth of the scene as a value from 0 to 1. With this multiplier, you can amplify the depth value. Since the resulting color is computed by 1 - multiplied_depth, the more this value is big, the more the depth map will appear black and background objects will disappear from the photo. The more this value is small, the more all objects in the scene will be visualized. NOTE: the default value is 5, but to shoot the photo for my mixed reality game Hit Motion, I had to use a value of around 400, because all objects were close to the camera and I wanted more precision in detecting their different depths. So, experiment with various values: if all objects are white, make this value bigger. 30 | * Photo Width, Photo Height: used to determine the resolution of the 3D Photo files 31 | * Program Tag: name of your application. It is used to set the filename of the photo. On Android, it also determines the folder inside DCIM into which store the photo 32 | * Reference Camera: if this value is null, the photo will be shot by the current Camera present into the prefab, from its position and orientation and with its parameters. If this value is not null, the photo will be shot from the position and rotation of the Reference Camera and using the render parameters of the Reference Camera 33 | 34 | ### Required code modifications 35 | You may want to modify the code to let it suit your needs. 36 | 37 | This may be useful for instance to: 38 | * Save the photos in a different folder or with a different name; 39 | * Implement saving mechanics for other OS (currently only Windows and Android are supported) 40 | * Implement a new mechanism to trigger the photo: e.g. if you use a VR headset, you would probably want to trigger the photo when the user presses the Trigger button on his controller and not when the S key is pressed. This can be easily modified in the Update method of the script 3DPhotoCamera 41 | 42 | ## Understanding the code 43 | The code is very short and highly commented. 44 | 45 | In short, the 3DPhotoCamera behaviour, when the P key is pressed, renders an image from the point of view of the camera that is attached to its gameobject. This is the color image. Then it renders a second image that gets modified by the shader DepthPostProcessing so that every pixel in this new image gets a color that corresponds to its depth in the scene, and so you also have the depth map. These images gets later saved to disk. 46 | 47 | ## Prerequisites 48 | If you want to use the project, you must have Unity editor installed. It has been developed and tested with Unity 2018.3.6f1. 49 | 50 | ## Known issues 51 | This is an experimental project in its first version and so has various problems: 52 | * It is not compatible with all platforms (but you can easily expand it in this sense) 53 | * It is not multithread, so when the photo gets shot, the program halts for an instant 54 | * It may be not the most efficient implementation to shoot a 3D photo 55 | 56 | People more skilled than me are welcome to contribute to this project... to improve and expand it. 57 | 58 | ## Authors 59 | 60 | * **Antony Vitillo (Skarredghost)** - [Blog](http://skarredghost.com) 61 | 62 | ## License 63 | 64 | This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details. 65 | 66 | This project uses in part some code from [Ronja Tutorials](https://github.com/ronja-tutorials/ShaderTutorials) that is released under the CC0 1.0 license 67 | 68 | ## Acknowledgments 69 | 70 | I'm releasing this for free, to be helpful for the community. I would really appreciate whatever kind of support if you use this plugin in your project: a hug, a thank you, a subscription to the newsletter of [my blog](https://skarredghost.com), a mention in the credits of your project, a collaboration proposal for your XR project, a donation of 1 million Euros, the phone number of Scarlett Johansson, etc... 71 | 72 | You can contact me [here](https://skarredghost.com/contact/) if you wish. 73 | 74 | Have fun :) 75 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Scripts/Photo3DShooter.cs: -------------------------------------------------------------------------------- 1 | //MIT License 2 | 3 | //Copyright(c) 2019 Antony Vitillo(a.k.a. "Skarredghost") 4 | 5 | //Permission is hereby granted, free of charge, to any person obtaining a copy 6 | //of this software and associated documentation files (the "Software"), to deal 7 | //in the Software without restriction, including without limitation the rights 8 | //to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | //copies of the Software, and to permit persons to whom the Software is 10 | //furnished to do so, subject to the following conditions: 11 | 12 | //The above copyright notice and this permission notice shall be included in all 13 | //copies or substantial portions of the Software. 14 | 15 | //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | //IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | //FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | //AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | //LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | //OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | //SOFTWARE. 22 | 23 | //The code is a inspired by a tutorial by Ronja, that is released until a CC-0 license 24 | //You can find his tutorial at this link https://www.ronja-tutorials.com/2018/07/01/postprocessing-depth.html 25 | //And the related GitHub repository at this link https://github.com/ronja-tutorials/ShaderTutorials 26 | 27 | using System; 28 | using System.Collections; 29 | using System.IO; 30 | using UnityEngine; 31 | 32 | namespace Photo3D 33 | { 34 | /// 35 | /// Shoots a 3D photo 36 | /// 37 | [RequireComponent(typeof(Camera))] 38 | public class Photo3DShooter : MonoBehaviour 39 | { 40 | /// 41 | /// Material used to compute the depth distance 42 | /// 43 | [Tooltip("Material used to compute the depth map... do not touch :)")] 44 | public Material PostprocessMaterial; 45 | 46 | /// 47 | /// Multiplier of depth value 48 | /// 49 | [Tooltip("Constant for which the depth map computed by Unity has to be multiplied. The more it is small, the more the depth map becomes white; the more it is big, the more the depth map becomes black and background objects disappear in the 3D Photo")] 50 | public float DepthMultiplier = 5f; 51 | 52 | /// 53 | /// Width of the screenshot to take 54 | /// 55 | [Tooltip("Width of the 3D Photo")] 56 | public int PhotoWidth = 1920; 57 | 58 | /// 59 | /// Height of the screenshot to take 60 | /// 61 | [Tooltip("Height of the 3D Photo")] 62 | public int PhotoHeight = 1080; 63 | 64 | /// 65 | /// The name of the app, used to change the filename and the folder used to save the photo 66 | /// 67 | [Tooltip("The name of your application")] 68 | public string ProgramTag = "UnityApp"; 69 | 70 | /// 71 | /// Reference camera to be used to take the photos. If this value is null, the photo will be taken with the camera attached to this object, as is. 72 | /// If the value is not null, the camera that takes the 3D photo will copy all parameters of the reference camera and will also match the position and rotation of the reference camera when shooting the photo. 73 | /// 74 | [Tooltip("Reference camera to shoot the photos. If this value is null, the photo will be taken with the camera attached to this object, as is. If the value is not null, the camera that takes the 3D photo will copy all parameters of the reference camera and will also match the position and rotation of the reference camera when shooting the photo.")] 75 | public Camera ReferenceCamera = null; 76 | 77 | /// 78 | /// Render Texture used to shoot the photos from this camera 79 | /// 80 | private RenderTexture m_renderTexture; 81 | 82 | /// 83 | /// Texture used to copy the values of the render texture 84 | /// 85 | private Texture2D m_texture; 86 | 87 | /// 88 | /// Reference to the camera attached to this object 89 | /// 90 | private Camera m_camera; 91 | 92 | /// 93 | /// False if we are shooting the color photo, true if we are shooting the depth map photo 94 | /// 95 | private bool m_depthImage; 96 | 97 | /// 98 | /// Start 99 | /// 100 | private void Start() 101 | { 102 | //get the camera and initialize it 103 | m_camera = GetComponent(); 104 | 105 | if (ReferenceCamera != null) 106 | m_camera.CopyFrom(ReferenceCamera); //copy parameters of reference camera 107 | 108 | m_camera.depthTextureMode = m_camera.depthTextureMode | DepthTextureMode.Depth; //needed to compute the depth map 109 | m_camera.enabled = false; 110 | 111 | //init textures 112 | m_renderTexture = new RenderTexture(PhotoWidth, PhotoHeight, 24, RenderTextureFormat.ARGB32); 113 | m_renderTexture.Create(); 114 | m_texture = new Texture2D(PhotoWidth, PhotoHeight, TextureFormat.ARGB32, false); 115 | 116 | //set depth multiplier, as required by the user 117 | PostprocessMaterial.SetFloat("_DepthMultiplier", DepthMultiplier); 118 | } 119 | 120 | /// 121 | /// Update 122 | /// 123 | private void Update() 124 | { 125 | //TODO: Change this to match your requirements. Most probably on Android or in AR/VR experiences you will have to set your own mechanics to trigger the Capture function 126 | if (Input.GetKeyDown(KeyCode.P)) 127 | Capture(); 128 | } 129 | 130 | /// 131 | /// Method which is automatically called by unity after the camera is done rendering 132 | /// 133 | private void OnRenderImage(RenderTexture source, RenderTexture destination) 134 | { 135 | //draws the pixels from the source texture to the destination texture. If we are computing the depth image, apply the special shader to compute it, otherwise just copy the image as-is 136 | if (m_depthImage) 137 | Graphics.Blit(source, destination, PostprocessMaterial); 138 | else 139 | Graphics.Blit(source, destination); 140 | } 141 | 142 | /// 143 | /// Capture the 3D photo 144 | /// 145 | private void Capture() 146 | { 147 | //copy pose of reference camera, if needed 148 | if (ReferenceCamera != null) 149 | m_camera.transform.SetPositionAndRotation(ReferenceCamera.transform.position, ReferenceCamera.transform.rotation); 150 | 151 | //enable camera and render texture 152 | m_camera.enabled = true; 153 | m_camera.targetTexture = m_renderTexture; 154 | RenderTexture.active = m_renderTexture; 155 | 156 | //compute date for the file name. We do it here, otherwise the name of the file may change between depth and color computations 157 | DateTime nowTime = DateTime.Now; 158 | 159 | //shoot Color photo 160 | RenderAndSaveImage(false, nowTime); 161 | 162 | //shoot Depth photo 163 | RenderAndSaveImage(true, nowTime); 164 | 165 | //disable camera and render texture 166 | RenderTexture.active = null; 167 | m_camera.targetTexture = null; 168 | m_camera.enabled = false; 169 | } 170 | 171 | /// 172 | /// Renders an image from current camera and saves it to a file on disk 173 | /// 174 | /// True if we must compute depth map, false for color image 175 | /// Present time used to save the images 176 | private void RenderAndSaveImage(bool isDepthImage, DateTime nowTime) 177 | { 178 | //set depth parameter: it will be used by the OnRenderImage method called internally by the Render() method of the camera to decide if applying a depth-compute shader or not 179 | m_depthImage = isDepthImage; 180 | 181 | //render the scene and save it to texture 182 | m_camera.Render(); 183 | m_texture.ReadPixels(new Rect(0, 0, PhotoWidth, PhotoHeight), 0, 0); 184 | 185 | //convert to PNG 186 | byte[] imgPng = m_texture.EncodeToPNG(); 187 | 188 | //save image to disk 189 | //TODO: put it into another thread to not make the saving block the application 190 | StartCoroutine(SaveImage(imgPng, isDepthImage, nowTime)); 191 | } 192 | 193 | /// 194 | /// Saves the image to disk 195 | /// 196 | /// PNG image to save 197 | /// True if it is a depth image, false otherwise 198 | /// Present time used to compute the filename 199 | /// 200 | private IEnumerator SaveImage(byte[] imageToSave, bool isDepthImage, DateTime nowTime) 201 | { 202 | //create a file name. Notice that the depth map must end with "_depth" 203 | string fileName = String.Format("{0}_Photo3D_{1}_{2}_{3}_{4}_{5}_{6}.png", ProgramTag, nowTime.Year, nowTime.Month, nowTime.Day, nowTime.Hour, nowTime.Minute, nowTime.Second + (isDepthImage ? "_depth" : "")); 204 | 205 | #if UNITY_STANDALONE || UNITY_EDITOR 206 | //on PC, let's save the image on the directory of the executable 207 | //If we are in the Unity editor, it will be saved in the directory of the project 208 | File.WriteAllBytes(Application.dataPath + @"\..\" + fileName, imageToSave); 209 | yield break; 210 | 211 | #elif UNITY_ANDROID 212 | //on Android devices (so also VR standalones), let's save the image in "/DCIM/ProgramTag/ 213 | 214 | string imageGalleryPath = ""; 215 | string temporaryImageName = "image"; 216 | 217 | //set the directory into which save the image so that when you connect the Focus to the PC it appears in /DCIM/FocusSelfies 218 | try 219 | { 220 | using (var environment = new AndroidJavaClass("android.os.Environment")) 221 | { 222 | 223 | var dirFile = environment.CallStatic("getExternalStorageDirectory"); 224 | imageGalleryPath = dirFile.Call("getAbsolutePath"); 225 | } 226 | 227 | } 228 | catch (Exception e) 229 | { 230 | yield break; 231 | } 232 | 233 | imageGalleryPath += "/DCIM/" + ProgramTag; 234 | 235 | //save the image to a temporary file into application internal path. Wait until the file gets created 236 | System.IO.File.WriteAllBytes(Application.persistentDataPath + "/" + temporaryImageName + ".png", imageToSave); 237 | 238 | while (!System.IO.File.Exists(Application.persistentDataPath + "/" + temporaryImageName + ".png")) 239 | yield return null; 240 | 241 | //copy the temporary file to the final destination 242 | if (!System.IO.Directory.Exists(imageGalleryPath)) 243 | System.IO.Directory.CreateDirectory(imageGalleryPath); 244 | System.IO.File.Copy(Application.persistentDataPath + "/" + temporaryImageName + ".png", imageGalleryPath + "/" + fileName); 245 | 246 | //delete the temporary file 247 | System.IO.File.Delete(Application.persistentDataPath + "/" + temporaryImageName + ".png"); 248 | #endif 249 | } 250 | } 251 | 252 | } -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 15 7 | productGUID: bd72fb363411c7a4f9f14f2d6bed3d05 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: New Technology Walkers 16 | productName: Photos3DTest 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | iosAppInBackgroundBehavior: 0 56 | displayResolutionDialog: 1 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidStartInFullscreen: 1 67 | androidRenderOutsideSafeArea: 0 68 | androidBlitType: 0 69 | defaultIsNativeResolution: 1 70 | macRetinaSupport: 1 71 | runInBackground: 1 72 | captureSingleScreen: 0 73 | muteOtherAudioSources: 0 74 | Prepare IOS For Recording: 0 75 | Force IOS Speakers When Recording: 0 76 | deferSystemGesturesMode: 0 77 | hideHomeButton: 0 78 | submitAnalytics: 1 79 | usePlayerLog: 1 80 | bakeCollisionMeshes: 0 81 | forceSingleInstance: 0 82 | resizableWindow: 0 83 | useMacAppStoreValidation: 0 84 | macAppStoreCategory: public.app-category.games 85 | gpuSkinning: 1 86 | graphicsJobs: 0 87 | xboxPIXTextureCapture: 0 88 | xboxEnableAvatar: 0 89 | xboxEnableKinect: 0 90 | xboxEnableKinectAutoTracking: 0 91 | xboxEnableFitness: 0 92 | visibleInBackground: 1 93 | allowFullscreenSwitch: 1 94 | graphicsJobMode: 0 95 | fullscreenMode: 1 96 | xboxSpeechDB: 0 97 | xboxEnableHeadOrientation: 0 98 | xboxEnableGuest: 0 99 | xboxEnablePIXSampling: 0 100 | metalFramebufferOnly: 0 101 | xboxOneResolution: 0 102 | xboxOneSResolution: 0 103 | xboxOneXResolution: 3 104 | xboxOneMonoLoggingLevel: 0 105 | xboxOneLoggingLevel: 1 106 | xboxOneDisableEsram: 0 107 | xboxOnePresentImmediateThreshold: 0 108 | switchQueueCommandMemory: 1048576 109 | switchQueueControlMemory: 16384 110 | switchQueueComputeMemory: 262144 111 | switchNVNShaderPoolsGranularity: 33554432 112 | switchNVNDefaultPoolsGranularity: 16777216 113 | switchNVNOtherPoolsGranularity: 16777216 114 | vulkanEnableSetSRGBWrite: 0 115 | m_SupportedAspectRatios: 116 | 4:3: 1 117 | 5:4: 1 118 | 16:10: 1 119 | 16:9: 1 120 | Others: 1 121 | bundleVersion: 0.1 122 | preloadedAssets: [] 123 | metroInputSource: 0 124 | wsaTransparentSwapchain: 0 125 | m_HolographicPauseOnTrackingLoss: 1 126 | xboxOneDisableKinectGpuReservation: 0 127 | xboxOneEnable7thCore: 0 128 | isWsaHolographicRemotingEnabled: 0 129 | vrSettings: 130 | cardboard: 131 | depthFormat: 0 132 | enableTransitionView: 0 133 | daydream: 134 | depthFormat: 0 135 | useSustainedPerformanceMode: 0 136 | enableVideoLayer: 0 137 | useProtectedVideoMemory: 0 138 | minimumSupportedHeadTracking: 0 139 | maximumSupportedHeadTracking: 1 140 | hololens: 141 | depthFormat: 1 142 | depthBufferSharingEnabled: 0 143 | oculus: 144 | sharedDepthBuffer: 1 145 | dashSupport: 1 146 | enable360StereoCapture: 0 147 | protectGraphicsMemory: 0 148 | enableFrameTimingStats: 0 149 | useHDRDisplay: 0 150 | m_ColorGamuts: 00000000 151 | targetPixelDensity: 30 152 | resolutionScalingMode: 0 153 | androidSupportedAspectRatio: 1 154 | androidMaxAspectRatio: 2.1 155 | applicationIdentifier: 156 | Android: com.ntw.Photos3DTest 157 | buildNumber: {} 158 | AndroidBundleVersionCode: 1 159 | AndroidMinSdkVersion: 16 160 | AndroidTargetSdkVersion: 0 161 | AndroidPreferredInstallLocation: 1 162 | aotOptions: 163 | stripEngineCode: 1 164 | iPhoneStrippingLevel: 0 165 | iPhoneScriptCallOptimization: 0 166 | ForceInternetPermission: 0 167 | ForceSDCardPermission: 0 168 | CreateWallpaper: 0 169 | APKExpansionFiles: 0 170 | keepLoadedShadersAlive: 0 171 | StripUnusedMeshComponents: 1 172 | VertexChannelCompressionMask: 4054 173 | iPhoneSdkVersion: 988 174 | iOSTargetOSVersionString: 9.0 175 | tvOSSdkVersion: 0 176 | tvOSRequireExtendedGameController: 0 177 | tvOSTargetOSVersionString: 9.0 178 | uIPrerenderedIcon: 0 179 | uIRequiresPersistentWiFi: 0 180 | uIRequiresFullScreen: 1 181 | uIStatusBarHidden: 1 182 | uIExitOnSuspend: 0 183 | uIStatusBarStyle: 0 184 | iPhoneSplashScreen: {fileID: 0} 185 | iPhoneHighResSplashScreen: {fileID: 0} 186 | iPhoneTallHighResSplashScreen: {fileID: 0} 187 | iPhone47inSplashScreen: {fileID: 0} 188 | iPhone55inPortraitSplashScreen: {fileID: 0} 189 | iPhone55inLandscapeSplashScreen: {fileID: 0} 190 | iPhone58inPortraitSplashScreen: {fileID: 0} 191 | iPhone58inLandscapeSplashScreen: {fileID: 0} 192 | iPadPortraitSplashScreen: {fileID: 0} 193 | iPadHighResPortraitSplashScreen: {fileID: 0} 194 | iPadLandscapeSplashScreen: {fileID: 0} 195 | iPadHighResLandscapeSplashScreen: {fileID: 0} 196 | appleTVSplashScreen: {fileID: 0} 197 | appleTVSplashScreen2x: {fileID: 0} 198 | tvOSSmallIconLayers: [] 199 | tvOSSmallIconLayers2x: [] 200 | tvOSLargeIconLayers: [] 201 | tvOSLargeIconLayers2x: [] 202 | tvOSTopShelfImageLayers: [] 203 | tvOSTopShelfImageLayers2x: [] 204 | tvOSTopShelfImageWideLayers: [] 205 | tvOSTopShelfImageWideLayers2x: [] 206 | iOSLaunchScreenType: 0 207 | iOSLaunchScreenPortrait: {fileID: 0} 208 | iOSLaunchScreenLandscape: {fileID: 0} 209 | iOSLaunchScreenBackgroundColor: 210 | serializedVersion: 2 211 | rgba: 0 212 | iOSLaunchScreenFillPct: 100 213 | iOSLaunchScreenSize: 100 214 | iOSLaunchScreenCustomXibPath: 215 | iOSLaunchScreeniPadType: 0 216 | iOSLaunchScreeniPadImage: {fileID: 0} 217 | iOSLaunchScreeniPadBackgroundColor: 218 | serializedVersion: 2 219 | rgba: 0 220 | iOSLaunchScreeniPadFillPct: 100 221 | iOSLaunchScreeniPadSize: 100 222 | iOSLaunchScreeniPadCustomXibPath: 223 | iOSUseLaunchScreenStoryboard: 0 224 | iOSLaunchScreenCustomStoryboardPath: 225 | iOSDeviceRequirements: [] 226 | iOSURLSchemes: [] 227 | iOSBackgroundModes: 0 228 | iOSMetalForceHardShadows: 0 229 | metalEditorSupport: 1 230 | metalAPIValidation: 1 231 | iOSRenderExtraFrameOnPause: 0 232 | appleDeveloperTeamID: 233 | iOSManualSigningProvisioningProfileID: 234 | tvOSManualSigningProvisioningProfileID: 235 | iOSManualSigningProvisioningProfileType: 0 236 | tvOSManualSigningProvisioningProfileType: 0 237 | appleEnableAutomaticSigning: 0 238 | iOSRequireARKit: 0 239 | appleEnableProMotion: 0 240 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea 241 | templatePackageId: com.unity.template.3d@1.0.4 242 | templateDefaultScene: Assets/Scenes/SampleScene.unity 243 | AndroidTargetArchitectures: 5 244 | AndroidSplashScreenScale: 0 245 | androidSplashScreen: {fileID: 0} 246 | AndroidKeystoreName: 247 | AndroidKeyaliasName: 248 | AndroidBuildApkPerCpuArchitecture: 0 249 | AndroidTVCompatibility: 1 250 | AndroidIsGame: 1 251 | AndroidEnableTango: 0 252 | androidEnableBanner: 1 253 | androidUseLowAccuracyLocation: 0 254 | m_AndroidBanners: 255 | - width: 320 256 | height: 180 257 | banner: {fileID: 0} 258 | androidGamepadSupportLevel: 0 259 | resolutionDialogBanner: {fileID: 0} 260 | m_BuildTargetIcons: [] 261 | m_BuildTargetPlatformIcons: [] 262 | m_BuildTargetBatching: 263 | - m_BuildTarget: Standalone 264 | m_StaticBatching: 1 265 | m_DynamicBatching: 0 266 | - m_BuildTarget: tvOS 267 | m_StaticBatching: 1 268 | m_DynamicBatching: 0 269 | - m_BuildTarget: Android 270 | m_StaticBatching: 1 271 | m_DynamicBatching: 0 272 | - m_BuildTarget: iPhone 273 | m_StaticBatching: 1 274 | m_DynamicBatching: 0 275 | - m_BuildTarget: WebGL 276 | m_StaticBatching: 0 277 | m_DynamicBatching: 0 278 | m_BuildTargetGraphicsAPIs: 279 | - m_BuildTarget: AndroidPlayer 280 | m_APIs: 0b00000008000000 281 | m_Automatic: 1 282 | - m_BuildTarget: iOSSupport 283 | m_APIs: 10000000 284 | m_Automatic: 1 285 | - m_BuildTarget: AppleTVSupport 286 | m_APIs: 10000000 287 | m_Automatic: 0 288 | - m_BuildTarget: WebGLSupport 289 | m_APIs: 0b000000 290 | m_Automatic: 1 291 | m_BuildTargetVRSettings: 292 | - m_BuildTarget: Standalone 293 | m_Enabled: 0 294 | m_Devices: 295 | - Oculus 296 | - OpenVR 297 | m_BuildTargetEnableVuforiaSettings: [] 298 | openGLRequireES31: 0 299 | openGLRequireES31AEP: 0 300 | m_TemplateCustomTags: {} 301 | mobileMTRendering: 302 | Android: 1 303 | iPhone: 1 304 | tvOS: 1 305 | m_BuildTargetGroupLightmapEncodingQuality: [] 306 | m_BuildTargetGroupLightmapSettings: [] 307 | playModeTestRunnerEnabled: 0 308 | runPlayModeTestAsEditModeTest: 0 309 | actionOnDotNetUnhandledException: 1 310 | enableInternalProfiler: 0 311 | logObjCUncaughtExceptions: 1 312 | enableCrashReportAPI: 0 313 | cameraUsageDescription: 314 | locationUsageDescription: 315 | microphoneUsageDescription: 316 | switchNetLibKey: 317 | switchSocketMemoryPoolSize: 6144 318 | switchSocketAllocatorPoolSize: 128 319 | switchSocketConcurrencyLimit: 14 320 | switchScreenResolutionBehavior: 2 321 | switchUseCPUProfiler: 0 322 | switchApplicationID: 0x01004b9000490000 323 | switchNSODependencies: 324 | switchTitleNames_0: 325 | switchTitleNames_1: 326 | switchTitleNames_2: 327 | switchTitleNames_3: 328 | switchTitleNames_4: 329 | switchTitleNames_5: 330 | switchTitleNames_6: 331 | switchTitleNames_7: 332 | switchTitleNames_8: 333 | switchTitleNames_9: 334 | switchTitleNames_10: 335 | switchTitleNames_11: 336 | switchTitleNames_12: 337 | switchTitleNames_13: 338 | switchTitleNames_14: 339 | switchPublisherNames_0: 340 | switchPublisherNames_1: 341 | switchPublisherNames_2: 342 | switchPublisherNames_3: 343 | switchPublisherNames_4: 344 | switchPublisherNames_5: 345 | switchPublisherNames_6: 346 | switchPublisherNames_7: 347 | switchPublisherNames_8: 348 | switchPublisherNames_9: 349 | switchPublisherNames_10: 350 | switchPublisherNames_11: 351 | switchPublisherNames_12: 352 | switchPublisherNames_13: 353 | switchPublisherNames_14: 354 | switchIcons_0: {fileID: 0} 355 | switchIcons_1: {fileID: 0} 356 | switchIcons_2: {fileID: 0} 357 | switchIcons_3: {fileID: 0} 358 | switchIcons_4: {fileID: 0} 359 | switchIcons_5: {fileID: 0} 360 | switchIcons_6: {fileID: 0} 361 | switchIcons_7: {fileID: 0} 362 | switchIcons_8: {fileID: 0} 363 | switchIcons_9: {fileID: 0} 364 | switchIcons_10: {fileID: 0} 365 | switchIcons_11: {fileID: 0} 366 | switchIcons_12: {fileID: 0} 367 | switchIcons_13: {fileID: 0} 368 | switchIcons_14: {fileID: 0} 369 | switchSmallIcons_0: {fileID: 0} 370 | switchSmallIcons_1: {fileID: 0} 371 | switchSmallIcons_2: {fileID: 0} 372 | switchSmallIcons_3: {fileID: 0} 373 | switchSmallIcons_4: {fileID: 0} 374 | switchSmallIcons_5: {fileID: 0} 375 | switchSmallIcons_6: {fileID: 0} 376 | switchSmallIcons_7: {fileID: 0} 377 | switchSmallIcons_8: {fileID: 0} 378 | switchSmallIcons_9: {fileID: 0} 379 | switchSmallIcons_10: {fileID: 0} 380 | switchSmallIcons_11: {fileID: 0} 381 | switchSmallIcons_12: {fileID: 0} 382 | switchSmallIcons_13: {fileID: 0} 383 | switchSmallIcons_14: {fileID: 0} 384 | switchManualHTML: 385 | switchAccessibleURLs: 386 | switchLegalInformation: 387 | switchMainThreadStackSize: 1048576 388 | switchPresenceGroupId: 389 | switchLogoHandling: 0 390 | switchReleaseVersion: 0 391 | switchDisplayVersion: 1.0.0 392 | switchStartupUserAccount: 0 393 | switchTouchScreenUsage: 0 394 | switchSupportedLanguagesMask: 0 395 | switchLogoType: 0 396 | switchApplicationErrorCodeCategory: 397 | switchUserAccountSaveDataSize: 0 398 | switchUserAccountSaveDataJournalSize: 0 399 | switchApplicationAttribute: 0 400 | switchCardSpecSize: -1 401 | switchCardSpecClock: -1 402 | switchRatingsMask: 0 403 | switchRatingsInt_0: 0 404 | switchRatingsInt_1: 0 405 | switchRatingsInt_2: 0 406 | switchRatingsInt_3: 0 407 | switchRatingsInt_4: 0 408 | switchRatingsInt_5: 0 409 | switchRatingsInt_6: 0 410 | switchRatingsInt_7: 0 411 | switchRatingsInt_8: 0 412 | switchRatingsInt_9: 0 413 | switchRatingsInt_10: 0 414 | switchRatingsInt_11: 0 415 | switchLocalCommunicationIds_0: 416 | switchLocalCommunicationIds_1: 417 | switchLocalCommunicationIds_2: 418 | switchLocalCommunicationIds_3: 419 | switchLocalCommunicationIds_4: 420 | switchLocalCommunicationIds_5: 421 | switchLocalCommunicationIds_6: 422 | switchLocalCommunicationIds_7: 423 | switchParentalControl: 0 424 | switchAllowsScreenshot: 1 425 | switchAllowsVideoCapturing: 1 426 | switchAllowsRuntimeAddOnContentInstall: 0 427 | switchDataLossConfirmation: 0 428 | switchUserAccountLockEnabled: 0 429 | switchSystemResourceMemory: 16777216 430 | switchSupportedNpadStyles: 3 431 | switchNativeFsCacheSize: 32 432 | switchIsHoldTypeHorizontal: 0 433 | switchSupportedNpadCount: 8 434 | switchSocketConfigEnabled: 0 435 | switchTcpInitialSendBufferSize: 32 436 | switchTcpInitialReceiveBufferSize: 64 437 | switchTcpAutoSendBufferSizeMax: 256 438 | switchTcpAutoReceiveBufferSizeMax: 256 439 | switchUdpSendBufferSize: 9 440 | switchUdpReceiveBufferSize: 42 441 | switchSocketBufferEfficiency: 4 442 | switchSocketInitializeEnabled: 1 443 | switchNetworkInterfaceManagerInitializeEnabled: 1 444 | switchPlayerConnectionEnabled: 1 445 | ps4NPAgeRating: 12 446 | ps4NPTitleSecret: 447 | ps4NPTrophyPackPath: 448 | ps4ParentalLevel: 11 449 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 450 | ps4Category: 0 451 | ps4MasterVersion: 01.00 452 | ps4AppVersion: 01.00 453 | ps4AppType: 0 454 | ps4ParamSfxPath: 455 | ps4VideoOutPixelFormat: 0 456 | ps4VideoOutInitialWidth: 1920 457 | ps4VideoOutBaseModeInitialWidth: 1920 458 | ps4VideoOutReprojectionRate: 60 459 | ps4PronunciationXMLPath: 460 | ps4PronunciationSIGPath: 461 | ps4BackgroundImagePath: 462 | ps4StartupImagePath: 463 | ps4StartupImagesFolder: 464 | ps4IconImagesFolder: 465 | ps4SaveDataImagePath: 466 | ps4SdkOverride: 467 | ps4BGMPath: 468 | ps4ShareFilePath: 469 | ps4ShareOverlayImagePath: 470 | ps4PrivacyGuardImagePath: 471 | ps4NPtitleDatPath: 472 | ps4RemotePlayKeyAssignment: -1 473 | ps4RemotePlayKeyMappingDir: 474 | ps4PlayTogetherPlayerCount: 0 475 | ps4EnterButtonAssignment: 1 476 | ps4ApplicationParam1: 0 477 | ps4ApplicationParam2: 0 478 | ps4ApplicationParam3: 0 479 | ps4ApplicationParam4: 0 480 | ps4DownloadDataSize: 0 481 | ps4GarlicHeapSize: 2048 482 | ps4ProGarlicHeapSize: 2560 483 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 484 | ps4pnSessions: 1 485 | ps4pnPresence: 1 486 | ps4pnFriends: 1 487 | ps4pnGameCustomData: 1 488 | playerPrefsSupport: 0 489 | enableApplicationExit: 0 490 | resetTempFolder: 1 491 | restrictedAudioUsageRights: 0 492 | ps4UseResolutionFallback: 0 493 | ps4ReprojectionSupport: 0 494 | ps4UseAudio3dBackend: 0 495 | ps4SocialScreenEnabled: 0 496 | ps4ScriptOptimizationLevel: 0 497 | ps4Audio3dVirtualSpeakerCount: 14 498 | ps4attribCpuUsage: 0 499 | ps4PatchPkgPath: 500 | ps4PatchLatestPkgPath: 501 | ps4PatchChangeinfoPath: 502 | ps4PatchDayOne: 0 503 | ps4attribUserManagement: 0 504 | ps4attribMoveSupport: 0 505 | ps4attrib3DSupport: 0 506 | ps4attribShareSupport: 0 507 | ps4attribExclusiveVR: 0 508 | ps4disableAutoHideSplash: 0 509 | ps4videoRecordingFeaturesUsed: 0 510 | ps4contentSearchFeaturesUsed: 0 511 | ps4attribEyeToEyeDistanceSettingVR: 0 512 | ps4IncludedModules: [] 513 | monoEnv: 514 | splashScreenBackgroundSourceLandscape: {fileID: 0} 515 | splashScreenBackgroundSourcePortrait: {fileID: 0} 516 | spritePackerPolicy: 517 | webGLMemorySize: 256 518 | webGLExceptionSupport: 1 519 | webGLNameFilesAsHashes: 0 520 | webGLDataCaching: 1 521 | webGLDebugSymbols: 0 522 | webGLEmscriptenArgs: 523 | webGLModulesDirectory: 524 | webGLTemplate: APPLICATION:Default 525 | webGLAnalyzeBuildSize: 0 526 | webGLUseEmbeddedResources: 0 527 | webGLCompressionFormat: 1 528 | webGLLinkerTarget: 1 529 | webGLThreadsSupport: 0 530 | scriptingDefineSymbols: {} 531 | platformArchitecture: {} 532 | scriptingBackend: {} 533 | il2cppCompilerConfiguration: {} 534 | managedStrippingLevel: {} 535 | incrementalIl2cppBuild: {} 536 | allowUnsafeCode: 0 537 | additionalIl2CppArgs: 538 | scriptingRuntimeVersion: 1 539 | apiCompatibilityLevelPerPlatform: {} 540 | m_RenderingPath: 1 541 | m_MobileRenderingPath: 1 542 | metroPackageName: Template_3D 543 | metroPackageVersion: 544 | metroCertificatePath: 545 | metroCertificatePassword: 546 | metroCertificateSubject: 547 | metroCertificateIssuer: 548 | metroCertificateNotAfter: 0000000000000000 549 | metroApplicationDescription: Template_3D 550 | wsaImages: {} 551 | metroTileShortName: 552 | metroTileShowName: 0 553 | metroMediumTileShowName: 0 554 | metroLargeTileShowName: 0 555 | metroWideTileShowName: 0 556 | metroSupportStreamingInstall: 0 557 | metroLastRequiredScene: 0 558 | metroDefaultTileSize: 1 559 | metroTileForegroundText: 2 560 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 561 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 562 | a: 1} 563 | metroSplashScreenUseBackgroundColor: 0 564 | platformCapabilities: {} 565 | metroTargetDeviceFamilies: {} 566 | metroFTAName: 567 | metroFTAFileTypes: [] 568 | metroProtocolName: 569 | metroCompilationOverrides: 1 570 | XboxOneProductId: 571 | XboxOneUpdateKey: 572 | XboxOneSandboxId: 573 | XboxOneContentId: 574 | XboxOneTitleId: 575 | XboxOneSCId: 576 | XboxOneGameOsOverridePath: 577 | XboxOnePackagingOverridePath: 578 | XboxOneAppManifestOverridePath: 579 | XboxOneVersion: 1.0.0.0 580 | XboxOnePackageEncryption: 0 581 | XboxOnePackageUpdateGranularity: 2 582 | XboxOneDescription: 583 | XboxOneLanguage: 584 | - enus 585 | XboxOneCapability: [] 586 | XboxOneGameRating: {} 587 | XboxOneIsContentPackage: 0 588 | XboxOneEnableGPUVariability: 0 589 | XboxOneSockets: {} 590 | XboxOneSplashScreen: {fileID: 0} 591 | XboxOneAllowedProductIds: [] 592 | XboxOnePersistentLocalStorageSize: 0 593 | XboxOneXTitleMemory: 8 594 | xboxOneScriptCompiler: 0 595 | XboxOneOverrideIdentityName: 596 | vrEditorSettings: 597 | daydream: 598 | daydreamIconForeground: {fileID: 0} 599 | daydreamIconBackground: {fileID: 0} 600 | cloudServicesEnabled: 601 | UNet: 1 602 | luminIcon: 603 | m_Name: 604 | m_ModelFolderPath: 605 | m_PortalFolderPath: 606 | luminCert: 607 | m_CertPath: 608 | m_PrivateKeyPath: 609 | luminIsChannelApp: 0 610 | luminVersion: 611 | m_VersionCode: 1 612 | m_VersionName: 613 | facebookSdkVersion: 7.9.4 614 | facebookAppId: 615 | facebookCookies: 1 616 | facebookLogging: 1 617 | facebookStatus: 1 618 | facebookXfbml: 0 619 | facebookFrictionlessRequests: 1 620 | apiCompatibilityLevel: 6 621 | cloudProjectId: 622 | framebufferDepthMemorylessMode: 0 623 | projectName: 624 | organizationId: 625 | cloudEnabled: 0 626 | enableNativePlatformBackendsForNewInputSystem: 0 627 | disableOldInputManagerSupport: 0 628 | legacyClampBlendShapeWeights: 0 629 | -------------------------------------------------------------------------------- /Assets/3DPhotos/Sample Scene/SampleScene.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 170076734} 41 | m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 0 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 10 58 | m_Resolution: 2 59 | m_BakeResolution: 10 60 | m_AtlasSize: 512 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_FinalGather: 0 70 | m_FinalGatherFiltering: 1 71 | m_FinalGatherRayCount: 256 72 | m_ReflectionCompression: 2 73 | m_MixedBakeMode: 2 74 | m_BakeBackend: 1 75 | m_PVRSampling: 1 76 | m_PVRDirectSampleCount: 32 77 | m_PVRSampleCount: 256 78 | m_PVRBounces: 2 79 | m_PVRFilterTypeDirect: 0 80 | m_PVRFilterTypeIndirect: 0 81 | m_PVRFilterTypeAO: 0 82 | m_PVRFilteringMode: 1 83 | m_PVRCulling: 1 84 | m_PVRFilteringGaussRadiusDirect: 1 85 | m_PVRFilteringGaussRadiusIndirect: 5 86 | m_PVRFilteringGaussRadiusAO: 2 87 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 88 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 89 | m_PVRFilteringAtrousPositionSigmaAO: 1 90 | m_ShowResolutionOverlay: 1 91 | m_LightingDataAsset: {fileID: 0} 92 | m_UseShadowmask: 1 93 | --- !u!196 &4 94 | NavMeshSettings: 95 | serializedVersion: 2 96 | m_ObjectHideFlags: 0 97 | m_BuildSettings: 98 | serializedVersion: 2 99 | agentTypeID: 0 100 | agentRadius: 0.5 101 | agentHeight: 2 102 | agentSlope: 45 103 | agentClimb: 0.4 104 | ledgeDropHeight: 0 105 | maxJumpAcrossDistance: 0 106 | minRegionArea: 2 107 | manualCellSize: 0 108 | cellSize: 0.16666667 109 | manualTileSize: 0 110 | tileSize: 256 111 | accuratePlacement: 0 112 | debug: 113 | m_Flags: 0 114 | m_NavMeshData: {fileID: 0} 115 | --- !u!1 &170076733 116 | GameObject: 117 | m_ObjectHideFlags: 0 118 | m_CorrespondingSourceObject: {fileID: 0} 119 | m_PrefabInstance: {fileID: 0} 120 | m_PrefabAsset: {fileID: 0} 121 | serializedVersion: 6 122 | m_Component: 123 | - component: {fileID: 170076735} 124 | - component: {fileID: 170076734} 125 | m_Layer: 0 126 | m_Name: Directional Light 127 | m_TagString: Untagged 128 | m_Icon: {fileID: 0} 129 | m_NavMeshLayer: 0 130 | m_StaticEditorFlags: 0 131 | m_IsActive: 1 132 | --- !u!108 &170076734 133 | Light: 134 | m_ObjectHideFlags: 0 135 | m_CorrespondingSourceObject: {fileID: 0} 136 | m_PrefabInstance: {fileID: 0} 137 | m_PrefabAsset: {fileID: 0} 138 | m_GameObject: {fileID: 170076733} 139 | m_Enabled: 1 140 | serializedVersion: 8 141 | m_Type: 1 142 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 143 | m_Intensity: 1 144 | m_Range: 10 145 | m_SpotAngle: 30 146 | m_CookieSize: 10 147 | m_Shadows: 148 | m_Type: 2 149 | m_Resolution: -1 150 | m_CustomResolution: -1 151 | m_Strength: 1 152 | m_Bias: 0.05 153 | m_NormalBias: 0.4 154 | m_NearPlane: 0.2 155 | m_Cookie: {fileID: 0} 156 | m_DrawHalo: 0 157 | m_Flare: {fileID: 0} 158 | m_RenderMode: 0 159 | m_CullingMask: 160 | serializedVersion: 2 161 | m_Bits: 4294967295 162 | m_Lightmapping: 1 163 | m_LightShadowCasterMode: 0 164 | m_AreaSize: {x: 1, y: 1} 165 | m_BounceIntensity: 1 166 | m_ColorTemperature: 6570 167 | m_UseColorTemperature: 0 168 | m_ShadowRadius: 0 169 | m_ShadowAngle: 0 170 | --- !u!4 &170076735 171 | Transform: 172 | m_ObjectHideFlags: 0 173 | m_CorrespondingSourceObject: {fileID: 0} 174 | m_PrefabInstance: {fileID: 0} 175 | m_PrefabAsset: {fileID: 0} 176 | m_GameObject: {fileID: 170076733} 177 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 178 | m_LocalPosition: {x: 0, y: 3, z: 0} 179 | m_LocalScale: {x: 1, y: 1, z: 1} 180 | m_Children: [] 181 | m_Father: {fileID: 0} 182 | m_RootOrder: 1 183 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 184 | --- !u!1 &449034923 185 | GameObject: 186 | m_ObjectHideFlags: 0 187 | m_CorrespondingSourceObject: {fileID: 0} 188 | m_PrefabInstance: {fileID: 0} 189 | m_PrefabAsset: {fileID: 0} 190 | serializedVersion: 6 191 | m_Component: 192 | - component: {fileID: 449034927} 193 | - component: {fileID: 449034926} 194 | - component: {fileID: 449034925} 195 | - component: {fileID: 449034924} 196 | m_Layer: 5 197 | m_Name: UI_Canvas 198 | m_TagString: Untagged 199 | m_Icon: {fileID: 0} 200 | m_NavMeshLayer: 0 201 | m_StaticEditorFlags: 0 202 | m_IsActive: 1 203 | --- !u!114 &449034924 204 | MonoBehaviour: 205 | m_ObjectHideFlags: 0 206 | m_CorrespondingSourceObject: {fileID: 0} 207 | m_PrefabInstance: {fileID: 0} 208 | m_PrefabAsset: {fileID: 0} 209 | m_GameObject: {fileID: 449034923} 210 | m_Enabled: 1 211 | m_EditorHideFlags: 0 212 | m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} 213 | m_Name: 214 | m_EditorClassIdentifier: 215 | m_IgnoreReversedGraphics: 1 216 | m_BlockingObjects: 0 217 | m_BlockingMask: 218 | serializedVersion: 2 219 | m_Bits: 4294967295 220 | --- !u!114 &449034925 221 | MonoBehaviour: 222 | m_ObjectHideFlags: 0 223 | m_CorrespondingSourceObject: {fileID: 0} 224 | m_PrefabInstance: {fileID: 0} 225 | m_PrefabAsset: {fileID: 0} 226 | m_GameObject: {fileID: 449034923} 227 | m_Enabled: 1 228 | m_EditorHideFlags: 0 229 | m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} 230 | m_Name: 231 | m_EditorClassIdentifier: 232 | m_UiScaleMode: 0 233 | m_ReferencePixelsPerUnit: 100 234 | m_ScaleFactor: 1 235 | m_ReferenceResolution: {x: 800, y: 600} 236 | m_ScreenMatchMode: 0 237 | m_MatchWidthOrHeight: 0 238 | m_PhysicalUnit: 3 239 | m_FallbackScreenDPI: 96 240 | m_DefaultSpriteDPI: 96 241 | m_DynamicPixelsPerUnit: 1 242 | --- !u!223 &449034926 243 | Canvas: 244 | m_ObjectHideFlags: 0 245 | m_CorrespondingSourceObject: {fileID: 0} 246 | m_PrefabInstance: {fileID: 0} 247 | m_PrefabAsset: {fileID: 0} 248 | m_GameObject: {fileID: 449034923} 249 | m_Enabled: 1 250 | serializedVersion: 3 251 | m_RenderMode: 0 252 | m_Camera: {fileID: 0} 253 | m_PlaneDistance: 100 254 | m_PixelPerfect: 0 255 | m_ReceivesEvents: 1 256 | m_OverrideSorting: 0 257 | m_OverridePixelPerfect: 0 258 | m_SortingBucketNormalizedSize: 0 259 | m_AdditionalShaderChannelsFlag: 0 260 | m_SortingLayerID: 0 261 | m_SortingOrder: 0 262 | m_TargetDisplay: 0 263 | --- !u!224 &449034927 264 | RectTransform: 265 | m_ObjectHideFlags: 0 266 | m_CorrespondingSourceObject: {fileID: 0} 267 | m_PrefabInstance: {fileID: 0} 268 | m_PrefabAsset: {fileID: 0} 269 | m_GameObject: {fileID: 449034923} 270 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 271 | m_LocalPosition: {x: 0, y: 0, z: 0} 272 | m_LocalScale: {x: 0, y: 0, z: 0} 273 | m_Children: 274 | - {fileID: 862334374} 275 | m_Father: {fileID: 0} 276 | m_RootOrder: 5 277 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 278 | m_AnchorMin: {x: 0, y: 0} 279 | m_AnchorMax: {x: 0, y: 0} 280 | m_AnchoredPosition: {x: 0, y: 0} 281 | m_SizeDelta: {x: 0, y: 0} 282 | m_Pivot: {x: 0, y: 0} 283 | --- !u!1 &524547550 284 | GameObject: 285 | m_ObjectHideFlags: 0 286 | m_CorrespondingSourceObject: {fileID: 0} 287 | m_PrefabInstance: {fileID: 0} 288 | m_PrefabAsset: {fileID: 0} 289 | serializedVersion: 6 290 | m_Component: 291 | - component: {fileID: 524547553} 292 | - component: {fileID: 524547552} 293 | - component: {fileID: 524547551} 294 | m_Layer: 0 295 | m_Name: EventSystem 296 | m_TagString: Untagged 297 | m_Icon: {fileID: 0} 298 | m_NavMeshLayer: 0 299 | m_StaticEditorFlags: 0 300 | m_IsActive: 1 301 | --- !u!114 &524547551 302 | MonoBehaviour: 303 | m_ObjectHideFlags: 0 304 | m_CorrespondingSourceObject: {fileID: 0} 305 | m_PrefabInstance: {fileID: 0} 306 | m_PrefabAsset: {fileID: 0} 307 | m_GameObject: {fileID: 524547550} 308 | m_Enabled: 1 309 | m_EditorHideFlags: 0 310 | m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} 311 | m_Name: 312 | m_EditorClassIdentifier: 313 | m_HorizontalAxis: Horizontal 314 | m_VerticalAxis: Vertical 315 | m_SubmitButton: Submit 316 | m_CancelButton: Cancel 317 | m_InputActionsPerSecond: 10 318 | m_RepeatDelay: 0.5 319 | m_ForceModuleActive: 0 320 | --- !u!114 &524547552 321 | MonoBehaviour: 322 | m_ObjectHideFlags: 0 323 | m_CorrespondingSourceObject: {fileID: 0} 324 | m_PrefabInstance: {fileID: 0} 325 | m_PrefabAsset: {fileID: 0} 326 | m_GameObject: {fileID: 524547550} 327 | m_Enabled: 1 328 | m_EditorHideFlags: 0 329 | m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} 330 | m_Name: 331 | m_EditorClassIdentifier: 332 | m_FirstSelected: {fileID: 0} 333 | m_sendNavigationEvents: 1 334 | m_DragThreshold: 10 335 | --- !u!4 &524547553 336 | Transform: 337 | m_ObjectHideFlags: 0 338 | m_CorrespondingSourceObject: {fileID: 0} 339 | m_PrefabInstance: {fileID: 0} 340 | m_PrefabAsset: {fileID: 0} 341 | m_GameObject: {fileID: 524547550} 342 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 343 | m_LocalPosition: {x: 0, y: 0, z: 0} 344 | m_LocalScale: {x: 1, y: 1, z: 1} 345 | m_Children: [] 346 | m_Father: {fileID: 0} 347 | m_RootOrder: 6 348 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 349 | --- !u!1 &534669902 350 | GameObject: 351 | m_ObjectHideFlags: 0 352 | m_CorrespondingSourceObject: {fileID: 0} 353 | m_PrefabInstance: {fileID: 0} 354 | m_PrefabAsset: {fileID: 0} 355 | serializedVersion: 6 356 | m_Component: 357 | - component: {fileID: 534669905} 358 | - component: {fileID: 534669904} 359 | - component: {fileID: 534669903} 360 | m_Layer: 0 361 | m_Name: Main Camera 362 | m_TagString: MainCamera 363 | m_Icon: {fileID: 0} 364 | m_NavMeshLayer: 0 365 | m_StaticEditorFlags: 0 366 | m_IsActive: 1 367 | --- !u!81 &534669903 368 | AudioListener: 369 | m_ObjectHideFlags: 0 370 | m_CorrespondingSourceObject: {fileID: 0} 371 | m_PrefabInstance: {fileID: 0} 372 | m_PrefabAsset: {fileID: 0} 373 | m_GameObject: {fileID: 534669902} 374 | m_Enabled: 1 375 | --- !u!20 &534669904 376 | Camera: 377 | m_ObjectHideFlags: 0 378 | m_CorrespondingSourceObject: {fileID: 0} 379 | m_PrefabInstance: {fileID: 0} 380 | m_PrefabAsset: {fileID: 0} 381 | m_GameObject: {fileID: 534669902} 382 | m_Enabled: 1 383 | serializedVersion: 2 384 | m_ClearFlags: 1 385 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 386 | m_projectionMatrixMode: 1 387 | m_SensorSize: {x: 36, y: 24} 388 | m_LensShift: {x: 0, y: 0} 389 | m_GateFitMode: 2 390 | m_FocalLength: 50 391 | m_NormalizedViewPortRect: 392 | serializedVersion: 2 393 | x: 0 394 | y: 0 395 | width: 1 396 | height: 1 397 | near clip plane: 0.3 398 | far clip plane: 1000 399 | field of view: 60 400 | orthographic: 0 401 | orthographic size: 5 402 | m_Depth: -1 403 | m_CullingMask: 404 | serializedVersion: 2 405 | m_Bits: 4294967295 406 | m_RenderingPath: -1 407 | m_TargetTexture: {fileID: 0} 408 | m_TargetDisplay: 0 409 | m_TargetEye: 3 410 | m_HDR: 1 411 | m_AllowMSAA: 1 412 | m_AllowDynamicResolution: 0 413 | m_ForceIntoRT: 0 414 | m_OcclusionCulling: 1 415 | m_StereoConvergence: 10 416 | m_StereoSeparation: 0.022 417 | --- !u!4 &534669905 418 | Transform: 419 | m_ObjectHideFlags: 0 420 | m_CorrespondingSourceObject: {fileID: 0} 421 | m_PrefabInstance: {fileID: 0} 422 | m_PrefabAsset: {fileID: 0} 423 | m_GameObject: {fileID: 534669902} 424 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 425 | m_LocalPosition: {x: 0, y: 1, z: -10} 426 | m_LocalScale: {x: 1, y: 1, z: 1} 427 | m_Children: [] 428 | m_Father: {fileID: 0} 429 | m_RootOrder: 0 430 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 431 | --- !u!1 &762449935 432 | GameObject: 433 | m_ObjectHideFlags: 0 434 | m_CorrespondingSourceObject: {fileID: 0} 435 | m_PrefabInstance: {fileID: 0} 436 | m_PrefabAsset: {fileID: 0} 437 | serializedVersion: 6 438 | m_Component: 439 | - component: {fileID: 762449939} 440 | - component: {fileID: 762449938} 441 | - component: {fileID: 762449937} 442 | - component: {fileID: 762449936} 443 | m_Layer: 0 444 | m_Name: Cube 445 | m_TagString: Untagged 446 | m_Icon: {fileID: 0} 447 | m_NavMeshLayer: 0 448 | m_StaticEditorFlags: 0 449 | m_IsActive: 1 450 | --- !u!65 &762449936 451 | BoxCollider: 452 | m_ObjectHideFlags: 0 453 | m_CorrespondingSourceObject: {fileID: 0} 454 | m_PrefabInstance: {fileID: 0} 455 | m_PrefabAsset: {fileID: 0} 456 | m_GameObject: {fileID: 762449935} 457 | m_Material: {fileID: 0} 458 | m_IsTrigger: 0 459 | m_Enabled: 1 460 | serializedVersion: 2 461 | m_Size: {x: 1, y: 1, z: 1} 462 | m_Center: {x: 0, y: 0, z: 0} 463 | --- !u!23 &762449937 464 | MeshRenderer: 465 | m_ObjectHideFlags: 0 466 | m_CorrespondingSourceObject: {fileID: 0} 467 | m_PrefabInstance: {fileID: 0} 468 | m_PrefabAsset: {fileID: 0} 469 | m_GameObject: {fileID: 762449935} 470 | m_Enabled: 1 471 | m_CastShadows: 1 472 | m_ReceiveShadows: 1 473 | m_DynamicOccludee: 1 474 | m_MotionVectors: 1 475 | m_LightProbeUsage: 1 476 | m_ReflectionProbeUsage: 1 477 | m_RenderingLayerMask: 1 478 | m_RendererPriority: 0 479 | m_Materials: 480 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 481 | m_StaticBatchInfo: 482 | firstSubMesh: 0 483 | subMeshCount: 0 484 | m_StaticBatchRoot: {fileID: 0} 485 | m_ProbeAnchor: {fileID: 0} 486 | m_LightProbeVolumeOverride: {fileID: 0} 487 | m_ScaleInLightmap: 1 488 | m_PreserveUVs: 0 489 | m_IgnoreNormalsForChartDetection: 0 490 | m_ImportantGI: 0 491 | m_StitchLightmapSeams: 0 492 | m_SelectedEditorRenderState: 3 493 | m_MinimumChartSize: 4 494 | m_AutoUVMaxDistance: 0.5 495 | m_AutoUVMaxAngle: 89 496 | m_LightmapParameters: {fileID: 0} 497 | m_SortingLayerID: 0 498 | m_SortingLayer: 0 499 | m_SortingOrder: 0 500 | --- !u!33 &762449938 501 | MeshFilter: 502 | m_ObjectHideFlags: 0 503 | m_CorrespondingSourceObject: {fileID: 0} 504 | m_PrefabInstance: {fileID: 0} 505 | m_PrefabAsset: {fileID: 0} 506 | m_GameObject: {fileID: 762449935} 507 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 508 | --- !u!4 &762449939 509 | Transform: 510 | m_ObjectHideFlags: 0 511 | m_CorrespondingSourceObject: {fileID: 0} 512 | m_PrefabInstance: {fileID: 0} 513 | m_PrefabAsset: {fileID: 0} 514 | m_GameObject: {fileID: 762449935} 515 | m_LocalRotation: {x: 0.10056289, y: 0.45405024, z: 0.19143306, w: 0.86433727} 516 | m_LocalPosition: {x: 0, y: 0, z: 76.45} 517 | m_LocalScale: {x: 14.652048, y: 14.652048, z: 14.652048} 518 | m_Children: [] 519 | m_Father: {fileID: 0} 520 | m_RootOrder: 2 521 | m_LocalEulerAnglesHint: {x: 0, y: 55.427002, z: 24.977001} 522 | --- !u!1 &862334373 523 | GameObject: 524 | m_ObjectHideFlags: 0 525 | m_CorrespondingSourceObject: {fileID: 0} 526 | m_PrefabInstance: {fileID: 0} 527 | m_PrefabAsset: {fileID: 0} 528 | serializedVersion: 6 529 | m_Component: 530 | - component: {fileID: 862334374} 531 | - component: {fileID: 862334376} 532 | - component: {fileID: 862334375} 533 | m_Layer: 5 534 | m_Name: Text 535 | m_TagString: Untagged 536 | m_Icon: {fileID: 0} 537 | m_NavMeshLayer: 0 538 | m_StaticEditorFlags: 0 539 | m_IsActive: 1 540 | --- !u!224 &862334374 541 | RectTransform: 542 | m_ObjectHideFlags: 0 543 | m_CorrespondingSourceObject: {fileID: 0} 544 | m_PrefabInstance: {fileID: 0} 545 | m_PrefabAsset: {fileID: 0} 546 | m_GameObject: {fileID: 862334373} 547 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 548 | m_LocalPosition: {x: 0, y: 0, z: 0} 549 | m_LocalScale: {x: 1, y: 1, z: 1} 550 | m_Children: [] 551 | m_Father: {fileID: 449034927} 552 | m_RootOrder: 0 553 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 554 | m_AnchorMin: {x: 0, y: 0} 555 | m_AnchorMax: {x: 0, y: 0} 556 | m_AnchoredPosition: {x: 21.77, y: 0} 557 | m_SizeDelta: {x: 974.9, y: 135.4} 558 | m_Pivot: {x: 0, y: 0} 559 | --- !u!114 &862334375 560 | MonoBehaviour: 561 | m_ObjectHideFlags: 0 562 | m_CorrespondingSourceObject: {fileID: 0} 563 | m_PrefabInstance: {fileID: 0} 564 | m_PrefabAsset: {fileID: 0} 565 | m_GameObject: {fileID: 862334373} 566 | m_Enabled: 1 567 | m_EditorHideFlags: 0 568 | m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} 569 | m_Name: 570 | m_EditorClassIdentifier: 571 | m_Material: {fileID: 0} 572 | m_Color: {r: 0, g: 0.96084595, b: 1, a: 1} 573 | m_RaycastTarget: 1 574 | m_OnCullStateChanged: 575 | m_PersistentCalls: 576 | m_Calls: [] 577 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 578 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 579 | m_FontData: 580 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 581 | m_FontSize: 31 582 | m_FontStyle: 0 583 | m_BestFit: 0 584 | m_MinSize: 2 585 | m_MaxSize: 40 586 | m_Alignment: 0 587 | m_AlignByGeometry: 0 588 | m_RichText: 1 589 | m_HorizontalOverflow: 0 590 | m_VerticalOverflow: 0 591 | m_LineSpacing: 1 592 | m_Text: "Press P to take a 3D Photo from the point of view of the Main Camera.\nYou 593 | will find two PNG images in the main folder of your project. \nIf you drag them 594 | to Facebook, you will publish a 3D Photo" 595 | --- !u!222 &862334376 596 | CanvasRenderer: 597 | m_ObjectHideFlags: 0 598 | m_CorrespondingSourceObject: {fileID: 0} 599 | m_PrefabInstance: {fileID: 0} 600 | m_PrefabAsset: {fileID: 0} 601 | m_GameObject: {fileID: 862334373} 602 | m_CullTransparentMesh: 0 603 | --- !u!1 &919065273 604 | GameObject: 605 | m_ObjectHideFlags: 0 606 | m_CorrespondingSourceObject: {fileID: 0} 607 | m_PrefabInstance: {fileID: 0} 608 | m_PrefabAsset: {fileID: 0} 609 | serializedVersion: 6 610 | m_Component: 611 | - component: {fileID: 919065277} 612 | - component: {fileID: 919065276} 613 | - component: {fileID: 919065275} 614 | - component: {fileID: 919065274} 615 | m_Layer: 0 616 | m_Name: Sphere 617 | m_TagString: Untagged 618 | m_Icon: {fileID: 0} 619 | m_NavMeshLayer: 0 620 | m_StaticEditorFlags: 0 621 | m_IsActive: 1 622 | --- !u!135 &919065274 623 | SphereCollider: 624 | m_ObjectHideFlags: 0 625 | m_CorrespondingSourceObject: {fileID: 0} 626 | m_PrefabInstance: {fileID: 0} 627 | m_PrefabAsset: {fileID: 0} 628 | m_GameObject: {fileID: 919065273} 629 | m_Material: {fileID: 0} 630 | m_IsTrigger: 0 631 | m_Enabled: 1 632 | serializedVersion: 2 633 | m_Radius: 0.5 634 | m_Center: {x: 0, y: 0, z: 0} 635 | --- !u!23 &919065275 636 | MeshRenderer: 637 | m_ObjectHideFlags: 0 638 | m_CorrespondingSourceObject: {fileID: 0} 639 | m_PrefabInstance: {fileID: 0} 640 | m_PrefabAsset: {fileID: 0} 641 | m_GameObject: {fileID: 919065273} 642 | m_Enabled: 1 643 | m_CastShadows: 1 644 | m_ReceiveShadows: 1 645 | m_DynamicOccludee: 1 646 | m_MotionVectors: 1 647 | m_LightProbeUsage: 1 648 | m_ReflectionProbeUsage: 1 649 | m_RenderingLayerMask: 1 650 | m_RendererPriority: 0 651 | m_Materials: 652 | - {fileID: 2100000, guid: 6d1a3990493bc1e40a7f3eb87b0c864d, type: 2} 653 | m_StaticBatchInfo: 654 | firstSubMesh: 0 655 | subMeshCount: 0 656 | m_StaticBatchRoot: {fileID: 0} 657 | m_ProbeAnchor: {fileID: 0} 658 | m_LightProbeVolumeOverride: {fileID: 0} 659 | m_ScaleInLightmap: 1 660 | m_PreserveUVs: 0 661 | m_IgnoreNormalsForChartDetection: 0 662 | m_ImportantGI: 0 663 | m_StitchLightmapSeams: 0 664 | m_SelectedEditorRenderState: 3 665 | m_MinimumChartSize: 4 666 | m_AutoUVMaxDistance: 0.5 667 | m_AutoUVMaxAngle: 89 668 | m_LightmapParameters: {fileID: 0} 669 | m_SortingLayerID: 0 670 | m_SortingLayer: 0 671 | m_SortingOrder: 0 672 | --- !u!33 &919065276 673 | MeshFilter: 674 | m_ObjectHideFlags: 0 675 | m_CorrespondingSourceObject: {fileID: 0} 676 | m_PrefabInstance: {fileID: 0} 677 | m_PrefabAsset: {fileID: 0} 678 | m_GameObject: {fileID: 919065273} 679 | m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} 680 | --- !u!4 &919065277 681 | Transform: 682 | m_ObjectHideFlags: 0 683 | m_CorrespondingSourceObject: {fileID: 0} 684 | m_PrefabInstance: {fileID: 0} 685 | m_PrefabAsset: {fileID: 0} 686 | m_GameObject: {fileID: 919065273} 687 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 688 | m_LocalPosition: {x: 0, y: 0, z: -5.19} 689 | m_LocalScale: {x: 1, y: 1, z: 1} 690 | m_Children: [] 691 | m_Father: {fileID: 0} 692 | m_RootOrder: 3 693 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 694 | --- !u!1001 &3378097855339000238 695 | PrefabInstance: 696 | m_ObjectHideFlags: 0 697 | serializedVersion: 2 698 | m_Modification: 699 | m_TransformParent: {fileID: 0} 700 | m_Modifications: 701 | - target: {fileID: 3378097855327244806, guid: 5040451c6193bfa45894f72dc99892b4, 702 | type: 3} 703 | propertyPath: m_Name 704 | value: 3DPhotoCamera 705 | objectReference: {fileID: 0} 706 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 707 | type: 3} 708 | propertyPath: m_LocalPosition.x 709 | value: 0 710 | objectReference: {fileID: 0} 711 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 712 | type: 3} 713 | propertyPath: m_LocalPosition.y 714 | value: 0 715 | objectReference: {fileID: 0} 716 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 717 | type: 3} 718 | propertyPath: m_LocalPosition.z 719 | value: 0 720 | objectReference: {fileID: 0} 721 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 722 | type: 3} 723 | propertyPath: m_LocalRotation.x 724 | value: 0 725 | objectReference: {fileID: 0} 726 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 727 | type: 3} 728 | propertyPath: m_LocalRotation.y 729 | value: 0 730 | objectReference: {fileID: 0} 731 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 732 | type: 3} 733 | propertyPath: m_LocalRotation.z 734 | value: 0 735 | objectReference: {fileID: 0} 736 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 737 | type: 3} 738 | propertyPath: m_LocalRotation.w 739 | value: 1 740 | objectReference: {fileID: 0} 741 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 742 | type: 3} 743 | propertyPath: m_RootOrder 744 | value: 4 745 | objectReference: {fileID: 0} 746 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 747 | type: 3} 748 | propertyPath: m_LocalEulerAnglesHint.x 749 | value: 0 750 | objectReference: {fileID: 0} 751 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 752 | type: 3} 753 | propertyPath: m_LocalEulerAnglesHint.y 754 | value: 0 755 | objectReference: {fileID: 0} 756 | - target: {fileID: 3378097855327244802, guid: 5040451c6193bfa45894f72dc99892b4, 757 | type: 3} 758 | propertyPath: m_LocalEulerAnglesHint.z 759 | value: 0 760 | objectReference: {fileID: 0} 761 | - target: {fileID: 3378097855327244807, guid: 5040451c6193bfa45894f72dc99892b4, 762 | type: 3} 763 | propertyPath: ReferenceCamera 764 | value: 765 | objectReference: {fileID: 534669904} 766 | m_RemovedComponents: [] 767 | m_SourcePrefab: {fileID: 100100000, guid: 5040451c6193bfa45894f72dc99892b4, type: 3} 768 | --------------------------------------------------------------------------------