├── .gitignore ├── Assets ├── Projector.meta ├── Projector │ ├── Audience View.renderTexture │ ├── Audience View.renderTexture.meta │ ├── Projector.mat │ ├── Projector.mat.meta │ ├── Projector.shader │ └── Projector.shader.meta ├── Scenes.meta ├── Scenes │ ├── Box.unity │ ├── Box.unity.meta │ ├── Test Pattern.unity │ └── Test Pattern.unity.meta ├── Scripts.meta ├── Scripts │ ├── CubeAnimation.cs │ └── CubeAnimation.cs.meta ├── Test Images.meta └── Test Images │ ├── FOV.jpg │ ├── FOV.jpg.meta │ ├── FOV.mat │ ├── FOV.mat.meta │ ├── Test Pattern.mat │ ├── Test Pattern.mat.meta │ ├── Test Pattern.png │ └── Test Pattern.png.meta ├── ProjectSettings ├── AudioManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshLayers.asset ├── NetworkManager.asset ├── ProjectSettings.asset ├── QualitySettings.asset ├── TagManager.asset └── TimeManager.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | 5 | # Autogenerated VS/MD solution and project files 6 | *.csproj 7 | *.unityproj 8 | *.sln 9 | *.pidb 10 | *.userprefs 11 | 12 | .DS_Store 13 | -------------------------------------------------------------------------------- /Assets/Projector.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9523639e1a38d4968bf801ea04391de3 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/Projector/Audience View.renderTexture: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!84 &8400000 4 | RenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: Audience View 9 | m_Width: 2048 10 | m_Height: 2048 11 | m_AntiAliasing: 1 12 | m_DepthFormat: 2 13 | m_ColorFormat: 0 14 | m_MipMap: 0 15 | m_SRGB: 0 16 | m_TextureSettings: 17 | m_FilterMode: 1 18 | m_Aniso: 0 19 | m_MipBias: 0 20 | m_WrapMode: 1 21 | -------------------------------------------------------------------------------- /Assets/Projector/Audience View.renderTexture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e4aabd2d23864668a632073dca55704 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Projector/Projector.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 3 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Projector 10 | m_Shader: {fileID: 4800000, guid: d154be6b9f31e44739ab9929d45d344b, type: 3} 11 | m_ShaderKeywords: [] 12 | m_SavedProperties: 13 | serializedVersion: 2 14 | m_TexEnvs: 15 | data: 16 | first: 17 | name: _MainTex 18 | second: 19 | m_Texture: {fileID: 8400000, guid: 3e4aabd2d23864668a632073dca55704, type: 2} 20 | m_Scale: {x: 1, y: 1} 21 | m_Offset: {x: 0, y: 0} 22 | m_Floats: {} 23 | m_Colors: 24 | data: 25 | first: 26 | name: _Color 27 | second: {r: 1, g: 1, b: 1, a: 1} 28 | -------------------------------------------------------------------------------- /Assets/Projector/Projector.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3dc3a6844b1414dfb99b6dc39b27f309 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Projector/Projector.shader: -------------------------------------------------------------------------------- 1 | Shader "Custom/Projector" { 2 | Properties { 3 | _MainTex ("Base (RGB)", 2D) = "white" {} 4 | } 5 | SubShader { 6 | Tags { "RenderType"="Opaque" } 7 | Pass { 8 | Offset -1, -1 9 | CGPROGRAM 10 | 11 | #pragma vertex vert 12 | #pragma fragment frag 13 | #include "UnityCG.cginc" 14 | 15 | sampler2D _MainTex; 16 | float4x4 _Projector; 17 | 18 | struct v2f { 19 | float4 pos : SV_POSITION; 20 | float2 uv : TEXCOORD0; 21 | }; 22 | 23 | float4 _MainTex_ST; 24 | 25 | v2f vert (appdata_base v) 26 | { 27 | v2f o; 28 | o.pos = mul (UNITY_MATRIX_MVP, v.vertex); 29 | float4 p = mul(_Projector, v.vertex); 30 | o.uv = p.xy / p.w; 31 | return o; 32 | } 33 | 34 | half4 frag (v2f i) : COLOR 35 | { 36 | return tex2D (_MainTex, i.uv); 37 | } 38 | 39 | ENDCG 40 | } 41 | } 42 | FallBack Off 43 | } -------------------------------------------------------------------------------- /Assets/Projector/Projector.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d154be6b9f31e44739ab9929d45d344b 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 515e3817394444d6eb81ae3346121bb6 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/Scenes/Box.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | SceneSettings: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_QueryMode: 1 8 | m_PVSObjectsArray: [] 9 | m_PVSPortalsArray: [] 10 | m_OcclusionBakeSettings: 11 | viewCellSize: 1 12 | bakeMode: 2 13 | memoryUsage: 10485760 14 | --- !u!104 &2 15 | RenderSettings: 16 | m_Fog: 0 17 | m_FogColor: {r: .5, g: .5, b: .5, a: 1} 18 | m_FogMode: 3 19 | m_FogDensity: .00999999978 20 | m_LinearFogStart: 0 21 | m_LinearFogEnd: 300 22 | m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} 23 | m_SkyboxMaterial: {fileID: 0} 24 | m_HaloStrength: .5 25 | m_FlareStrength: 1 26 | m_HaloTexture: {fileID: 0} 27 | m_SpotCookie: {fileID: 0} 28 | m_ObjectHideFlags: 0 29 | --- !u!127 &3 30 | LevelGameManager: 31 | m_ObjectHideFlags: 0 32 | --- !u!157 &4 33 | LightmapSettings: 34 | m_ObjectHideFlags: 0 35 | m_LightProbes: {fileID: 0} 36 | m_Lightmaps: [] 37 | m_LightmapsMode: 1 38 | m_BakedColorSpace: 0 39 | m_UseDualLightmapsInForward: 0 40 | m_LightmapEditorSettings: 41 | m_Resolution: 50 42 | m_LastUsedResolution: 0 43 | m_TextureWidth: 1024 44 | m_TextureHeight: 1024 45 | m_BounceBoost: 1 46 | m_BounceIntensity: 1 47 | m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} 48 | m_SkyLightIntensity: 0 49 | m_Quality: 0 50 | m_Bounces: 1 51 | m_FinalGatherRays: 1000 52 | m_FinalGatherContrastThreshold: .0500000007 53 | m_FinalGatherGradientThreshold: 0 54 | m_FinalGatherInterpolationPoints: 15 55 | m_AOAmount: 0 56 | m_AOMaxDistance: .100000001 57 | m_AOContrast: 1 58 | m_LODSurfaceMappingDistance: 1 59 | m_Padding: 0 60 | m_TextureCompression: 0 61 | m_LockAtlas: 0 62 | --- !u!196 &5 63 | NavMeshSettings: 64 | m_ObjectHideFlags: 0 65 | m_BuildSettings: 66 | agentRadius: .5 67 | agentHeight: 2 68 | agentSlope: 45 69 | agentClimb: .400000006 70 | ledgeDropHeight: 0 71 | maxJumpAcrossDistance: 0 72 | accuratePlacement: 0 73 | minRegionArea: 2 74 | widthInaccuracy: 16.666666 75 | heightInaccuracy: 10 76 | m_NavMesh: {fileID: 0} 77 | --- !u!1 &33513392 78 | GameObject: 79 | m_ObjectHideFlags: 0 80 | m_PrefabParentObject: {fileID: 100008, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 81 | m_PrefabInternal: {fileID: 0} 82 | serializedVersion: 4 83 | m_Component: 84 | - 4: {fileID: 33513393} 85 | - 33: {fileID: 33513395} 86 | - 23: {fileID: 33513394} 87 | m_Layer: 9 88 | m_Name: Cube 89 | m_TagString: Untagged 90 | m_Icon: {fileID: 0} 91 | m_NavMeshLayer: 0 92 | m_StaticEditorFlags: 0 93 | m_IsActive: 1 94 | --- !u!4 &33513393 95 | Transform: 96 | m_ObjectHideFlags: 0 97 | m_PrefabParentObject: {fileID: 400008, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 98 | m_PrefabInternal: {fileID: 0} 99 | m_GameObject: {fileID: 33513392} 100 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 101 | m_LocalPosition: {x: 15, y: -18.5, z: 0} 102 | m_LocalScale: {x: .5, y: .5, z: 20} 103 | m_Children: [] 104 | m_Father: {fileID: 1768188154} 105 | --- !u!23 &33513394 106 | Renderer: 107 | m_ObjectHideFlags: 0 108 | m_PrefabParentObject: {fileID: 2300008, guid: 3ef52659d5f9c47099d240f9e6d10916, 109 | type: 2} 110 | m_PrefabInternal: {fileID: 0} 111 | m_GameObject: {fileID: 33513392} 112 | m_Enabled: 1 113 | m_CastShadows: 1 114 | m_ReceiveShadows: 1 115 | m_LightmapIndex: 255 116 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 117 | m_Materials: 118 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 119 | m_SubsetIndices: 120 | m_StaticBatchRoot: {fileID: 0} 121 | m_UseLightProbes: 0 122 | m_LightProbeAnchor: {fileID: 0} 123 | m_ScaleInLightmap: 1 124 | --- !u!33 &33513395 125 | MeshFilter: 126 | m_ObjectHideFlags: 0 127 | m_PrefabParentObject: {fileID: 3300008, guid: 3ef52659d5f9c47099d240f9e6d10916, 128 | type: 2} 129 | m_PrefabInternal: {fileID: 0} 130 | m_GameObject: {fileID: 33513392} 131 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 132 | --- !u!1 &105540076 133 | GameObject: 134 | m_ObjectHideFlags: 0 135 | m_PrefabParentObject: {fileID: 100026, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 136 | m_PrefabInternal: {fileID: 0} 137 | serializedVersion: 4 138 | m_Component: 139 | - 4: {fileID: 105540077} 140 | - 33: {fileID: 105540079} 141 | - 23: {fileID: 105540078} 142 | m_Layer: 9 143 | m_Name: Cube 144 | m_TagString: Untagged 145 | m_Icon: {fileID: 0} 146 | m_NavMeshLayer: 0 147 | m_StaticEditorFlags: 0 148 | m_IsActive: 1 149 | --- !u!4 &105540077 150 | Transform: 151 | m_ObjectHideFlags: 0 152 | m_PrefabParentObject: {fileID: 400026, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 153 | m_PrefabInternal: {fileID: 0} 154 | m_GameObject: {fileID: 105540076} 155 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 156 | m_LocalPosition: {x: -15, y: 18.5, z: 0} 157 | m_LocalScale: {x: .5, y: .5, z: 20} 158 | m_Children: [] 159 | m_Father: {fileID: 1768188154} 160 | --- !u!23 &105540078 161 | Renderer: 162 | m_ObjectHideFlags: 0 163 | m_PrefabParentObject: {fileID: 2300024, guid: 3ef52659d5f9c47099d240f9e6d10916, 164 | type: 2} 165 | m_PrefabInternal: {fileID: 0} 166 | m_GameObject: {fileID: 105540076} 167 | m_Enabled: 1 168 | m_CastShadows: 1 169 | m_ReceiveShadows: 1 170 | m_LightmapIndex: 255 171 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 172 | m_Materials: 173 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 174 | m_SubsetIndices: 175 | m_StaticBatchRoot: {fileID: 0} 176 | m_UseLightProbes: 0 177 | m_LightProbeAnchor: {fileID: 0} 178 | m_ScaleInLightmap: 1 179 | --- !u!33 &105540079 180 | MeshFilter: 181 | m_ObjectHideFlags: 0 182 | m_PrefabParentObject: {fileID: 3300024, guid: 3ef52659d5f9c47099d240f9e6d10916, 183 | type: 2} 184 | m_PrefabInternal: {fileID: 0} 185 | m_GameObject: {fileID: 105540076} 186 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 187 | --- !u!1 &303933626 188 | GameObject: 189 | m_ObjectHideFlags: 0 190 | m_PrefabParentObject: {fileID: 100000, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 191 | m_PrefabInternal: {fileID: 0} 192 | serializedVersion: 4 193 | m_Component: 194 | - 4: {fileID: 303933627} 195 | - 33: {fileID: 303933629} 196 | - 23: {fileID: 303933628} 197 | m_Layer: 9 198 | m_Name: Cube 199 | m_TagString: Untagged 200 | m_Icon: {fileID: 0} 201 | m_NavMeshLayer: 0 202 | m_StaticEditorFlags: 0 203 | m_IsActive: 1 204 | --- !u!4 &303933627 205 | Transform: 206 | m_ObjectHideFlags: 0 207 | m_PrefabParentObject: {fileID: 400000, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 208 | m_PrefabInternal: {fileID: 0} 209 | m_GameObject: {fileID: 303933626} 210 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 211 | m_LocalPosition: {x: 0, y: 18.5, z: -9.5} 212 | m_LocalScale: {x: 31, y: .5, z: .5} 213 | m_Children: [] 214 | m_Father: {fileID: 1768188154} 215 | --- !u!23 &303933628 216 | Renderer: 217 | m_ObjectHideFlags: 0 218 | m_PrefabParentObject: {fileID: 2300000, guid: 3ef52659d5f9c47099d240f9e6d10916, 219 | type: 2} 220 | m_PrefabInternal: {fileID: 0} 221 | m_GameObject: {fileID: 303933626} 222 | m_Enabled: 1 223 | m_CastShadows: 1 224 | m_ReceiveShadows: 1 225 | m_LightmapIndex: 255 226 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 227 | m_Materials: 228 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 229 | m_SubsetIndices: 230 | m_StaticBatchRoot: {fileID: 0} 231 | m_UseLightProbes: 0 232 | m_LightProbeAnchor: {fileID: 0} 233 | m_ScaleInLightmap: 1 234 | --- !u!33 &303933629 235 | MeshFilter: 236 | m_ObjectHideFlags: 0 237 | m_PrefabParentObject: {fileID: 3300000, guid: 3ef52659d5f9c47099d240f9e6d10916, 238 | type: 2} 239 | m_PrefabInternal: {fileID: 0} 240 | m_GameObject: {fileID: 303933626} 241 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 242 | --- !u!1 &364242266 243 | GameObject: 244 | m_ObjectHideFlags: 0 245 | m_PrefabParentObject: {fileID: 100006, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 246 | m_PrefabInternal: {fileID: 0} 247 | serializedVersion: 4 248 | m_Component: 249 | - 4: {fileID: 364242267} 250 | - 33: {fileID: 364242269} 251 | - 23: {fileID: 364242268} 252 | m_Layer: 9 253 | m_Name: Cube 254 | m_TagString: Untagged 255 | m_Icon: {fileID: 0} 256 | m_NavMeshLayer: 0 257 | m_StaticEditorFlags: 0 258 | m_IsActive: 1 259 | --- !u!4 &364242267 260 | Transform: 261 | m_ObjectHideFlags: 0 262 | m_PrefabParentObject: {fileID: 400006, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 263 | m_PrefabInternal: {fileID: 0} 264 | m_GameObject: {fileID: 364242266} 265 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 266 | m_LocalPosition: {x: 0, y: -18.5, z: 9.5} 267 | m_LocalScale: {x: 31, y: .5, z: .5} 268 | m_Children: [] 269 | m_Father: {fileID: 1768188154} 270 | --- !u!23 &364242268 271 | Renderer: 272 | m_ObjectHideFlags: 0 273 | m_PrefabParentObject: {fileID: 2300006, guid: 3ef52659d5f9c47099d240f9e6d10916, 274 | type: 2} 275 | m_PrefabInternal: {fileID: 0} 276 | m_GameObject: {fileID: 364242266} 277 | m_Enabled: 1 278 | m_CastShadows: 1 279 | m_ReceiveShadows: 1 280 | m_LightmapIndex: 255 281 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 282 | m_Materials: 283 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 284 | m_SubsetIndices: 285 | m_StaticBatchRoot: {fileID: 0} 286 | m_UseLightProbes: 0 287 | m_LightProbeAnchor: {fileID: 0} 288 | m_ScaleInLightmap: 1 289 | --- !u!33 &364242269 290 | MeshFilter: 291 | m_ObjectHideFlags: 0 292 | m_PrefabParentObject: {fileID: 3300006, guid: 3ef52659d5f9c47099d240f9e6d10916, 293 | type: 2} 294 | m_PrefabInternal: {fileID: 0} 295 | m_GameObject: {fileID: 364242266} 296 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 297 | --- !u!1 &481068544 298 | GameObject: 299 | m_ObjectHideFlags: 0 300 | m_PrefabParentObject: {fileID: 0} 301 | m_PrefabInternal: {fileID: 0} 302 | serializedVersion: 4 303 | m_Component: 304 | - 4: {fileID: 481068548} 305 | - 33: {fileID: 481068547} 306 | - 23: {fileID: 481068545} 307 | - 114: {fileID: 481068546} 308 | m_Layer: 9 309 | m_Name: Animated Cube 310 | m_TagString: Untagged 311 | m_Icon: {fileID: 0} 312 | m_NavMeshLayer: 0 313 | m_StaticEditorFlags: 0 314 | m_IsActive: 1 315 | --- !u!23 &481068545 316 | Renderer: 317 | m_ObjectHideFlags: 0 318 | m_PrefabParentObject: {fileID: 0} 319 | m_PrefabInternal: {fileID: 0} 320 | m_GameObject: {fileID: 481068544} 321 | m_Enabled: 1 322 | m_CastShadows: 1 323 | m_ReceiveShadows: 1 324 | m_LightmapIndex: 255 325 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 326 | m_Materials: 327 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 328 | m_SubsetIndices: 329 | m_StaticBatchRoot: {fileID: 0} 330 | m_UseLightProbes: 0 331 | m_LightProbeAnchor: {fileID: 0} 332 | m_ScaleInLightmap: 1 333 | --- !u!114 &481068546 334 | MonoBehaviour: 335 | m_ObjectHideFlags: 0 336 | m_PrefabParentObject: {fileID: 0} 337 | m_PrefabInternal: {fileID: 0} 338 | m_GameObject: {fileID: 481068544} 339 | m_Enabled: 1 340 | m_EditorHideFlags: 0 341 | m_Script: {fileID: 11500000, guid: 40307392c8d3b473aaf05e17174a265d, type: 3} 342 | m_Name: 343 | m_EditorClassIdentifier: 344 | --- !u!33 &481068547 345 | MeshFilter: 346 | m_ObjectHideFlags: 0 347 | m_PrefabParentObject: {fileID: 0} 348 | m_PrefabInternal: {fileID: 0} 349 | m_GameObject: {fileID: 481068544} 350 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 351 | --- !u!4 &481068548 352 | Transform: 353 | m_ObjectHideFlags: 0 354 | m_PrefabParentObject: {fileID: 0} 355 | m_PrefabInternal: {fileID: 0} 356 | m_GameObject: {fileID: 481068544} 357 | m_LocalRotation: {x: 0, y: -.402906507, z: 0, w: .915241182} 358 | m_LocalPosition: {x: 3.06143379, y: 165.100006, z: 18.8912048} 359 | m_LocalScale: {x: 10, y: 10, z: 10} 360 | m_Children: [] 361 | m_Father: {fileID: 0} 362 | --- !u!1 &544956316 363 | GameObject: 364 | m_ObjectHideFlags: 0 365 | m_PrefabParentObject: {fileID: 100002, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 366 | m_PrefabInternal: {fileID: 0} 367 | serializedVersion: 4 368 | m_Component: 369 | - 4: {fileID: 544956317} 370 | - 33: {fileID: 544956319} 371 | - 23: {fileID: 544956318} 372 | m_Layer: 9 373 | m_Name: Cube 374 | m_TagString: Untagged 375 | m_Icon: {fileID: 0} 376 | m_NavMeshLayer: 0 377 | m_StaticEditorFlags: 0 378 | m_IsActive: 1 379 | --- !u!4 &544956317 380 | Transform: 381 | m_ObjectHideFlags: 0 382 | m_PrefabParentObject: {fileID: 400002, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 383 | m_PrefabInternal: {fileID: 0} 384 | m_GameObject: {fileID: 544956316} 385 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 386 | m_LocalPosition: {x: 0, y: -18.5, z: -9.5} 387 | m_LocalScale: {x: 31, y: .5, z: .5} 388 | m_Children: [] 389 | m_Father: {fileID: 1768188154} 390 | --- !u!23 &544956318 391 | Renderer: 392 | m_ObjectHideFlags: 0 393 | m_PrefabParentObject: {fileID: 2300002, guid: 3ef52659d5f9c47099d240f9e6d10916, 394 | type: 2} 395 | m_PrefabInternal: {fileID: 0} 396 | m_GameObject: {fileID: 544956316} 397 | m_Enabled: 1 398 | m_CastShadows: 1 399 | m_ReceiveShadows: 1 400 | m_LightmapIndex: 255 401 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 402 | m_Materials: 403 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 404 | m_SubsetIndices: 405 | m_StaticBatchRoot: {fileID: 0} 406 | m_UseLightProbes: 0 407 | m_LightProbeAnchor: {fileID: 0} 408 | m_ScaleInLightmap: 1 409 | --- !u!33 &544956319 410 | MeshFilter: 411 | m_ObjectHideFlags: 0 412 | m_PrefabParentObject: {fileID: 3300002, guid: 3ef52659d5f9c47099d240f9e6d10916, 413 | type: 2} 414 | m_PrefabInternal: {fileID: 0} 415 | m_GameObject: {fileID: 544956316} 416 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 417 | --- !u!1 &626230572 418 | GameObject: 419 | m_ObjectHideFlags: 0 420 | m_PrefabParentObject: {fileID: 0} 421 | m_PrefabInternal: {fileID: 0} 422 | serializedVersion: 4 423 | m_Component: 424 | - 4: {fileID: 626230573} 425 | m_Layer: 0 426 | m_Name: Audience 427 | m_TagString: Untagged 428 | m_Icon: {fileID: 0} 429 | m_NavMeshLayer: 0 430 | m_StaticEditorFlags: 0 431 | m_IsActive: 1 432 | --- !u!4 &626230573 433 | Transform: 434 | m_ObjectHideFlags: 0 435 | m_PrefabParentObject: {fileID: 0} 436 | m_PrefabInternal: {fileID: 0} 437 | m_GameObject: {fileID: 626230572} 438 | m_LocalRotation: {x: 0, y: .121869348, z: 0, w: .992546141} 439 | m_LocalPosition: {x: -90.8000031, y: 170, z: -340} 440 | m_LocalScale: {x: 1, y: 1, z: 1} 441 | m_Children: 442 | - {fileID: 974635214} 443 | - {fileID: 1211674211} 444 | m_Father: {fileID: 0} 445 | --- !u!1 &691502045 446 | GameObject: 447 | m_ObjectHideFlags: 0 448 | m_PrefabParentObject: {fileID: 0} 449 | m_PrefabInternal: {fileID: 0} 450 | serializedVersion: 4 451 | m_Component: 452 | - 4: {fileID: 691502046} 453 | m_Layer: 0 454 | m_Name: Box Pivot 455 | m_TagString: Untagged 456 | m_Icon: {fileID: 0} 457 | m_NavMeshLayer: 0 458 | m_StaticEditorFlags: 0 459 | m_IsActive: 1 460 | --- !u!4 &691502046 461 | Transform: 462 | m_ObjectHideFlags: 0 463 | m_PrefabParentObject: {fileID: 0} 464 | m_PrefabInternal: {fileID: 0} 465 | m_GameObject: {fileID: 691502045} 466 | m_LocalRotation: {x: 0, y: -.402906507, z: 0, w: .915241182} 467 | m_LocalPosition: {x: 0, y: 184.600006, z: 0} 468 | m_LocalScale: {x: 1, y: 1, z: 1} 469 | m_Children: 470 | - {fileID: 785722616} 471 | m_Father: {fileID: 0} 472 | --- !u!1 &771077378 473 | GameObject: 474 | m_ObjectHideFlags: 0 475 | m_PrefabParentObject: {fileID: 100018, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 476 | m_PrefabInternal: {fileID: 0} 477 | serializedVersion: 4 478 | m_Component: 479 | - 4: {fileID: 771077381} 480 | - 33: {fileID: 771077380} 481 | - 23: {fileID: 771077379} 482 | m_Layer: 9 483 | m_Name: Cube 484 | m_TagString: Untagged 485 | m_Icon: {fileID: 0} 486 | m_NavMeshLayer: 0 487 | m_StaticEditorFlags: 0 488 | m_IsActive: 1 489 | --- !u!23 &771077379 490 | Renderer: 491 | m_ObjectHideFlags: 0 492 | m_PrefabParentObject: {fileID: 2300016, guid: 3ef52659d5f9c47099d240f9e6d10916, 493 | type: 2} 494 | m_PrefabInternal: {fileID: 0} 495 | m_GameObject: {fileID: 771077378} 496 | m_Enabled: 1 497 | m_CastShadows: 1 498 | m_ReceiveShadows: 1 499 | m_LightmapIndex: 255 500 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 501 | m_Materials: 502 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 503 | m_SubsetIndices: 504 | m_StaticBatchRoot: {fileID: 0} 505 | m_UseLightProbes: 0 506 | m_LightProbeAnchor: {fileID: 0} 507 | m_ScaleInLightmap: 1 508 | --- !u!33 &771077380 509 | MeshFilter: 510 | m_ObjectHideFlags: 0 511 | m_PrefabParentObject: {fileID: 3300016, guid: 3ef52659d5f9c47099d240f9e6d10916, 512 | type: 2} 513 | m_PrefabInternal: {fileID: 0} 514 | m_GameObject: {fileID: 771077378} 515 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 516 | --- !u!4 &771077381 517 | Transform: 518 | m_ObjectHideFlags: 0 519 | m_PrefabParentObject: {fileID: 400018, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 520 | m_PrefabInternal: {fileID: 0} 521 | m_GameObject: {fileID: 771077378} 522 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 523 | m_LocalPosition: {x: 0, y: 18.5, z: 9.5} 524 | m_LocalScale: {x: 31, y: .5, z: .5} 525 | m_Children: [] 526 | m_Father: {fileID: 1768188154} 527 | --- !u!1 &785722615 528 | GameObject: 529 | m_ObjectHideFlags: 0 530 | m_PrefabParentObject: {fileID: 100028, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 531 | m_PrefabInternal: {fileID: 0} 532 | serializedVersion: 4 533 | m_Component: 534 | - 4: {fileID: 785722616} 535 | m_Layer: 0 536 | m_Name: Box Origin 537 | m_TagString: Untagged 538 | m_Icon: {fileID: 0} 539 | m_NavMeshLayer: 0 540 | m_StaticEditorFlags: 0 541 | m_IsActive: 1 542 | --- !u!4 &785722616 543 | Transform: 544 | m_ObjectHideFlags: 0 545 | m_PrefabParentObject: {fileID: 400028, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 546 | m_PrefabInternal: {fileID: 0} 547 | m_GameObject: {fileID: 785722615} 548 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 549 | m_LocalPosition: {x: 16, y: -19.5, z: 10.5} 550 | m_LocalScale: {x: 1, y: 1, z: 1} 551 | m_Children: 552 | - {fileID: 1502671471} 553 | - {fileID: 1768188154} 554 | m_Father: {fileID: 691502046} 555 | --- !u!1 &974635209 556 | GameObject: 557 | m_ObjectHideFlags: 0 558 | m_PrefabParentObject: {fileID: 0} 559 | m_PrefabInternal: {fileID: 0} 560 | serializedVersion: 4 561 | m_Component: 562 | - 4: {fileID: 974635214} 563 | - 20: {fileID: 974635213} 564 | m_Layer: 9 565 | m_Name: Audience Camera 566 | m_TagString: Untagged 567 | m_Icon: {fileID: 0} 568 | m_NavMeshLayer: 0 569 | m_StaticEditorFlags: 0 570 | m_IsActive: 1 571 | --- !u!20 &974635213 572 | Camera: 573 | m_ObjectHideFlags: 0 574 | m_PrefabParentObject: {fileID: 0} 575 | m_PrefabInternal: {fileID: 0} 576 | m_GameObject: {fileID: 974635209} 577 | m_Enabled: 1 578 | serializedVersion: 2 579 | m_ClearFlags: 2 580 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} 581 | m_NormalizedViewPortRect: 582 | serializedVersion: 2 583 | x: 0 584 | y: 0 585 | width: 1 586 | height: 1 587 | near clip plane: .300000012 588 | far clip plane: 500 589 | field of view: 15 590 | orthographic: 0 591 | orthographic size: 100 592 | m_Depth: 0 593 | m_CullingMask: 594 | serializedVersion: 2 595 | m_Bits: 512 596 | m_RenderingPath: -1 597 | m_TargetTexture: {fileID: 8400000, guid: 3e4aabd2d23864668a632073dca55704, type: 2} 598 | m_HDR: 0 599 | --- !u!4 &974635214 600 | Transform: 601 | m_ObjectHideFlags: 0 602 | m_PrefabParentObject: {fileID: 0} 603 | m_PrefabInternal: {fileID: 0} 604 | m_GameObject: {fileID: 974635209} 605 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 606 | m_LocalPosition: {x: 0, y: 0, z: 0} 607 | m_LocalScale: {x: 1, y: 1, z: 1} 608 | m_Children: [] 609 | m_Father: {fileID: 626230573} 610 | --- !u!1 &1071828134 611 | GameObject: 612 | m_ObjectHideFlags: 0 613 | m_PrefabParentObject: {fileID: 100020, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 614 | m_PrefabInternal: {fileID: 0} 615 | serializedVersion: 4 616 | m_Component: 617 | - 4: {fileID: 1071828135} 618 | - 33: {fileID: 1071828137} 619 | - 23: {fileID: 1071828136} 620 | m_Layer: 9 621 | m_Name: Cube 622 | m_TagString: Untagged 623 | m_Icon: {fileID: 0} 624 | m_NavMeshLayer: 0 625 | m_StaticEditorFlags: 0 626 | m_IsActive: 1 627 | --- !u!4 &1071828135 628 | Transform: 629 | m_ObjectHideFlags: 0 630 | m_PrefabParentObject: {fileID: 400020, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 631 | m_PrefabInternal: {fileID: 0} 632 | m_GameObject: {fileID: 1071828134} 633 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 634 | m_LocalPosition: {x: -15, y: 0, z: 9.5} 635 | m_LocalScale: {x: .5, y: 38, z: .5} 636 | m_Children: [] 637 | m_Father: {fileID: 1768188154} 638 | --- !u!23 &1071828136 639 | Renderer: 640 | m_ObjectHideFlags: 0 641 | m_PrefabParentObject: {fileID: 2300018, guid: 3ef52659d5f9c47099d240f9e6d10916, 642 | type: 2} 643 | m_PrefabInternal: {fileID: 0} 644 | m_GameObject: {fileID: 1071828134} 645 | m_Enabled: 1 646 | m_CastShadows: 1 647 | m_ReceiveShadows: 1 648 | m_LightmapIndex: 255 649 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 650 | m_Materials: 651 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 652 | m_SubsetIndices: 653 | m_StaticBatchRoot: {fileID: 0} 654 | m_UseLightProbes: 0 655 | m_LightProbeAnchor: {fileID: 0} 656 | m_ScaleInLightmap: 1 657 | --- !u!33 &1071828137 658 | MeshFilter: 659 | m_ObjectHideFlags: 0 660 | m_PrefabParentObject: {fileID: 3300018, guid: 3ef52659d5f9c47099d240f9e6d10916, 661 | type: 2} 662 | m_PrefabInternal: {fileID: 0} 663 | m_GameObject: {fileID: 1071828134} 664 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 665 | --- !u!1 &1175115166 666 | GameObject: 667 | m_ObjectHideFlags: 0 668 | m_PrefabParentObject: {fileID: 0} 669 | m_PrefabInternal: {fileID: 0} 670 | serializedVersion: 4 671 | m_Component: 672 | - 4: {fileID: 1175115167} 673 | - 33: {fileID: 1175115170} 674 | - 23: {fileID: 1175115168} 675 | m_Layer: 8 676 | m_Name: FOV test photo 677 | m_TagString: Untagged 678 | m_Icon: {fileID: 0} 679 | m_NavMeshLayer: 0 680 | m_StaticEditorFlags: 0 681 | m_IsActive: 0 682 | --- !u!4 &1175115167 683 | Transform: 684 | m_ObjectHideFlags: 0 685 | m_PrefabParentObject: {fileID: 0} 686 | m_PrefabInternal: {fileID: 0} 687 | m_GameObject: {fileID: 1175115166} 688 | m_LocalRotation: {x: .70658803, y: -.0270826183, z: .0270826239, w: .706587911} 689 | m_LocalPosition: {x: -.266711742, y: -5.36441803e-07, z: 4.65968132} 690 | m_LocalScale: {x: 10, y: 10, z: 10} 691 | m_Children: [] 692 | m_Father: {fileID: 2043834429} 693 | --- !u!23 &1175115168 694 | Renderer: 695 | m_ObjectHideFlags: 0 696 | m_PrefabParentObject: {fileID: 0} 697 | m_PrefabInternal: {fileID: 0} 698 | m_GameObject: {fileID: 1175115166} 699 | m_Enabled: 1 700 | m_CastShadows: 1 701 | m_ReceiveShadows: 1 702 | m_LightmapIndex: 255 703 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 704 | m_Materials: 705 | - {fileID: 2100000, guid: 1523db43361334847b598ea9405712f0, type: 2} 706 | m_SubsetIndices: 707 | m_StaticBatchRoot: {fileID: 0} 708 | m_UseLightProbes: 0 709 | m_LightProbeAnchor: {fileID: 0} 710 | m_ScaleInLightmap: 1 711 | --- !u!33 &1175115170 712 | MeshFilter: 713 | m_ObjectHideFlags: 0 714 | m_PrefabParentObject: {fileID: 0} 715 | m_PrefabInternal: {fileID: 0} 716 | m_GameObject: {fileID: 1175115166} 717 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 718 | --- !u!1 &1204663836 719 | GameObject: 720 | m_ObjectHideFlags: 0 721 | m_PrefabParentObject: {fileID: 100010, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 722 | m_PrefabInternal: {fileID: 0} 723 | serializedVersion: 4 724 | m_Component: 725 | - 4: {fileID: 1204663837} 726 | - 33: {fileID: 1204663839} 727 | - 23: {fileID: 1204663838} 728 | m_Layer: 9 729 | m_Name: Cube 730 | m_TagString: Untagged 731 | m_Icon: {fileID: 0} 732 | m_NavMeshLayer: 0 733 | m_StaticEditorFlags: 0 734 | m_IsActive: 1 735 | --- !u!4 &1204663837 736 | Transform: 737 | m_ObjectHideFlags: 0 738 | m_PrefabParentObject: {fileID: 400010, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 739 | m_PrefabInternal: {fileID: 0} 740 | m_GameObject: {fileID: 1204663836} 741 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 742 | m_LocalPosition: {x: 15, y: 18.5, z: 0} 743 | m_LocalScale: {x: .5, y: .5, z: 20} 744 | m_Children: [] 745 | m_Father: {fileID: 1768188154} 746 | --- !u!23 &1204663838 747 | Renderer: 748 | m_ObjectHideFlags: 0 749 | m_PrefabParentObject: {fileID: 2300010, guid: 3ef52659d5f9c47099d240f9e6d10916, 750 | type: 2} 751 | m_PrefabInternal: {fileID: 0} 752 | m_GameObject: {fileID: 1204663836} 753 | m_Enabled: 1 754 | m_CastShadows: 1 755 | m_ReceiveShadows: 1 756 | m_LightmapIndex: 255 757 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 758 | m_Materials: 759 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 760 | m_SubsetIndices: 761 | m_StaticBatchRoot: {fileID: 0} 762 | m_UseLightProbes: 0 763 | m_LightProbeAnchor: {fileID: 0} 764 | m_ScaleInLightmap: 1 765 | --- !u!33 &1204663839 766 | MeshFilter: 767 | m_ObjectHideFlags: 0 768 | m_PrefabParentObject: {fileID: 3300010, guid: 3ef52659d5f9c47099d240f9e6d10916, 769 | type: 2} 770 | m_PrefabInternal: {fileID: 0} 771 | m_GameObject: {fileID: 1204663836} 772 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 773 | --- !u!1 &1211674210 774 | GameObject: 775 | m_ObjectHideFlags: 0 776 | m_PrefabParentObject: {fileID: 0} 777 | m_PrefabInternal: {fileID: 0} 778 | serializedVersion: 4 779 | m_Component: 780 | - 4: {fileID: 1211674211} 781 | - 119: {fileID: 1211674212} 782 | m_Layer: 8 783 | m_Name: Audience View Projector 784 | m_TagString: Untagged 785 | m_Icon: {fileID: 0} 786 | m_NavMeshLayer: 0 787 | m_StaticEditorFlags: 0 788 | m_IsActive: 1 789 | --- !u!4 &1211674211 790 | Transform: 791 | m_ObjectHideFlags: 0 792 | m_PrefabParentObject: {fileID: 0} 793 | m_PrefabInternal: {fileID: 0} 794 | m_GameObject: {fileID: 1211674210} 795 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 796 | m_LocalPosition: {x: 0, y: 0, z: 0} 797 | m_LocalScale: {x: 1, y: 1, z: 1} 798 | m_Children: [] 799 | m_Father: {fileID: 626230573} 800 | --- !u!119 &1211674212 801 | Projector: 802 | m_ObjectHideFlags: 0 803 | m_PrefabParentObject: {fileID: 0} 804 | m_PrefabInternal: {fileID: 0} 805 | m_GameObject: {fileID: 1211674210} 806 | m_Enabled: 1 807 | serializedVersion: 2 808 | m_NearClipPlane: .100000001 809 | m_FarClipPlane: 500 810 | m_FieldOfView: 15 811 | m_AspectRatio: 1 812 | m_Orthographic: 0 813 | m_OrthographicSize: 10 814 | m_Material: {fileID: 2100000, guid: 3dc3a6844b1414dfb99b6dc39b27f309, type: 2} 815 | m_IgnoreLayers: 816 | serializedVersion: 2 817 | m_Bits: 4294967039 818 | --- !u!1 &1486354633 819 | GameObject: 820 | m_ObjectHideFlags: 0 821 | m_PrefabParentObject: {fileID: 100012, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 822 | m_PrefabInternal: {fileID: 0} 823 | serializedVersion: 4 824 | m_Component: 825 | - 4: {fileID: 1486354634} 826 | - 33: {fileID: 1486354636} 827 | - 23: {fileID: 1486354635} 828 | m_Layer: 9 829 | m_Name: Cube 830 | m_TagString: Untagged 831 | m_Icon: {fileID: 0} 832 | m_NavMeshLayer: 0 833 | m_StaticEditorFlags: 0 834 | m_IsActive: 1 835 | --- !u!4 &1486354634 836 | Transform: 837 | m_ObjectHideFlags: 0 838 | m_PrefabParentObject: {fileID: 400012, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 839 | m_PrefabInternal: {fileID: 0} 840 | m_GameObject: {fileID: 1486354633} 841 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 842 | m_LocalPosition: {x: 15, y: 0, z: -9.5} 843 | m_LocalScale: {x: .5, y: 38, z: .5} 844 | m_Children: [] 845 | m_Father: {fileID: 1768188154} 846 | --- !u!23 &1486354635 847 | Renderer: 848 | m_ObjectHideFlags: 0 849 | m_PrefabParentObject: {fileID: 2300012, guid: 3ef52659d5f9c47099d240f9e6d10916, 850 | type: 2} 851 | m_PrefabInternal: {fileID: 0} 852 | m_GameObject: {fileID: 1486354633} 853 | m_Enabled: 1 854 | m_CastShadows: 1 855 | m_ReceiveShadows: 1 856 | m_LightmapIndex: 255 857 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 858 | m_Materials: 859 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 860 | m_SubsetIndices: 861 | m_StaticBatchRoot: {fileID: 0} 862 | m_UseLightProbes: 0 863 | m_LightProbeAnchor: {fileID: 0} 864 | m_ScaleInLightmap: 1 865 | --- !u!33 &1486354636 866 | MeshFilter: 867 | m_ObjectHideFlags: 0 868 | m_PrefabParentObject: {fileID: 3300012, guid: 3ef52659d5f9c47099d240f9e6d10916, 869 | type: 2} 870 | m_PrefabInternal: {fileID: 0} 871 | m_GameObject: {fileID: 1486354633} 872 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 873 | --- !u!1 &1498219003 874 | GameObject: 875 | m_ObjectHideFlags: 0 876 | m_PrefabParentObject: {fileID: 100014, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 877 | m_PrefabInternal: {fileID: 0} 878 | serializedVersion: 4 879 | m_Component: 880 | - 4: {fileID: 1498219004} 881 | - 33: {fileID: 1498219006} 882 | - 23: {fileID: 1498219005} 883 | m_Layer: 9 884 | m_Name: Cube 885 | m_TagString: Untagged 886 | m_Icon: {fileID: 0} 887 | m_NavMeshLayer: 0 888 | m_StaticEditorFlags: 0 889 | m_IsActive: 1 890 | --- !u!4 &1498219004 891 | Transform: 892 | m_ObjectHideFlags: 0 893 | m_PrefabParentObject: {fileID: 400014, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 894 | m_PrefabInternal: {fileID: 0} 895 | m_GameObject: {fileID: 1498219003} 896 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 897 | m_LocalPosition: {x: -15, y: -18.5, z: 0} 898 | m_LocalScale: {x: .5, y: .5, z: 20} 899 | m_Children: [] 900 | m_Father: {fileID: 1768188154} 901 | --- !u!23 &1498219005 902 | Renderer: 903 | m_ObjectHideFlags: 0 904 | m_PrefabParentObject: {fileID: 2300014, guid: 3ef52659d5f9c47099d240f9e6d10916, 905 | type: 2} 906 | m_PrefabInternal: {fileID: 0} 907 | m_GameObject: {fileID: 1498219003} 908 | m_Enabled: 1 909 | m_CastShadows: 1 910 | m_ReceiveShadows: 1 911 | m_LightmapIndex: 255 912 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 913 | m_Materials: 914 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 915 | m_SubsetIndices: 916 | m_StaticBatchRoot: {fileID: 0} 917 | m_UseLightProbes: 0 918 | m_LightProbeAnchor: {fileID: 0} 919 | m_ScaleInLightmap: 1 920 | --- !u!33 &1498219006 921 | MeshFilter: 922 | m_ObjectHideFlags: 0 923 | m_PrefabParentObject: {fileID: 3300014, guid: 3ef52659d5f9c47099d240f9e6d10916, 924 | type: 2} 925 | m_PrefabInternal: {fileID: 0} 926 | m_GameObject: {fileID: 1498219003} 927 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 928 | --- !u!1 &1502671470 929 | GameObject: 930 | m_ObjectHideFlags: 0 931 | m_PrefabParentObject: {fileID: 100022, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 932 | m_PrefabInternal: {fileID: 0} 933 | serializedVersion: 4 934 | m_Component: 935 | - 4: {fileID: 1502671471} 936 | - 33: {fileID: 1502671473} 937 | - 23: {fileID: 1502671472} 938 | m_Layer: 8 939 | m_Name: Projection 940 | m_TagString: Untagged 941 | m_Icon: {fileID: 0} 942 | m_NavMeshLayer: 0 943 | m_StaticEditorFlags: 0 944 | m_IsActive: 1 945 | --- !u!4 &1502671471 946 | Transform: 947 | m_ObjectHideFlags: 0 948 | m_PrefabParentObject: {fileID: 400022, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 949 | m_PrefabInternal: {fileID: 0} 950 | m_GameObject: {fileID: 1502671470} 951 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 952 | m_LocalPosition: {x: 0, y: 0, z: 0} 953 | m_LocalScale: {x: 32, y: 39, z: 21} 954 | m_Children: [] 955 | m_Father: {fileID: 785722616} 956 | --- !u!23 &1502671472 957 | Renderer: 958 | m_ObjectHideFlags: 0 959 | m_PrefabParentObject: {fileID: 2300020, guid: 3ef52659d5f9c47099d240f9e6d10916, 960 | type: 2} 961 | m_PrefabInternal: {fileID: 0} 962 | m_GameObject: {fileID: 1502671470} 963 | m_Enabled: 1 964 | m_CastShadows: 1 965 | m_ReceiveShadows: 1 966 | m_LightmapIndex: 255 967 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 968 | m_Materials: 969 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 970 | m_SubsetIndices: 971 | m_StaticBatchRoot: {fileID: 0} 972 | m_UseLightProbes: 0 973 | m_LightProbeAnchor: {fileID: 0} 974 | m_ScaleInLightmap: 1 975 | --- !u!33 &1502671473 976 | MeshFilter: 977 | m_ObjectHideFlags: 0 978 | m_PrefabParentObject: {fileID: 3300020, guid: 3ef52659d5f9c47099d240f9e6d10916, 979 | type: 2} 980 | m_PrefabInternal: {fileID: 0} 981 | m_GameObject: {fileID: 1502671470} 982 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 983 | --- !u!1 &1768188153 984 | GameObject: 985 | m_ObjectHideFlags: 0 986 | m_PrefabParentObject: {fileID: 100016, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 987 | m_PrefabInternal: {fileID: 0} 988 | serializedVersion: 4 989 | m_Component: 990 | - 4: {fileID: 1768188154} 991 | m_Layer: 9 992 | m_Name: Frame 993 | m_TagString: Untagged 994 | m_Icon: {fileID: 0} 995 | m_NavMeshLayer: 0 996 | m_StaticEditorFlags: 0 997 | m_IsActive: 1 998 | --- !u!4 &1768188154 999 | Transform: 1000 | m_ObjectHideFlags: 0 1001 | m_PrefabParentObject: {fileID: 400016, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 1002 | m_PrefabInternal: {fileID: 0} 1003 | m_GameObject: {fileID: 1768188153} 1004 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1005 | m_LocalPosition: {x: 0, y: 0, z: 0} 1006 | m_LocalScale: {x: 1, y: 1, z: 1} 1007 | m_Children: 1008 | - {fileID: 2127873998} 1009 | - {fileID: 364242267} 1010 | - {fileID: 33513393} 1011 | - {fileID: 544956317} 1012 | - {fileID: 1498219004} 1013 | - {fileID: 105540077} 1014 | - {fileID: 303933627} 1015 | - {fileID: 1204663837} 1016 | - {fileID: 771077381} 1017 | - {fileID: 1071828135} 1018 | - {fileID: 1788004555} 1019 | - {fileID: 1486354634} 1020 | m_Father: {fileID: 785722616} 1021 | --- !u!1 &1788004554 1022 | GameObject: 1023 | m_ObjectHideFlags: 0 1024 | m_PrefabParentObject: {fileID: 100024, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 1025 | m_PrefabInternal: {fileID: 0} 1026 | serializedVersion: 4 1027 | m_Component: 1028 | - 4: {fileID: 1788004555} 1029 | - 33: {fileID: 1788004557} 1030 | - 23: {fileID: 1788004556} 1031 | m_Layer: 9 1032 | m_Name: Cube 1033 | m_TagString: Untagged 1034 | m_Icon: {fileID: 0} 1035 | m_NavMeshLayer: 0 1036 | m_StaticEditorFlags: 0 1037 | m_IsActive: 1 1038 | --- !u!4 &1788004555 1039 | Transform: 1040 | m_ObjectHideFlags: 0 1041 | m_PrefabParentObject: {fileID: 400024, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 1042 | m_PrefabInternal: {fileID: 0} 1043 | m_GameObject: {fileID: 1788004554} 1044 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1045 | m_LocalPosition: {x: -15, y: 0, z: -9.5} 1046 | m_LocalScale: {x: .5, y: 38, z: .5} 1047 | m_Children: [] 1048 | m_Father: {fileID: 1768188154} 1049 | --- !u!23 &1788004556 1050 | Renderer: 1051 | m_ObjectHideFlags: 0 1052 | m_PrefabParentObject: {fileID: 2300022, guid: 3ef52659d5f9c47099d240f9e6d10916, 1053 | type: 2} 1054 | m_PrefabInternal: {fileID: 0} 1055 | m_GameObject: {fileID: 1788004554} 1056 | m_Enabled: 1 1057 | m_CastShadows: 1 1058 | m_ReceiveShadows: 1 1059 | m_LightmapIndex: 255 1060 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 1061 | m_Materials: 1062 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 1063 | m_SubsetIndices: 1064 | m_StaticBatchRoot: {fileID: 0} 1065 | m_UseLightProbes: 0 1066 | m_LightProbeAnchor: {fileID: 0} 1067 | m_ScaleInLightmap: 1 1068 | --- !u!33 &1788004557 1069 | MeshFilter: 1070 | m_ObjectHideFlags: 0 1071 | m_PrefabParentObject: {fileID: 3300022, guid: 3ef52659d5f9c47099d240f9e6d10916, 1072 | type: 2} 1073 | m_PrefabInternal: {fileID: 0} 1074 | m_GameObject: {fileID: 1788004554} 1075 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1076 | --- !u!1 &1912392489 1077 | GameObject: 1078 | m_ObjectHideFlags: 0 1079 | m_PrefabParentObject: {fileID: 0} 1080 | m_PrefabInternal: {fileID: 0} 1081 | serializedVersion: 4 1082 | m_Component: 1083 | - 4: {fileID: 1912392491} 1084 | - 108: {fileID: 1912392490} 1085 | m_Layer: 9 1086 | m_Name: Directional light 1087 | m_TagString: Untagged 1088 | m_Icon: {fileID: 0} 1089 | m_NavMeshLayer: 0 1090 | m_StaticEditorFlags: 0 1091 | m_IsActive: 1 1092 | --- !u!108 &1912392490 1093 | Light: 1094 | m_ObjectHideFlags: 0 1095 | m_PrefabParentObject: {fileID: 0} 1096 | m_PrefabInternal: {fileID: 0} 1097 | m_GameObject: {fileID: 1912392489} 1098 | m_Enabled: 1 1099 | serializedVersion: 3 1100 | m_Type: 1 1101 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1102 | m_Intensity: .5 1103 | m_Range: 10 1104 | m_SpotAngle: 30 1105 | m_CookieSize: 10 1106 | m_Shadows: 1107 | m_Type: 0 1108 | m_Resolution: -1 1109 | m_Strength: 1 1110 | m_Bias: .0500000007 1111 | m_Softness: 4 1112 | m_SoftnessFade: 1 1113 | m_Cookie: {fileID: 0} 1114 | m_DrawHalo: 0 1115 | m_ActuallyLightmapped: 0 1116 | m_Flare: {fileID: 0} 1117 | m_RenderMode: 0 1118 | m_CullingMask: 1119 | serializedVersion: 2 1120 | m_Bits: 4294967295 1121 | m_Lightmapping: 1 1122 | m_ShadowSamples: 1 1123 | m_ShadowRadius: 0 1124 | m_ShadowAngle: 0 1125 | m_IndirectIntensity: 1 1126 | m_AreaSize: {x: 1, y: 1} 1127 | --- !u!4 &1912392491 1128 | Transform: 1129 | m_ObjectHideFlags: 0 1130 | m_PrefabParentObject: {fileID: 0} 1131 | m_PrefabInternal: {fileID: 0} 1132 | m_GameObject: {fileID: 1912392489} 1133 | m_LocalRotation: {x: .541174233, y: .183539331, z: -.122405596, w: .811455965} 1134 | m_LocalPosition: {x: 0, y: 184.600006, z: 0} 1135 | m_LocalScale: {x: 1, y: 1, z: 1} 1136 | m_Children: [] 1137 | m_Father: {fileID: 0} 1138 | --- !u!1 &2043834424 1139 | GameObject: 1140 | m_ObjectHideFlags: 0 1141 | m_PrefabParentObject: {fileID: 0} 1142 | m_PrefabInternal: {fileID: 0} 1143 | serializedVersion: 4 1144 | m_Component: 1145 | - 4: {fileID: 2043834429} 1146 | - 20: {fileID: 2043834428} 1147 | - 92: {fileID: 2043834427} 1148 | - 124: {fileID: 2043834426} 1149 | - 81: {fileID: 2043834425} 1150 | m_Layer: 8 1151 | m_Name: Main Camera 1152 | m_TagString: MainCamera 1153 | m_Icon: {fileID: 0} 1154 | m_NavMeshLayer: 0 1155 | m_StaticEditorFlags: 0 1156 | m_IsActive: 1 1157 | --- !u!81 &2043834425 1158 | AudioListener: 1159 | m_ObjectHideFlags: 0 1160 | m_PrefabParentObject: {fileID: 0} 1161 | m_PrefabInternal: {fileID: 0} 1162 | m_GameObject: {fileID: 2043834424} 1163 | m_Enabled: 1 1164 | --- !u!124 &2043834426 1165 | Behaviour: 1166 | m_ObjectHideFlags: 0 1167 | m_PrefabParentObject: {fileID: 0} 1168 | m_PrefabInternal: {fileID: 0} 1169 | m_GameObject: {fileID: 2043834424} 1170 | m_Enabled: 1 1171 | --- !u!92 &2043834427 1172 | Behaviour: 1173 | m_ObjectHideFlags: 0 1174 | m_PrefabParentObject: {fileID: 0} 1175 | m_PrefabInternal: {fileID: 0} 1176 | m_GameObject: {fileID: 2043834424} 1177 | m_Enabled: 1 1178 | --- !u!20 &2043834428 1179 | Camera: 1180 | m_ObjectHideFlags: 0 1181 | m_PrefabParentObject: {fileID: 0} 1182 | m_PrefabInternal: {fileID: 0} 1183 | m_GameObject: {fileID: 2043834424} 1184 | m_Enabled: 1 1185 | serializedVersion: 2 1186 | m_ClearFlags: 2 1187 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} 1188 | m_NormalizedViewPortRect: 1189 | serializedVersion: 2 1190 | x: 0 1191 | y: 0 1192 | width: 1 1193 | height: 1 1194 | near clip plane: .300000012 1195 | far clip plane: 500 1196 | field of view: 19 1197 | orthographic: 0 1198 | orthographic size: 100 1199 | m_Depth: -1 1200 | m_CullingMask: 1201 | serializedVersion: 2 1202 | m_Bits: 256 1203 | m_RenderingPath: -1 1204 | m_TargetTexture: {fileID: 0} 1205 | m_HDR: 0 1206 | --- !u!4 &2043834429 1207 | Transform: 1208 | m_ObjectHideFlags: 0 1209 | m_PrefabParentObject: {fileID: 0} 1210 | m_PrefabInternal: {fileID: 0} 1211 | m_GameObject: {fileID: 2043834424} 1212 | m_LocalRotation: {x: -.152123407, y: 0, z: 0, w: .988361537} 1213 | m_LocalPosition: {x: 0, y: 68.4000015, z: -282.100006} 1214 | m_LocalScale: {x: 1, y: 1, z: 1} 1215 | m_Children: 1216 | - {fileID: 1175115167} 1217 | m_Father: {fileID: 0} 1218 | --- !u!1 &2056207170 1219 | GameObject: 1220 | m_ObjectHideFlags: 0 1221 | m_PrefabParentObject: {fileID: 0} 1222 | m_PrefabInternal: {fileID: 0} 1223 | serializedVersion: 4 1224 | m_Component: 1225 | - 4: {fileID: 2056207172} 1226 | - 108: {fileID: 2056207171} 1227 | m_Layer: 9 1228 | m_Name: Directional light 1229 | m_TagString: Untagged 1230 | m_Icon: {fileID: 0} 1231 | m_NavMeshLayer: 0 1232 | m_StaticEditorFlags: 0 1233 | m_IsActive: 1 1234 | --- !u!108 &2056207171 1235 | Light: 1236 | m_ObjectHideFlags: 0 1237 | m_PrefabParentObject: {fileID: 0} 1238 | m_PrefabInternal: {fileID: 0} 1239 | m_GameObject: {fileID: 2056207170} 1240 | m_Enabled: 1 1241 | serializedVersion: 3 1242 | m_Type: 1 1243 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1244 | m_Intensity: .5 1245 | m_Range: 10 1246 | m_SpotAngle: 30 1247 | m_CookieSize: 10 1248 | m_Shadows: 1249 | m_Type: 0 1250 | m_Resolution: -1 1251 | m_Strength: 1 1252 | m_Bias: .0500000007 1253 | m_Softness: 4 1254 | m_SoftnessFade: 1 1255 | m_Cookie: {fileID: 0} 1256 | m_DrawHalo: 0 1257 | m_ActuallyLightmapped: 0 1258 | m_Flare: {fileID: 0} 1259 | m_RenderMode: 0 1260 | m_CullingMask: 1261 | serializedVersion: 2 1262 | m_Bits: 4294967295 1263 | m_Lightmapping: 1 1264 | m_ShadowSamples: 1 1265 | m_ShadowRadius: 0 1266 | m_ShadowAngle: 0 1267 | m_IndirectIntensity: 1 1268 | m_AreaSize: {x: 1, y: 1} 1269 | --- !u!4 &2056207172 1270 | Transform: 1271 | m_ObjectHideFlags: 0 1272 | m_PrefabParentObject: {fileID: 0} 1273 | m_PrefabInternal: {fileID: 0} 1274 | m_GameObject: {fileID: 2056207170} 1275 | m_LocalRotation: {x: .511603534, y: -.3219935, z: .214743212, w: .767116249} 1276 | m_LocalPosition: {x: 0, y: 184.600006, z: 0} 1277 | m_LocalScale: {x: 1, y: 1, z: 1} 1278 | m_Children: [] 1279 | m_Father: {fileID: 0} 1280 | --- !u!1 &2127873997 1281 | GameObject: 1282 | m_ObjectHideFlags: 0 1283 | m_PrefabParentObject: {fileID: 100004, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 1284 | m_PrefabInternal: {fileID: 0} 1285 | serializedVersion: 4 1286 | m_Component: 1287 | - 4: {fileID: 2127873998} 1288 | - 33: {fileID: 2127874000} 1289 | - 23: {fileID: 2127873999} 1290 | m_Layer: 9 1291 | m_Name: Cube 1292 | m_TagString: Untagged 1293 | m_Icon: {fileID: 0} 1294 | m_NavMeshLayer: 0 1295 | m_StaticEditorFlags: 0 1296 | m_IsActive: 1 1297 | --- !u!4 &2127873998 1298 | Transform: 1299 | m_ObjectHideFlags: 0 1300 | m_PrefabParentObject: {fileID: 400004, guid: 3ef52659d5f9c47099d240f9e6d10916, type: 2} 1301 | m_PrefabInternal: {fileID: 0} 1302 | m_GameObject: {fileID: 2127873997} 1303 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1304 | m_LocalPosition: {x: 15, y: 0, z: 9.5} 1305 | m_LocalScale: {x: .5, y: 38, z: .5} 1306 | m_Children: [] 1307 | m_Father: {fileID: 1768188154} 1308 | --- !u!23 &2127873999 1309 | Renderer: 1310 | m_ObjectHideFlags: 0 1311 | m_PrefabParentObject: {fileID: 2300004, guid: 3ef52659d5f9c47099d240f9e6d10916, 1312 | type: 2} 1313 | m_PrefabInternal: {fileID: 0} 1314 | m_GameObject: {fileID: 2127873997} 1315 | m_Enabled: 1 1316 | m_CastShadows: 1 1317 | m_ReceiveShadows: 1 1318 | m_LightmapIndex: 255 1319 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 1320 | m_Materials: 1321 | - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} 1322 | m_SubsetIndices: 1323 | m_StaticBatchRoot: {fileID: 0} 1324 | m_UseLightProbes: 0 1325 | m_LightProbeAnchor: {fileID: 0} 1326 | m_ScaleInLightmap: 1 1327 | --- !u!33 &2127874000 1328 | MeshFilter: 1329 | m_ObjectHideFlags: 0 1330 | m_PrefabParentObject: {fileID: 3300004, guid: 3ef52659d5f9c47099d240f9e6d10916, 1331 | type: 2} 1332 | m_PrefabInternal: {fileID: 0} 1333 | m_GameObject: {fileID: 2127873997} 1334 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1335 | -------------------------------------------------------------------------------- /Assets/Scenes/Box.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f8a5f5a471384207942d4819a58e427 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Scenes/Test Pattern.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | SceneSettings: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_QueryMode: 1 8 | m_PVSObjectsArray: [] 9 | m_PVSPortalsArray: [] 10 | m_OcclusionBakeSettings: 11 | viewCellSize: 1 12 | bakeMode: 2 13 | memoryUsage: 10485760 14 | --- !u!104 &2 15 | RenderSettings: 16 | m_Fog: 0 17 | m_FogColor: {r: .5, g: .5, b: .5, a: 1} 18 | m_FogMode: 3 19 | m_FogDensity: .00999999978 20 | m_LinearFogStart: 0 21 | m_LinearFogEnd: 300 22 | m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} 23 | m_SkyboxMaterial: {fileID: 0} 24 | m_HaloStrength: .5 25 | m_FlareStrength: 1 26 | m_HaloTexture: {fileID: 0} 27 | m_SpotCookie: {fileID: 0} 28 | m_ObjectHideFlags: 0 29 | --- !u!127 &3 30 | LevelGameManager: 31 | m_ObjectHideFlags: 0 32 | --- !u!157 &4 33 | LightmapSettings: 34 | m_ObjectHideFlags: 0 35 | m_LightProbes: {fileID: 0} 36 | m_Lightmaps: [] 37 | m_LightmapsMode: 1 38 | m_BakedColorSpace: 0 39 | m_UseDualLightmapsInForward: 0 40 | m_LightmapEditorSettings: 41 | m_Resolution: 50 42 | m_LastUsedResolution: 0 43 | m_TextureWidth: 1024 44 | m_TextureHeight: 1024 45 | m_BounceBoost: 1 46 | m_BounceIntensity: 1 47 | m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} 48 | m_SkyLightIntensity: 0 49 | m_Quality: 0 50 | m_Bounces: 1 51 | m_FinalGatherRays: 1000 52 | m_FinalGatherContrastThreshold: .0500000007 53 | m_FinalGatherGradientThreshold: 0 54 | m_FinalGatherInterpolationPoints: 15 55 | m_AOAmount: 0 56 | m_AOMaxDistance: .100000001 57 | m_AOContrast: 1 58 | m_LODSurfaceMappingDistance: 1 59 | m_Padding: 0 60 | m_TextureCompression: 0 61 | m_LockAtlas: 0 62 | --- !u!196 &5 63 | NavMeshSettings: 64 | m_ObjectHideFlags: 0 65 | m_BuildSettings: 66 | agentRadius: .5 67 | agentHeight: 2 68 | agentSlope: 45 69 | agentClimb: .400000006 70 | ledgeDropHeight: 0 71 | maxJumpAcrossDistance: 0 72 | accuratePlacement: 0 73 | minRegionArea: 2 74 | widthInaccuracy: 16.666666 75 | heightInaccuracy: 10 76 | m_NavMesh: {fileID: 0} 77 | --- !u!1 &695620925 78 | GameObject: 79 | m_ObjectHideFlags: 0 80 | m_PrefabParentObject: {fileID: 0} 81 | m_PrefabInternal: {fileID: 0} 82 | serializedVersion: 4 83 | m_Component: 84 | - 4: {fileID: 695620930} 85 | - 20: {fileID: 695620929} 86 | - 92: {fileID: 695620928} 87 | - 124: {fileID: 695620927} 88 | - 81: {fileID: 695620926} 89 | m_Layer: 0 90 | m_Name: Main Camera 91 | m_TagString: MainCamera 92 | m_Icon: {fileID: 0} 93 | m_NavMeshLayer: 0 94 | m_StaticEditorFlags: 0 95 | m_IsActive: 1 96 | --- !u!81 &695620926 97 | AudioListener: 98 | m_ObjectHideFlags: 0 99 | m_PrefabParentObject: {fileID: 0} 100 | m_PrefabInternal: {fileID: 0} 101 | m_GameObject: {fileID: 695620925} 102 | m_Enabled: 1 103 | --- !u!124 &695620927 104 | Behaviour: 105 | m_ObjectHideFlags: 0 106 | m_PrefabParentObject: {fileID: 0} 107 | m_PrefabInternal: {fileID: 0} 108 | m_GameObject: {fileID: 695620925} 109 | m_Enabled: 1 110 | --- !u!92 &695620928 111 | Behaviour: 112 | m_ObjectHideFlags: 0 113 | m_PrefabParentObject: {fileID: 0} 114 | m_PrefabInternal: {fileID: 0} 115 | m_GameObject: {fileID: 695620925} 116 | m_Enabled: 1 117 | --- !u!20 &695620929 118 | Camera: 119 | m_ObjectHideFlags: 0 120 | m_PrefabParentObject: {fileID: 0} 121 | m_PrefabInternal: {fileID: 0} 122 | m_GameObject: {fileID: 695620925} 123 | m_Enabled: 1 124 | serializedVersion: 2 125 | m_ClearFlags: 2 126 | m_BackGroundColor: {r: 0, g: .388888836, b: 1, a: .0196078438} 127 | m_NormalizedViewPortRect: 128 | serializedVersion: 2 129 | x: 0 130 | y: 0 131 | width: 1 132 | height: 1 133 | near clip plane: .300000012 134 | far clip plane: 1000 135 | field of view: 60 136 | orthographic: 1 137 | orthographic size: .5 138 | m_Depth: -1 139 | m_CullingMask: 140 | serializedVersion: 2 141 | m_Bits: 4294967295 142 | m_RenderingPath: -1 143 | m_TargetTexture: {fileID: 0} 144 | m_HDR: 0 145 | --- !u!4 &695620930 146 | Transform: 147 | m_ObjectHideFlags: 0 148 | m_PrefabParentObject: {fileID: 0} 149 | m_PrefabInternal: {fileID: 0} 150 | m_GameObject: {fileID: 695620925} 151 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 152 | m_LocalPosition: {x: 0, y: 0, z: -10} 153 | m_LocalScale: {x: 1, y: 1, z: 1} 154 | m_Children: [] 155 | m_Father: {fileID: 0} 156 | --- !u!1 &1394506784 157 | GameObject: 158 | m_ObjectHideFlags: 0 159 | m_PrefabParentObject: {fileID: 0} 160 | m_PrefabInternal: {fileID: 0} 161 | serializedVersion: 4 162 | m_Component: 163 | - 4: {fileID: 1394506788} 164 | - 33: {fileID: 1394506787} 165 | - 23: {fileID: 1394506785} 166 | m_Layer: 0 167 | m_Name: Test Pattern 168 | m_TagString: Untagged 169 | m_Icon: {fileID: 0} 170 | m_NavMeshLayer: 0 171 | m_StaticEditorFlags: 0 172 | m_IsActive: 1 173 | --- !u!23 &1394506785 174 | Renderer: 175 | m_ObjectHideFlags: 0 176 | m_PrefabParentObject: {fileID: 0} 177 | m_PrefabInternal: {fileID: 0} 178 | m_GameObject: {fileID: 1394506784} 179 | m_Enabled: 1 180 | m_CastShadows: 1 181 | m_ReceiveShadows: 1 182 | m_LightmapIndex: 255 183 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 184 | m_Materials: 185 | - {fileID: 2100000, guid: b831d0dbc3a4c494ca7deb3417f22931, type: 2} 186 | m_SubsetIndices: 187 | m_StaticBatchRoot: {fileID: 0} 188 | m_UseLightProbes: 0 189 | m_LightProbeAnchor: {fileID: 0} 190 | m_ScaleInLightmap: 1 191 | --- !u!33 &1394506787 192 | MeshFilter: 193 | m_ObjectHideFlags: 0 194 | m_PrefabParentObject: {fileID: 0} 195 | m_PrefabInternal: {fileID: 0} 196 | m_GameObject: {fileID: 1394506784} 197 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 198 | --- !u!4 &1394506788 199 | Transform: 200 | m_ObjectHideFlags: 0 201 | m_PrefabParentObject: {fileID: 0} 202 | m_PrefabInternal: {fileID: 0} 203 | m_GameObject: {fileID: 1394506784} 204 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 205 | m_LocalPosition: {x: 0, y: 0, z: 0} 206 | m_LocalScale: {x: 1, y: 1, z: 1} 207 | m_Children: [] 208 | m_Father: {fileID: 0} 209 | -------------------------------------------------------------------------------- /Assets/Scenes/Test Pattern.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4e19ed787e2c4d4cb0bcd6f665d80e7 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd2b051fa063b4930a03e921817d1224 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/Scripts/CubeAnimation.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | public class CubeAnimation : MonoBehaviour 5 | { 6 | Vector3 origin; 7 | 8 | void Start () 9 | { 10 | origin = transform.position; 11 | } 12 | 13 | void Update () 14 | { 15 | transform.position = origin + Vector3.up * Mathf.Sin (Time.time * 5.43f) * 5.0f; 16 | transform.localRotation = 17 | Quaternion.AngleAxis (Time.time * 180.0f, Vector3.up) * 18 | Quaternion.AngleAxis (Time.time * 77.0f, Vector3.right); 19 | } 20 | } -------------------------------------------------------------------------------- /Assets/Scripts/CubeAnimation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40307392c8d3b473aaf05e17174a265d 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Assets/Test Images.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 230156f15a46b460faee791ff55b5c19 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/Test Images/FOV.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-pm-tutorial/705a8753daae0e7ce0390205a39e1891d1ac2718/Assets/Test Images/FOV.jpg -------------------------------------------------------------------------------- /Assets/Test Images/FOV.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fdf26de8675b438c8962fd8cfb35850 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | alphaIsTransparency: 0 34 | textureType: -1 35 | buildTargetSettings: [] 36 | userData: 37 | -------------------------------------------------------------------------------- /Assets/Test Images/FOV.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 3 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: FOV 10 | m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: [] 12 | m_SavedProperties: 13 | serializedVersion: 2 14 | m_TexEnvs: 15 | data: 16 | first: 17 | name: _MainTex 18 | second: 19 | m_Texture: {fileID: 2800000, guid: 5fdf26de8675b438c8962fd8cfb35850, type: 3} 20 | m_Scale: {x: 1, y: 1} 21 | m_Offset: {x: 0, y: 0} 22 | m_Floats: {} 23 | m_Colors: 24 | data: 25 | first: 26 | name: _Color 27 | second: {r: 1, g: 1, b: 1, a: 1} 28 | -------------------------------------------------------------------------------- /Assets/Test Images/FOV.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1523db43361334847b598ea9405712f0 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Test Images/Test Pattern.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 3 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Test Pattern 10 | m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: [] 12 | m_SavedProperties: 13 | serializedVersion: 2 14 | m_TexEnvs: 15 | data: 16 | first: 17 | name: _MainTex 18 | second: 19 | m_Texture: {fileID: 2800000, guid: e34e2a18266184fc0b303602da1280e3, type: 3} 20 | m_Scale: {x: 1, y: 1} 21 | m_Offset: {x: 0, y: 0} 22 | m_Floats: {} 23 | m_Colors: 24 | data: 25 | first: 26 | name: _Color 27 | second: {r: 1, g: 1, b: 1, a: 1} 28 | -------------------------------------------------------------------------------- /Assets/Test Images/Test Pattern.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b831d0dbc3a4c494ca7deb3417f22931 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Test Images/Test Pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-pm-tutorial/705a8753daae0e7ce0390205a39e1891d1ac2718/Assets/Test Images/Test Pattern.png -------------------------------------------------------------------------------- /Assets/Test Images/Test Pattern.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e34e2a18266184fc0b303602da1280e3 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | alphaIsTransparency: 0 34 | textureType: -1 35 | buildTargetSettings: [] 36 | userData: 37 | -------------------------------------------------------------------------------- /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 | m_SpeedOfSound: 347 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_DSPBufferSize: 0 12 | m_DisableAudio: 0 13 | -------------------------------------------------------------------------------- /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 | m_Gravity: {x: 0, y: -9.81000042, z: 0} 7 | m_DefaultMaterial: {fileID: 0} 8 | m_BounceThreshold: 2 9 | m_SleepVelocity: .150000006 10 | m_SleepAngularVelocity: .140000001 11 | m_MaxAngularVelocity: 7 12 | m_MinPenetrationForPenalty: .00999999978 13 | m_SolverIterationCount: 6 14 | m_RaycastsHitTriggers: 1 15 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 16 | -------------------------------------------------------------------------------- /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/Scenes/Box.unity 10 | -------------------------------------------------------------------------------- /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: 2 7 | m_ExternalVersionControlSupport: Meta Files 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | -------------------------------------------------------------------------------- /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 | m_AlwaysIncludedShaders: 7 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 8 | -------------------------------------------------------------------------------- /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 | m_Axes: 7 | - serializedVersion: 3 8 | m_Name: Horizontal 9 | descriptiveName: 10 | descriptiveNegativeName: 11 | negativeButton: left 12 | positiveButton: right 13 | altNegativeButton: a 14 | altPositiveButton: d 15 | gravity: 3 16 | dead: .00100000005 17 | sensitivity: 3 18 | snap: 1 19 | invert: 0 20 | type: 0 21 | axis: 0 22 | joyNum: 0 23 | - serializedVersion: 3 24 | m_Name: Vertical 25 | descriptiveName: 26 | descriptiveNegativeName: 27 | negativeButton: down 28 | positiveButton: up 29 | altNegativeButton: s 30 | altPositiveButton: w 31 | gravity: 3 32 | dead: .00100000005 33 | sensitivity: 3 34 | snap: 1 35 | invert: 0 36 | type: 0 37 | axis: 0 38 | joyNum: 0 39 | - serializedVersion: 3 40 | m_Name: Fire1 41 | descriptiveName: 42 | descriptiveNegativeName: 43 | negativeButton: 44 | positiveButton: left ctrl 45 | altNegativeButton: 46 | altPositiveButton: mouse 0 47 | gravity: 1000 48 | dead: .00100000005 49 | sensitivity: 1000 50 | snap: 0 51 | invert: 0 52 | type: 0 53 | axis: 0 54 | joyNum: 0 55 | - serializedVersion: 3 56 | m_Name: Fire2 57 | descriptiveName: 58 | descriptiveNegativeName: 59 | negativeButton: 60 | positiveButton: left alt 61 | altNegativeButton: 62 | altPositiveButton: mouse 1 63 | gravity: 1000 64 | dead: .00100000005 65 | sensitivity: 1000 66 | snap: 0 67 | invert: 0 68 | type: 0 69 | axis: 0 70 | joyNum: 0 71 | - serializedVersion: 3 72 | m_Name: Fire3 73 | descriptiveName: 74 | descriptiveNegativeName: 75 | negativeButton: 76 | positiveButton: left cmd 77 | altNegativeButton: 78 | altPositiveButton: mouse 2 79 | gravity: 1000 80 | dead: .00100000005 81 | sensitivity: 1000 82 | snap: 0 83 | invert: 0 84 | type: 0 85 | axis: 0 86 | joyNum: 0 87 | - serializedVersion: 3 88 | m_Name: Jump 89 | descriptiveName: 90 | descriptiveNegativeName: 91 | negativeButton: 92 | positiveButton: space 93 | altNegativeButton: 94 | altPositiveButton: 95 | gravity: 1000 96 | dead: .00100000005 97 | sensitivity: 1000 98 | snap: 0 99 | invert: 0 100 | type: 0 101 | axis: 0 102 | joyNum: 0 103 | - serializedVersion: 3 104 | m_Name: Mouse X 105 | descriptiveName: 106 | descriptiveNegativeName: 107 | negativeButton: 108 | positiveButton: 109 | altNegativeButton: 110 | altPositiveButton: 111 | gravity: 0 112 | dead: 0 113 | sensitivity: .100000001 114 | snap: 0 115 | invert: 0 116 | type: 1 117 | axis: 0 118 | joyNum: 0 119 | - serializedVersion: 3 120 | m_Name: Mouse Y 121 | descriptiveName: 122 | descriptiveNegativeName: 123 | negativeButton: 124 | positiveButton: 125 | altNegativeButton: 126 | altPositiveButton: 127 | gravity: 0 128 | dead: 0 129 | sensitivity: .100000001 130 | snap: 0 131 | invert: 0 132 | type: 1 133 | axis: 1 134 | joyNum: 0 135 | - serializedVersion: 3 136 | m_Name: Mouse ScrollWheel 137 | descriptiveName: 138 | descriptiveNegativeName: 139 | negativeButton: 140 | positiveButton: 141 | altNegativeButton: 142 | altPositiveButton: 143 | gravity: 0 144 | dead: 0 145 | sensitivity: .100000001 146 | snap: 0 147 | invert: 0 148 | type: 1 149 | axis: 2 150 | joyNum: 0 151 | - serializedVersion: 3 152 | m_Name: Horizontal 153 | descriptiveName: 154 | descriptiveNegativeName: 155 | negativeButton: 156 | positiveButton: 157 | altNegativeButton: 158 | altPositiveButton: 159 | gravity: 0 160 | dead: .189999998 161 | sensitivity: 1 162 | snap: 0 163 | invert: 0 164 | type: 2 165 | axis: 0 166 | joyNum: 0 167 | - serializedVersion: 3 168 | m_Name: Vertical 169 | descriptiveName: 170 | descriptiveNegativeName: 171 | negativeButton: 172 | positiveButton: 173 | altNegativeButton: 174 | altPositiveButton: 175 | gravity: 0 176 | dead: .189999998 177 | sensitivity: 1 178 | snap: 0 179 | invert: 1 180 | type: 2 181 | axis: 1 182 | joyNum: 0 183 | - serializedVersion: 3 184 | m_Name: Fire1 185 | descriptiveName: 186 | descriptiveNegativeName: 187 | negativeButton: 188 | positiveButton: joystick button 0 189 | altNegativeButton: 190 | altPositiveButton: 191 | gravity: 1000 192 | dead: .00100000005 193 | sensitivity: 1000 194 | snap: 0 195 | invert: 0 196 | type: 0 197 | axis: 0 198 | joyNum: 0 199 | - serializedVersion: 3 200 | m_Name: Fire2 201 | descriptiveName: 202 | descriptiveNegativeName: 203 | negativeButton: 204 | positiveButton: joystick button 1 205 | altNegativeButton: 206 | altPositiveButton: 207 | gravity: 1000 208 | dead: .00100000005 209 | sensitivity: 1000 210 | snap: 0 211 | invert: 0 212 | type: 0 213 | axis: 0 214 | joyNum: 0 215 | - serializedVersion: 3 216 | m_Name: Fire3 217 | descriptiveName: 218 | descriptiveNegativeName: 219 | negativeButton: 220 | positiveButton: joystick button 2 221 | altNegativeButton: 222 | altPositiveButton: 223 | gravity: 1000 224 | dead: .00100000005 225 | sensitivity: 1000 226 | snap: 0 227 | invert: 0 228 | type: 0 229 | axis: 0 230 | joyNum: 0 231 | - serializedVersion: 3 232 | m_Name: Jump 233 | descriptiveName: 234 | descriptiveNegativeName: 235 | negativeButton: 236 | positiveButton: joystick button 3 237 | altNegativeButton: 238 | altPositiveButton: 239 | gravity: 1000 240 | dead: .00100000005 241 | sensitivity: 1000 242 | snap: 0 243 | invert: 0 244 | type: 0 245 | axis: 0 246 | joyNum: 0 247 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshLayers.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshLayers: 5 | m_ObjectHideFlags: 0 6 | Built-in Layer 0: 7 | name: Default 8 | cost: 1 9 | editType: 2 10 | Built-in Layer 1: 11 | name: Not Walkable 12 | cost: 1 13 | editType: 0 14 | Built-in Layer 2: 15 | name: Jump 16 | cost: 2 17 | editType: 2 18 | User Layer 0: 19 | name: 20 | cost: 1 21 | editType: 3 22 | User Layer 1: 23 | name: 24 | cost: 1 25 | editType: 3 26 | User Layer 2: 27 | name: 28 | cost: 1 29 | editType: 3 30 | User Layer 3: 31 | name: 32 | cost: 1 33 | editType: 3 34 | User Layer 4: 35 | name: 36 | cost: 1 37 | editType: 3 38 | User Layer 5: 39 | name: 40 | cost: 1 41 | editType: 3 42 | User Layer 6: 43 | name: 44 | cost: 1 45 | editType: 3 46 | User Layer 7: 47 | name: 48 | cost: 1 49 | editType: 3 50 | User Layer 8: 51 | name: 52 | cost: 1 53 | editType: 3 54 | User Layer 9: 55 | name: 56 | cost: 1 57 | editType: 3 58 | User Layer 10: 59 | name: 60 | cost: 1 61 | editType: 3 62 | User Layer 11: 63 | name: 64 | cost: 1 65 | editType: 3 66 | User Layer 12: 67 | name: 68 | cost: 1 69 | editType: 3 70 | User Layer 13: 71 | name: 72 | cost: 1 73 | editType: 3 74 | User Layer 14: 75 | name: 76 | cost: 1 77 | editType: 3 78 | User Layer 15: 79 | name: 80 | cost: 1 81 | editType: 3 82 | User Layer 16: 83 | name: 84 | cost: 1 85 | editType: 3 86 | User Layer 17: 87 | name: 88 | cost: 1 89 | editType: 3 90 | User Layer 18: 91 | name: 92 | cost: 1 93 | editType: 3 94 | User Layer 19: 95 | name: 96 | cost: 1 97 | editType: 3 98 | User Layer 20: 99 | name: 100 | cost: 1 101 | editType: 3 102 | User Layer 21: 103 | name: 104 | cost: 1 105 | editType: 3 106 | User Layer 22: 107 | name: 108 | cost: 1 109 | editType: 3 110 | User Layer 23: 111 | name: 112 | cost: 1 113 | editType: 3 114 | User Layer 24: 115 | name: 116 | cost: 1 117 | editType: 3 118 | User Layer 25: 119 | name: 120 | cost: 1 121 | editType: 3 122 | User Layer 26: 123 | name: 124 | cost: 1 125 | editType: 3 126 | User Layer 27: 127 | name: 128 | cost: 1 129 | editType: 3 130 | User Layer 28: 131 | name: 132 | cost: 1 133 | editType: 3 134 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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: 2 7 | AndroidProfiler: 0 8 | defaultScreenOrientation: 0 9 | targetDevice: 2 10 | targetGlesGraphics: 1 11 | targetResolution: 0 12 | accelerometerFrequency: 60 13 | companyName: DefaultCompany 14 | productName: unity-pm-testbed 15 | defaultCursor: {fileID: 0} 16 | cursorHotspot: {x: 0, y: 0} 17 | defaultScreenWidth: 1024 18 | defaultScreenHeight: 768 19 | defaultScreenWidthWeb: 960 20 | defaultScreenHeightWeb: 600 21 | m_RenderingPath: 1 22 | m_ActiveColorSpace: 0 23 | m_MTRendering: 1 24 | m_UseDX11: 0 25 | iosShowActivityIndicatorOnLoading: -1 26 | androidShowActivityIndicatorOnLoading: -1 27 | displayResolutionDialog: 1 28 | allowedAutorotateToPortrait: 1 29 | allowedAutorotateToPortraitUpsideDown: 1 30 | allowedAutorotateToLandscapeRight: 1 31 | allowedAutorotateToLandscapeLeft: 1 32 | useOSAutorotation: 1 33 | use32BitDisplayBuffer: 1 34 | use24BitDepthBuffer: 0 35 | defaultIsFullScreen: 1 36 | defaultIsNativeResolution: 1 37 | runInBackground: 0 38 | captureSingleScreen: 0 39 | Override IPod Music: 0 40 | Prepare IOS For Recording: 0 41 | enableHWStatistics: 1 42 | usePlayerLog: 1 43 | stripPhysics: 0 44 | forceSingleInstance: 0 45 | resizableWindow: 0 46 | useMacAppStoreValidation: 0 47 | gpuSkinning: 1 48 | xboxEnableAvatar: 0 49 | xboxEnableKinect: 0 50 | xboxEnableKinectAutoTracking: 0 51 | xboxEnableFitness: 0 52 | macFullscreenMode: 2 53 | xboxSpeechDB: 0 54 | xboxEnableHeadOrientation: 0 55 | wiiHio2Usage: -1 56 | wiiLoadingScreenRectPlacement: 0 57 | wiiLoadingScreenBackground: {r: 1, g: 1, b: 1, a: 1} 58 | wiiLoadingScreenPeriod: 1000 59 | wiiLoadingScreenFileName: 60 | wiiLoadingScreenRect: 61 | serializedVersion: 2 62 | x: 0 63 | y: 0 64 | width: 0 65 | height: 0 66 | m_SupportedAspectRatios: 67 | 4:3: 1 68 | 5:4: 1 69 | 16:10: 1 70 | 16:9: 1 71 | Others: 1 72 | iPhoneBundleIdentifier: com.Company.ProductName 73 | productGUID: a18f240ad7d0146b7a990002bef7cc79 74 | iPhoneBundleVersion: 1.0 75 | AndroidBundleVersionCode: 1 76 | AndroidMinSdkVersion: 6 77 | AndroidPreferredInstallLocation: 1 78 | aotOptions: 79 | apiCompatibilityLevel: 2 80 | iPhoneStrippingLevel: 0 81 | iPhoneScriptCallOptimization: 0 82 | ForceInternetPermission: 0 83 | ForceSDCardPermission: 0 84 | CreateWallpaper: 0 85 | APKExpansionFiles: 0 86 | StripUnusedMeshComponents: 0 87 | iPhoneSdkVersion: 988 88 | iPhoneTargetOSVersion: 10 89 | uIPrerenderedIcon: 0 90 | uIRequiresPersistentWiFi: 0 91 | uIStatusBarHidden: 1 92 | uIExitOnSuspend: 0 93 | uIStatusBarStyle: 0 94 | iPhoneSplashScreen: {fileID: 0} 95 | iPhoneHighResSplashScreen: {fileID: 0} 96 | iPhoneTallHighResSplashScreen: {fileID: 0} 97 | iPadPortraitSplashScreen: {fileID: 0} 98 | iPadHighResPortraitSplashScreen: {fileID: 0} 99 | iPadLandscapeSplashScreen: {fileID: 0} 100 | iPadHighResLandscapeSplashScreen: {fileID: 0} 101 | AndroidTargetDevice: 0 102 | AndroidSplashScreenScale: 0 103 | AndroidKeystoreName: 104 | AndroidKeyaliasName: 105 | resolutionDialogBanner: {fileID: 0} 106 | m_BuildTargetIcons: 107 | - m_BuildTarget: 108 | m_Icons: 109 | - m_Icon: {fileID: 0} 110 | m_Size: 128 111 | m_BuildTargetBatching: [] 112 | webPlayerTemplate: APPLICATION:Default 113 | m_TemplateCustomTags: {} 114 | wiiRegion: 1 115 | wiiGameCode: RABA 116 | wiiGameVersion: 117 | wiiCompanyCode: ZZ 118 | wiiSupportsNunchuk: 0 119 | wiiSupportsClassicController: 0 120 | wiiSupportsBalanceBoard: 0 121 | wiiSupportsMotionPlus: 0 122 | wiiControllerCount: 1 123 | wiiFloatingPointExceptions: 0 124 | wiiScreenCrashDumps: 1 125 | XboxTitleId: 126 | XboxImageXexPath: 127 | XboxSpaPath: 128 | XboxGenerateSpa: 0 129 | XboxDeployKinectResources: 0 130 | XboxSplashScreen: {fileID: 0} 131 | xboxEnableSpeech: 0 132 | xboxAdditionalTitleMemorySize: 0 133 | xboxDeployKinectHeadOrientation: 0 134 | xboxDeployKinectHeadPosition: 0 135 | ps3TitleConfigPath: 136 | ps3DLCConfigPath: 137 | ps3ThumbnailPath: 138 | ps3BackgroundPath: 139 | ps3SoundPath: 140 | ps3TrophyCommId: 141 | ps3NpCommunicationPassphrase: 142 | ps3TrophyPackagePath: 143 | ps3BootCheckMaxSaveGameSizeKB: 128 144 | ps3TrophyCommSig: 145 | ps3SaveGameSlots: 1 146 | ps3TrialMode: 0 147 | flashStrippingLevel: 2 148 | scriptingDefineSymbols: {} 149 | metroPackageName: unity-pm-testbed 150 | metroPackageLogo: 151 | metroPackageVersion: 152 | metroCertificatePath: 153 | metroCertificatePassword: 154 | metroCertificateSubject: 155 | metroCertificateIssuer: 156 | metroCertificateNotAfter: 0000000000000000 157 | metroApplicationDescription: unity-pm-testbed 158 | metroTileLogo: 159 | metroTileWideLogo: 160 | metroTileSmallLogo: 161 | metroTileShortName: 162 | metroCommandLineArgsFile: 163 | metroTileShowName: 0 164 | metroTileForegroundText: 1 165 | metroTileBackgroundColor: {r: 0, g: 0, b: 0, a: 1} 166 | metroSplashScreenImage: 167 | metroSplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1} 168 | metroSplashScreenUseBackgroundColor: 0 169 | metroCapabilities: {} 170 | metroCompilationOverrides: 1 171 | blackberryDeviceAddress: 172 | blackberryDevicePassword: 173 | blackberryTokenPath: 174 | blackberryTokenExires: 175 | blackberryTokenAuthor: 176 | blackberryTokenAuthorId: 177 | blackberryAuthorId: 178 | blackberryCskPassword: 179 | blackberrySaveLogPath: 180 | blackberryAuthorIdOveride: 0 181 | blackberrySharedPermissions: 0 182 | blackberryCameraPermissions: 0 183 | blackberryGPSPermissions: 0 184 | blackberryDeviceIDPermissions: 0 185 | blackberryMicrophonePermissions: 0 186 | blackberryBuildId: 0 187 | blackberryLandscapeSplashScreen: {fileID: 0} 188 | blackberryPortraitSplashScreen: {fileID: 0} 189 | blackberrySquareSplashScreen: {fileID: 0} 190 | firstStreamedLevelWithResources: 0 191 | unityRebuildLibraryVersion: 9 192 | unityForwardCompatibleVersion: 38 193 | unityStandardAssetsVersion: 0 194 | -------------------------------------------------------------------------------- /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: 3 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Fastest 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | blendWeights: 1 18 | textureQuality: 1 19 | anisotropicTextures: 0 20 | antiAliasing: 0 21 | softParticles: 0 22 | softVegetation: 0 23 | vSyncCount: 0 24 | lodBias: .300000012 25 | maximumLODLevel: 0 26 | particleRaycastBudget: 4 27 | excludedTargetPlatforms: [] 28 | - serializedVersion: 2 29 | name: Fast 30 | pixelLightCount: 0 31 | shadows: 0 32 | shadowResolution: 0 33 | shadowProjection: 1 34 | shadowCascades: 1 35 | shadowDistance: 20 36 | blendWeights: 2 37 | textureQuality: 0 38 | anisotropicTextures: 0 39 | antiAliasing: 0 40 | softParticles: 0 41 | softVegetation: 0 42 | vSyncCount: 0 43 | lodBias: .400000006 44 | maximumLODLevel: 0 45 | particleRaycastBudget: 16 46 | excludedTargetPlatforms: [] 47 | - serializedVersion: 2 48 | name: Simple 49 | pixelLightCount: 1 50 | shadows: 1 51 | shadowResolution: 0 52 | shadowProjection: 1 53 | shadowCascades: 1 54 | shadowDistance: 20 55 | blendWeights: 2 56 | textureQuality: 0 57 | anisotropicTextures: 1 58 | antiAliasing: 0 59 | softParticles: 0 60 | softVegetation: 0 61 | vSyncCount: 0 62 | lodBias: .699999988 63 | maximumLODLevel: 0 64 | particleRaycastBudget: 64 65 | excludedTargetPlatforms: [] 66 | - serializedVersion: 2 67 | name: Good 68 | pixelLightCount: 2 69 | shadows: 2 70 | shadowResolution: 1 71 | shadowProjection: 1 72 | shadowCascades: 2 73 | shadowDistance: 400 74 | blendWeights: 2 75 | textureQuality: 0 76 | anisotropicTextures: 1 77 | antiAliasing: 0 78 | softParticles: 0 79 | softVegetation: 1 80 | vSyncCount: 1 81 | lodBias: 1 82 | maximumLODLevel: 0 83 | particleRaycastBudget: 256 84 | excludedTargetPlatforms: [] 85 | - serializedVersion: 2 86 | name: Beautiful 87 | pixelLightCount: 3 88 | shadows: 2 89 | shadowResolution: 2 90 | shadowProjection: 1 91 | shadowCascades: 2 92 | shadowDistance: 70 93 | blendWeights: 4 94 | textureQuality: 0 95 | anisotropicTextures: 2 96 | antiAliasing: 2 97 | softParticles: 1 98 | softVegetation: 1 99 | vSyncCount: 1 100 | lodBias: 1.5 101 | maximumLODLevel: 0 102 | particleRaycastBudget: 1024 103 | excludedTargetPlatforms: [] 104 | - serializedVersion: 2 105 | name: Fantastic 106 | pixelLightCount: 4 107 | shadows: 2 108 | shadowResolution: 2 109 | shadowProjection: 1 110 | shadowCascades: 4 111 | shadowDistance: 150 112 | blendWeights: 4 113 | textureQuality: 0 114 | anisotropicTextures: 2 115 | antiAliasing: 2 116 | softParticles: 1 117 | softVegetation: 1 118 | vSyncCount: 1 119 | lodBias: 2 120 | maximumLODLevel: 0 121 | particleRaycastBudget: 4096 122 | excludedTargetPlatforms: [] 123 | m_PerPlatformDefaultQuality: 124 | Android: 2 125 | BlackBerry: 2 126 | FlashPlayer: 3 127 | GLES Emulation: 3 128 | PS3: 3 129 | Standalone: 3 130 | WP8: 3 131 | Web: 3 132 | Wii: 3 133 | Windows Store Apps: 3 134 | XBOX360: 3 135 | iPhone: 2 136 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | tags: 6 | - 7 | Builtin Layer 0: Default 8 | Builtin Layer 1: TransparentFX 9 | Builtin Layer 2: Ignore Raycast 10 | Builtin Layer 3: 11 | Builtin Layer 4: Water 12 | Builtin Layer 5: 13 | Builtin Layer 6: 14 | Builtin Layer 7: 15 | User Layer 8: Projector View 16 | User Layer 9: Audience View 17 | User Layer 10: 18 | User Layer 11: 19 | User Layer 12: 20 | User Layer 13: 21 | User Layer 14: 22 | User Layer 15: 23 | User Layer 16: 24 | User Layer 17: 25 | User Layer 18: 26 | User Layer 19: 27 | User Layer 20: 28 | User Layer 21: 29 | User Layer 22: 30 | User Layer 23: 31 | User Layer 24: 32 | User Layer 25: 33 | User Layer 26: 34 | User Layer 27: 35 | User Layer 28: 36 | User Layer 29: 37 | User Layer 30: 38 | User Layer 31: 39 | -------------------------------------------------------------------------------- /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: .0199999996 7 | Maximum Allowed Timestep: .333333343 8 | m_TimeScale: 1 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Unity によるプロジェクションマッピング入門 2 | ========================================== 3 | 4 | Unity を使ってプロジェクションマッピングをやってみましょう。プロジェクターさえあれば、意外と簡単にできちゃいます。 5 | 6 | 必要なもの 7 | ---------- 8 | 9 | ### Unity 10 | 11 | 後述する「仮想シーンの投影」を行う場合は Pro ライセンスが必要になります(Render Texture 使用のため)が、簡単なマッピングであれば無料ライセンスだけでも十分です。 12 | 13 | ### 適当なプロジェクター 14 | 15 | スペックは低くても構いません。小規模なものであればポケットプロジェクターでも可能です。 16 | 17 | ### 投影対象となる物体 18 | 19 | 最初は箱などの単純な形状の物体から挑戦すると良いでしょう。白い紙を貼った段ボール箱やティッシュ箱などで構いません。 20 | 21 | ### 測定器具 22 | 23 | 大きさ、距離、傾きなどを測定する器具があると便利です。例えば、ここで紹介する事例では次のような器具を使いました。 24 | 25 | - メジャー 26 | - レーザー距離計 27 | - iPhone の傾斜計 28 | - iPhone のカメラ 29 | 30 | ティッシュ箱ぐらいの規模であればレーザー距離計は不要ですが、段ボール箱の規模になると欲しくなってきます。それ以上なら必須と考えてよいでしょう。 31 | 32 | iPhone の傾斜計はコンパスアプリに付属されているものです。プロジェクターの傾斜を計るのに使います。カメラはプロジェクターの投射角の測定などに使います。 33 | 34 | 前準備 35 | ------ 36 | 37 | 作業を始める前に、まずプロジェクターの設定を調整しておきましょう。 38 | 39 | - 台形補正機能を搭載している機種では、これを off にします。 40 | - 投影サイズの変更(ズームレンズ)ができる機種では、これを最も小さい(狭角)設定にします。 41 | 42 | その他にも、明るさの自動調整や、高さの自動調整の機能がある場合は、これを切っておくとよいでしょう。 43 | 44 | シーンのセットアップ(実世界側) 45 | -------------------------------- 46 | 47 | 今回は、白い段ボール箱を投影対象として、下図のようなセットアップにしました。 48 | 49 | ![Setup](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig1.jpg) 50 | 51 | - 箱は人の肩ぐらいの高さに配置。 52 | - プロジェクターは机の上に配置。 53 | - プロジェクターの投射画面のほぼ中心に箱がくるよう調整。 54 | - 観客はプロジェクターの左後方 1m 辺りにいるものとする。 55 | 56 | だいたいの配置を行ってから、下図のようなテストパターンを表示して、ほぼ中心に箱が位置するように調整しました。 57 | 58 | ![Test projection](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig2.jpg) 59 | 60 | プロジェクターの縦位置調整(傾き調整)は操作が難しく、ぴったりと中心に合わせることはできないかもしれません。大まかに合わせておけばよいでしょう。左右については調整が容易なので、この時点でぴったりと合わせておくことにします。この時点でなるべく不定な要素を潰しておいた方が、あとの調整が楽になるからです。 61 | 62 | シーンのセットアップ(Unity 側) 63 | -------------------------------- 64 | 65 | 上で作成したシーンを Unity 上に再現します。プロジェクターの位置にはカメラを配置します。 66 | 67 | まずは箱のサイズを測定してモデリングします。こんな感じでテストパターンを貼付けておくとよいでしょう。 68 | 69 | ![Modeling](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig3.png) 70 | 71 | 箱の位置を特定します。プロジェクターに近い方の縦辺をシーンの基準として、(0,*,0) 上に位置するものとしましょう。高さは距離計で計ります。 72 | 73 | ![Box position](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig4.jpg) 74 | 75 | 上端が 1.847m の高さにあることが分かりました。箱の上手前の頂点がピボットになるよう編集したのち、この点を (0, 184.7, 0) に配置します。 76 | 77 | ![Box position](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig5.png) 78 | 79 | 箱の姿勢(Y軸回転)については、大まかな角度を目で求めて設定しておきます。今回のセットアップでは箱の姿勢以外のすべての変数が実測可能なので、姿勢だけは不定な変数として放置することができるのです。 80 | 81 | 次に、プロジェクターの位置にカメラを配置します。距離計で高さを計ります。 82 | 83 | ![Projector position](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig6.jpg) 84 | 85 | Z座標の特定のために、基準軸からの距離を計ります。タンジェントから算出する方法もありますが、ここでは下図のようにメジャーを垂らして位置合わせをしつつ水平距離を計りました。 86 | 87 | ![Projector position](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig7.jpg) 88 | 89 | プロジェクターの傾きを測定します。このとき、プロジェクター本体の傾きは参考にならないので注意してください。プロジェクター本体の角度と投射方向が一致していないケースもあるためです。下図のように板を当てて投射錐体を視覚化したうえで、赤線の角度を傾斜計で測定します。その2つの角度の平均値をカメラの姿勢として使います。 90 | 91 | ![Projector attitude](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig8.jpg) 92 | 93 | また、プロジェクターの投射角とカメラの FOV (Field of View) を一致させる必要があります。上で求めた赤線角度の差分がそのまま FOV 値として使えます。また、下図のように写真を取り込んで、Unity の Scene ビュー上で角度を一致させることでも調整が可能です。 94 | 95 | ![Field of view](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig9.png) 96 | 97 | 調整 98 | ---- 99 | 100 | シーンのセットアップが完了したら、プロジェクター側の画面で Game ビューを最大化します。恐らく箱の姿勢(Y軸角度)だけがずれているはずなので、画面を見ながらこの値を増減して調整します。投射される箱と実世界の箱がぴったりと一致する値が見つかればビンゴです。 101 | 102 | ![Test projection](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig10.jpg) 103 | 104 | ただ、多くの場合、一発では一致しません。微妙にずれていたり、まったく見当外れな位置に投射されてしまうかもしれません。大幅にずれている場合は測定に何か致命的なミスがあったと考えられます。値の確認や再測定を行いましょう。微妙にずれている場合は、座標の微調整か、あるいは実物の配置の微調整により対処できます。 105 | 106 | ひとまずまとめ 107 | -------------- 108 | 109 | ここまでのセットアップにより、箱の各面に任意のテクスチャを投影できるようになりました。視点に依存する類のテクニックを用いることはできませんが、それでもできることは多々あります。たとえばこんなのはどうでしょう? 110 | 111 | ![Mountain Brick](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig11.jpg) 112 | 113 | [Mountain Brick — Video Game Mapping](https://vimeo.com/71260089) 114 | 115 | じっさいに試してみると分かりますが、実世界の物体を自由に光らせることができるというのは、意外と面白いものです。この効果を使って、単なるスクリーンへの投影とは一風違った表現・演出を模索してみると面白いかもしれません。 116 | 117 | 仮想シーンの投影 118 | ---------------- 119 | 120 | プロジェクションマッピングでよく用いられる演出のひとつに、現実とは異なる仮想シーンを投影することによって得られる錯視効果があります。これを多用した作品として、例えば次のようなものがあります。 121 | 122 | ![Box - Bot & Dolly](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig12.jpg) 123 | 124 | [Box - Bot & Dolly](https://vimeo.com/75260457) 125 | 126 | この手の演出は観客の視点位置に依存するという制約がありますが、効果的に用いることで、現実の物体のあり方を変えるような——観客の現実感を CG で上書きするような、とても幻惑的な効果を導き出すことができます。 127 | 128 | 例として、先ほどセットアップした箱の中に、下図のような「仮想の箱」を投影することを考えてみましょう。 129 | 130 | ![Scene projection](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig13.jpg) 131 | 132 | このような効果を得るには、Unity の中で仮想シーンを箱にプロジェクションマップしてから、実世界の中でその結果を箱にプロジェクションマップする、という、2段階のプロジェクションマップを行う必要があります。 133 | 134 | 具体的には次のようなセットアップになります。 135 | 136 | - 「仮想の箱」をセットアップする。現実の箱と同じ座標上に配置します。 137 | - 観客の視点の位置にカメラを配置する。 138 | - 観客視点カメラから render texture へレンダリングを行う。 139 | - Projector コンポーネントを使って render texture を箱に投影する。 140 | 141 | ![Setup](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig14.png) 142 | 143 | このようなセットアップを行うことで、観客の視点から見た仮想シーンの風景が(Unity の中で)箱へ投影され、その結果が(実世界の中で)現実の箱に投影されるわけです。 144 | 145 | 設定をうまく行うには layer を駆使するとよいでしょう。観客視点の仮想シーンに属するオブジェクトは "Audience" layer に、プロジェクター視点の実世界シーンに属するオブジェクトは "Projector" layer に、というように layer で分類分けし、各々のカメラでは適切なオブジェクトだけがレンダリングされるように調整していきます。 146 | 147 | ![Layers](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig15.png) 148 | 149 | 観客視点カメラの FOV は自由に設定できますが、Projector コンポーネントの FOV と必ず一致させるよう注意してください。狭くするほど画質は高まりますが、仮想シーンの範囲も狭まります。 150 | 151 | ![Audience camera FOV](https://github.com/keijiro/unity-pm-tutorial/raw/gh-pages/images/fig16.png) 152 | 153 | Render texture の内容を Projector コンポーネントによって投影する際に、少し特殊なシェーダーを使う必要があります。ライティングや減衰係数を無視して render texture の内容をそのままプロジェクションするシェーダーを用意しました。 154 | 155 | [Assets/Projector/Projector.shader](https://github.com/keijiro/unity-pm-tutorial/blob/master/Assets/Projector/Projector.shader) 156 | 157 | 特にこだわりが無ければ、これをそのまま使えばよいでしょう。 158 | 159 | ふたたびまとめ 160 | -------------- 161 | 162 | 以上で Unity を使ったプロジェクションマッピングの基礎は終了です。ここで解説した内容は、プロジェクションマッピングにおいてはごく基本的なテクニックに過ぎませんが、これらのテクニックだけでもいろいろな遊びができます。 163 | 164 | - [Vine - Unity でプロジェクションマッピングの実験中。ダンボールの中に箱が浮いてる?](https://vine.co/v/h60OjVAAhpi) 165 | - [Vine - 非現実的なものを出しても面白いかもしれない(Unity でプロジェクションマッピング](https://vine.co/v/h60xgxb0DBD) 166 | - [Vine - Unity を使ったプロジェクションマッピング続き。暗くなって実験しやすくなった。箱の中に囚われた天使?](https://vine.co/v/h69rizwLKqO) 167 | 168 | また、ライティングを使って錯視を生み出すような使い方も面白いです。これも上で解説したテクニックの応用で実現できます。 169 | 170 | - [Vine - 壁から生やす系(Unity でプロジェクションマッピング](https://vine.co/v/hgPaQ5nqjAZ) 171 | - [Vine - 壁に灯りを点ける→何か生えてくる(Unity でプロジェクションマッピング](https://vine.co/v/hgP156Bl3a9) 172 | 173 | プロジェクションマッピングを実現する手段は Unity 以外にもいろいろあります。そこで敢えて Unity を用いるメリットは、プロトタイプの作りやすさにあります。既に仕様の決まったものを製作するのではなく、様々な実験をその上で行いたいような場合に、Unity は便利な道具となりえるでしょう。特にインタラクティブ性を持つ作品を製作するにあたっては、大きなアドバンテージを持っていると考えられます。 174 | 175 | プロジェクションマッピングに興味を持ちつつも実際に試したことが無いという方は、これを機会に Unity でのプロジェクションマッピングに挑戦してみてはいかがでしょうか。 176 | --------------------------------------------------------------------------------