├── .github └── workflows │ └── npm.yaml ├── .gitignore ├── Assets ├── Samples.meta ├── Samples │ ├── ImageTextureSource.asset │ ├── ImageTextureSource.asset.meta │ ├── SampleScene.unity │ ├── SampleScene.unity.meta │ ├── VideoTextureSource.asset │ ├── VideoTextureSource.asset.meta │ ├── WebCamTextureSource.asset │ ├── WebCamTextureSource.asset.meta │ ├── a.mp4 │ ├── a.mp4.meta │ ├── b.mp4 │ ├── b.mp4.meta │ ├── icon_toggle_camera.png │ └── icon_toggle_camera.png.meta ├── Settings.meta └── Settings │ ├── DefaultVolumeProfile.asset │ ├── DefaultVolumeProfile.asset.meta │ ├── URP Asset.asset │ ├── URP Asset.asset.meta │ ├── URP Asset_Renderer.asset │ ├── URP Asset_Renderer.asset.meta │ ├── URP GlobalSettings.asset │ └── URP GlobalSettings.asset.meta ├── LICENSE ├── Packages ├── com.github.asus4.texture-source │ ├── LICENSE │ ├── LICENSE.meta │ ├── README.md │ ├── README.md.meta │ ├── Resources.meta │ ├── Resources │ │ ├── com.github.asus4.texture-source.meta │ │ └── com.github.asus4.texture-source │ │ │ ├── TextureTransform.compute │ │ │ └── TextureTransform.compute.meta │ ├── Runtime.meta │ ├── Runtime │ │ ├── ARFoundationDepthTextureSource.cs │ │ ├── ARFoundationDepthTextureSource.cs.meta │ │ ├── ARFoundationTextureSource.cs │ │ ├── ARFoundationTextureSource.cs.meta │ │ ├── BaseTextureSource.cs │ │ ├── BaseTextureSource.cs.meta │ │ ├── ITextureSource.cs │ │ ├── ITextureSource.cs.meta │ │ ├── ImageTextureSource.cs │ │ ├── ImageTextureSource.cs.meta │ │ ├── TextureSource.asmdef │ │ ├── TextureSource.asmdef.meta │ │ ├── TextureTransformer.cs │ │ ├── TextureTransformer.cs.meta │ │ ├── Utils.cs │ │ ├── Utils.cs.meta │ │ ├── VideoTextureSource.cs │ │ ├── VideoTextureSource.cs.meta │ │ ├── VirtualTextureSource.cs │ │ ├── VirtualTextureSource.cs.meta │ │ ├── WebCamTextureSource.cs │ │ └── WebCamTextureSource.cs.meta │ ├── Shaders.meta │ ├── Shaders │ │ ├── ARCoreBackgroundDepth.shader │ │ ├── ARCoreBackgroundDepth.shader.meta │ │ ├── ARKitBackgroundDepth.shader │ │ └── ARKitBackgroundDepth.shader.meta │ ├── package.json │ └── package.json.meta ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── MultiplayerManager.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── ShaderGraphSettings.asset ├── TagManager.asset ├── TimeManager.asset ├── URPProjectSettings.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset └── README.md /.github/workflows/npm.yaml: -------------------------------------------------------------------------------- 1 | name: Publish to NPM 2 | on: 3 | release: 4 | types: [created] 5 | workflow_dispatch: 6 | env: 7 | # Dry-run on workflow_dispatch 8 | NPM_OPTS: ${{ github.event_name == 'workflow_dispatch' && '--dry-run' || '' }} 9 | jobs: 10 | publish: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | - uses: actions/setup-node@v4 15 | with: 16 | registry-url: 'https://registry.npmjs.org' 17 | - run: npm publish ${{ env.NPM_OPTS }} 18 | working-directory: Packages/com.github.asus4.texture-source 19 | env: 20 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Generated by gibo (https://github.com/simonwhitaker/gibo) 2 | ### https://raw.github.com/github/gitignore/d0b80a469983a7beece8fa1f5c48a8242318b531/Unity.gitignore 3 | 4 | # This .gitignore file should be placed at the root of your Unity project directory 5 | # 6 | # Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore 7 | # 8 | /[Ll]ibrary/ 9 | /[Tt]emp/ 10 | /[Oo]bj/ 11 | /[Bb]uild/ 12 | /[Bb]uilds/ 13 | /[Ll]ogs/ 14 | /[Uu]ser[Ss]ettings/ 15 | 16 | # MemoryCaptures can get excessive in size. 17 | # They also could contain extremely sensitive data 18 | /[Mm]emoryCaptures/ 19 | 20 | # Recordings can get excessive in size 21 | /[Rr]ecordings/ 22 | 23 | # Uncomment this line if you wish to ignore the asset store tools plugin 24 | # /[Aa]ssets/AssetStoreTools* 25 | 26 | # Autogenerated Jetbrains Rider plugin 27 | /[Aa]ssets/Plugins/Editor/JetBrains* 28 | 29 | # Visual Studio cache directory 30 | .vs/ 31 | 32 | # Gradle cache directory 33 | .gradle/ 34 | 35 | # Autogenerated VS/MD/Consulo solution and project files 36 | ExportedObj/ 37 | .consulo/ 38 | *.csproj 39 | *.unityproj 40 | *.sln 41 | *.suo 42 | *.tmp 43 | *.user 44 | *.userprefs 45 | *.pidb 46 | *.booproj 47 | *.svd 48 | *.pdb 49 | *.mdb 50 | *.opendb 51 | *.VC.db 52 | 53 | # Unity3D generated meta files 54 | *.pidb.meta 55 | *.pdb.meta 56 | *.mdb.meta 57 | 58 | # Unity3D generated file on crash reports 59 | sysinfo.txt 60 | 61 | # Builds 62 | *.apk 63 | *.aab 64 | *.unitypackage 65 | *.app 66 | 67 | # Crashlytics generated file 68 | crashlytics-build.properties 69 | 70 | # Packed Addressables 71 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 72 | 73 | # Temporary auto-generated Android Assets 74 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 75 | /[Aa]ssets/[Ss]treamingAssets/aa/* 76 | 77 | 78 | -------------------------------------------------------------------------------- /Assets/Samples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dbff5fb7d02114883a9af8ee2114e7cc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Samples/ImageTextureSource.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: b51cafa6a901147349bf2af15e41f6a5, type: 3} 13 | m_Name: ImageTextureSource 14 | m_EditorClassIdentifier: 15 | textures: 16 | - {fileID: 10300, guid: 0000000000000000f000000000000000, type: 0} 17 | - {fileID: 2800000, guid: f9909bc898b8c4c13aa87e1af52fd70e, type: 3} 18 | sendContinuousUpdate: 1 19 | -------------------------------------------------------------------------------- /Assets/Samples/ImageTextureSource.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 60fbb9ba3137b4169bec4c56f9030e0e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Samples/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: 10 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: 705507994} 41 | m_UseRadianceAmbientProbe: 0 42 | --- !u!157 &3 43 | LightmapSettings: 44 | m_ObjectHideFlags: 0 45 | serializedVersion: 13 46 | m_BakeOnSceneLoad: 0 47 | m_GISettings: 48 | serializedVersion: 2 49 | m_BounceScale: 1 50 | m_IndirectOutputScale: 1 51 | m_AlbedoBoost: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 1 54 | m_EnableRealtimeLightmaps: 0 55 | m_LightmapEditorSettings: 56 | serializedVersion: 12 57 | m_Resolution: 2 58 | m_BakeResolution: 40 59 | m_AtlasSize: 1024 60 | m_AO: 0 61 | m_AOMaxDistance: 1 62 | m_CompAOExponent: 1 63 | m_CompAOExponentDirect: 0 64 | m_ExtractAmbientOcclusion: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_ReflectionCompression: 2 70 | m_MixedBakeMode: 2 71 | m_BakeBackend: 1 72 | m_PVRSampling: 1 73 | m_PVRDirectSampleCount: 32 74 | m_PVRSampleCount: 500 75 | m_PVRBounces: 2 76 | m_PVREnvironmentSampleCount: 500 77 | m_PVREnvironmentReferencePointCount: 2048 78 | m_PVRFilteringMode: 2 79 | m_PVRDenoiserTypeDirect: 0 80 | m_PVRDenoiserTypeIndirect: 0 81 | m_PVRDenoiserTypeAO: 0 82 | m_PVRFilterTypeDirect: 0 83 | m_PVRFilterTypeIndirect: 0 84 | m_PVRFilterTypeAO: 0 85 | m_PVREnvironmentMIS: 0 86 | m_PVRCulling: 1 87 | m_PVRFilteringGaussRadiusDirect: 1 88 | m_PVRFilteringGaussRadiusIndirect: 5 89 | m_PVRFilteringGaussRadiusAO: 2 90 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 91 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 92 | m_PVRFilteringAtrousPositionSigmaAO: 1 93 | m_ExportTrainingData: 0 94 | m_TrainingDataDestination: TrainingData 95 | m_LightProbeSampleCountMultiplier: 4 96 | m_LightingDataAsset: {fileID: 0} 97 | m_LightingSettings: {fileID: 0} 98 | --- !u!196 &4 99 | NavMeshSettings: 100 | serializedVersion: 2 101 | m_ObjectHideFlags: 0 102 | m_BuildSettings: 103 | serializedVersion: 3 104 | agentTypeID: 0 105 | agentRadius: 0.5 106 | agentHeight: 2 107 | agentSlope: 45 108 | agentClimb: 0.4 109 | ledgeDropHeight: 0 110 | maxJumpAcrossDistance: 0 111 | minRegionArea: 2 112 | manualCellSize: 0 113 | cellSize: 0.16666667 114 | manualTileSize: 0 115 | tileSize: 256 116 | buildHeightMesh: 0 117 | maxJobWorkers: 0 118 | preserveTilesOutsideBounds: 0 119 | debug: 120 | m_Flags: 0 121 | m_NavMeshData: {fileID: 0} 122 | --- !u!1 &162808547 123 | GameObject: 124 | m_ObjectHideFlags: 0 125 | m_CorrespondingSourceObject: {fileID: 0} 126 | m_PrefabInstance: {fileID: 0} 127 | m_PrefabAsset: {fileID: 0} 128 | serializedVersion: 6 129 | m_Component: 130 | - component: {fileID: 162808550} 131 | - component: {fileID: 162808549} 132 | - component: {fileID: 162808548} 133 | m_Layer: 0 134 | m_Name: EventSystem 135 | m_TagString: Untagged 136 | m_Icon: {fileID: 0} 137 | m_NavMeshLayer: 0 138 | m_StaticEditorFlags: 0 139 | m_IsActive: 1 140 | --- !u!114 &162808548 141 | MonoBehaviour: 142 | m_ObjectHideFlags: 0 143 | m_CorrespondingSourceObject: {fileID: 0} 144 | m_PrefabInstance: {fileID: 0} 145 | m_PrefabAsset: {fileID: 0} 146 | m_GameObject: {fileID: 162808547} 147 | m_Enabled: 1 148 | m_EditorHideFlags: 0 149 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} 150 | m_Name: 151 | m_EditorClassIdentifier: 152 | m_SendPointerHoverToParent: 1 153 | m_HorizontalAxis: Horizontal 154 | m_VerticalAxis: Vertical 155 | m_SubmitButton: Submit 156 | m_CancelButton: Cancel 157 | m_InputActionsPerSecond: 10 158 | m_RepeatDelay: 0.5 159 | m_ForceModuleActive: 0 160 | --- !u!114 &162808549 161 | MonoBehaviour: 162 | m_ObjectHideFlags: 0 163 | m_CorrespondingSourceObject: {fileID: 0} 164 | m_PrefabInstance: {fileID: 0} 165 | m_PrefabAsset: {fileID: 0} 166 | m_GameObject: {fileID: 162808547} 167 | m_Enabled: 1 168 | m_EditorHideFlags: 0 169 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} 170 | m_Name: 171 | m_EditorClassIdentifier: 172 | m_FirstSelected: {fileID: 0} 173 | m_sendNavigationEvents: 1 174 | m_DragThreshold: 10 175 | --- !u!4 &162808550 176 | Transform: 177 | m_ObjectHideFlags: 0 178 | m_CorrespondingSourceObject: {fileID: 0} 179 | m_PrefabInstance: {fileID: 0} 180 | m_PrefabAsset: {fileID: 0} 181 | m_GameObject: {fileID: 162808547} 182 | serializedVersion: 2 183 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 184 | m_LocalPosition: {x: 0, y: 0, z: 0} 185 | m_LocalScale: {x: 1, y: 1, z: 1} 186 | m_ConstrainProportionsScale: 0 187 | m_Children: [] 188 | m_Father: {fileID: 0} 189 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 190 | --- !u!1 &476854483 191 | GameObject: 192 | m_ObjectHideFlags: 0 193 | m_CorrespondingSourceObject: {fileID: 0} 194 | m_PrefabInstance: {fileID: 0} 195 | m_PrefabAsset: {fileID: 0} 196 | serializedVersion: 6 197 | m_Component: 198 | - component: {fileID: 476854487} 199 | - component: {fileID: 476854486} 200 | - component: {fileID: 476854485} 201 | - component: {fileID: 476854484} 202 | m_Layer: 5 203 | m_Name: Canvas 204 | m_TagString: Untagged 205 | m_Icon: {fileID: 0} 206 | m_NavMeshLayer: 0 207 | m_StaticEditorFlags: 0 208 | m_IsActive: 1 209 | --- !u!114 &476854484 210 | MonoBehaviour: 211 | m_ObjectHideFlags: 0 212 | m_CorrespondingSourceObject: {fileID: 0} 213 | m_PrefabInstance: {fileID: 0} 214 | m_PrefabAsset: {fileID: 0} 215 | m_GameObject: {fileID: 476854483} 216 | m_Enabled: 1 217 | m_EditorHideFlags: 0 218 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 219 | m_Name: 220 | m_EditorClassIdentifier: 221 | m_IgnoreReversedGraphics: 1 222 | m_BlockingObjects: 0 223 | m_BlockingMask: 224 | serializedVersion: 2 225 | m_Bits: 4294967295 226 | --- !u!114 &476854485 227 | MonoBehaviour: 228 | m_ObjectHideFlags: 0 229 | m_CorrespondingSourceObject: {fileID: 0} 230 | m_PrefabInstance: {fileID: 0} 231 | m_PrefabAsset: {fileID: 0} 232 | m_GameObject: {fileID: 476854483} 233 | m_Enabled: 1 234 | m_EditorHideFlags: 0 235 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 236 | m_Name: 237 | m_EditorClassIdentifier: 238 | m_UiScaleMode: 1 239 | m_ReferencePixelsPerUnit: 100 240 | m_ScaleFactor: 1 241 | m_ReferenceResolution: {x: 1080, y: 1080} 242 | m_ScreenMatchMode: 0 243 | m_MatchWidthOrHeight: 0.5 244 | m_PhysicalUnit: 3 245 | m_FallbackScreenDPI: 96 246 | m_DefaultSpriteDPI: 96 247 | m_DynamicPixelsPerUnit: 1 248 | m_PresetInfoIsWorld: 0 249 | --- !u!223 &476854486 250 | Canvas: 251 | m_ObjectHideFlags: 0 252 | m_CorrespondingSourceObject: {fileID: 0} 253 | m_PrefabInstance: {fileID: 0} 254 | m_PrefabAsset: {fileID: 0} 255 | m_GameObject: {fileID: 476854483} 256 | m_Enabled: 1 257 | serializedVersion: 3 258 | m_RenderMode: 0 259 | m_Camera: {fileID: 0} 260 | m_PlaneDistance: 100 261 | m_PixelPerfect: 0 262 | m_ReceivesEvents: 1 263 | m_OverrideSorting: 0 264 | m_OverridePixelPerfect: 0 265 | m_SortingBucketNormalizedSize: 0 266 | m_VertexColorAlwaysGammaSpace: 0 267 | m_AdditionalShaderChannelsFlag: 0 268 | m_UpdateRectTransformForStandalone: 0 269 | m_SortingLayerID: 0 270 | m_SortingOrder: 0 271 | m_TargetDisplay: 0 272 | --- !u!224 &476854487 273 | RectTransform: 274 | m_ObjectHideFlags: 0 275 | m_CorrespondingSourceObject: {fileID: 0} 276 | m_PrefabInstance: {fileID: 0} 277 | m_PrefabAsset: {fileID: 0} 278 | m_GameObject: {fileID: 476854483} 279 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 280 | m_LocalPosition: {x: 0, y: 0, z: 0} 281 | m_LocalScale: {x: 0, y: 0, z: 0} 282 | m_ConstrainProportionsScale: 0 283 | m_Children: 284 | - {fileID: 1015255832} 285 | - {fileID: 2127500797} 286 | m_Father: {fileID: 0} 287 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 288 | m_AnchorMin: {x: 0, y: 0} 289 | m_AnchorMax: {x: 0, y: 0} 290 | m_AnchoredPosition: {x: 0, y: 0} 291 | m_SizeDelta: {x: 0, y: 0} 292 | m_Pivot: {x: 0, y: 0} 293 | --- !u!1 &705507993 294 | GameObject: 295 | m_ObjectHideFlags: 0 296 | m_CorrespondingSourceObject: {fileID: 0} 297 | m_PrefabInstance: {fileID: 0} 298 | m_PrefabAsset: {fileID: 0} 299 | serializedVersion: 6 300 | m_Component: 301 | - component: {fileID: 705507995} 302 | - component: {fileID: 705507994} 303 | - component: {fileID: 705507996} 304 | m_Layer: 0 305 | m_Name: Directional Light 306 | m_TagString: Untagged 307 | m_Icon: {fileID: 0} 308 | m_NavMeshLayer: 0 309 | m_StaticEditorFlags: 0 310 | m_IsActive: 1 311 | --- !u!108 &705507994 312 | Light: 313 | m_ObjectHideFlags: 0 314 | m_CorrespondingSourceObject: {fileID: 0} 315 | m_PrefabInstance: {fileID: 0} 316 | m_PrefabAsset: {fileID: 0} 317 | m_GameObject: {fileID: 705507993} 318 | m_Enabled: 1 319 | serializedVersion: 11 320 | m_Type: 1 321 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 322 | m_Intensity: 1 323 | m_Range: 10 324 | m_SpotAngle: 30 325 | m_InnerSpotAngle: 21.802082 326 | m_CookieSize: 10 327 | m_Shadows: 328 | m_Type: 2 329 | m_Resolution: -1 330 | m_CustomResolution: -1 331 | m_Strength: 1 332 | m_Bias: 0.05 333 | m_NormalBias: 0.4 334 | m_NearPlane: 0.2 335 | m_CullingMatrixOverride: 336 | e00: 1 337 | e01: 0 338 | e02: 0 339 | e03: 0 340 | e10: 0 341 | e11: 1 342 | e12: 0 343 | e13: 0 344 | e20: 0 345 | e21: 0 346 | e22: 1 347 | e23: 0 348 | e30: 0 349 | e31: 0 350 | e32: 0 351 | e33: 1 352 | m_UseCullingMatrixOverride: 0 353 | m_Cookie: {fileID: 0} 354 | m_DrawHalo: 0 355 | m_Flare: {fileID: 0} 356 | m_RenderMode: 0 357 | m_CullingMask: 358 | serializedVersion: 2 359 | m_Bits: 4294967295 360 | m_RenderingLayerMask: 1 361 | m_Lightmapping: 1 362 | m_LightShadowCasterMode: 0 363 | m_AreaSize: {x: 1, y: 1} 364 | m_BounceIntensity: 1 365 | m_ColorTemperature: 6570 366 | m_UseColorTemperature: 0 367 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 368 | m_UseBoundingSphereOverride: 0 369 | m_UseViewFrustumForShadowCasterCull: 1 370 | m_ForceVisible: 0 371 | m_ShadowRadius: 0 372 | m_ShadowAngle: 0 373 | m_LightUnit: 1 374 | m_LuxAtDistance: 1 375 | m_EnableSpotReflector: 1 376 | --- !u!4 &705507995 377 | Transform: 378 | m_ObjectHideFlags: 0 379 | m_CorrespondingSourceObject: {fileID: 0} 380 | m_PrefabInstance: {fileID: 0} 381 | m_PrefabAsset: {fileID: 0} 382 | m_GameObject: {fileID: 705507993} 383 | serializedVersion: 2 384 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 385 | m_LocalPosition: {x: 0, y: 3, z: 0} 386 | m_LocalScale: {x: 1, y: 1, z: 1} 387 | m_ConstrainProportionsScale: 0 388 | m_Children: [] 389 | m_Father: {fileID: 0} 390 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 391 | --- !u!114 &705507996 392 | MonoBehaviour: 393 | m_ObjectHideFlags: 0 394 | m_CorrespondingSourceObject: {fileID: 0} 395 | m_PrefabInstance: {fileID: 0} 396 | m_PrefabAsset: {fileID: 0} 397 | m_GameObject: {fileID: 705507993} 398 | m_Enabled: 1 399 | m_EditorHideFlags: 0 400 | m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} 401 | m_Name: 402 | m_EditorClassIdentifier: 403 | m_Version: 3 404 | m_UsePipelineSettings: 1 405 | m_AdditionalLightsShadowResolutionTier: 2 406 | m_LightLayerMask: 1 407 | m_RenderingLayers: 1 408 | m_CustomShadowLayers: 0 409 | m_ShadowLayerMask: 1 410 | m_ShadowRenderingLayers: 1 411 | m_LightCookieSize: {x: 1, y: 1} 412 | m_LightCookieOffset: {x: 0, y: 0} 413 | m_SoftShadowQuality: 0 414 | --- !u!1 &804858204 415 | GameObject: 416 | m_ObjectHideFlags: 0 417 | m_CorrespondingSourceObject: {fileID: 0} 418 | m_PrefabInstance: {fileID: 0} 419 | m_PrefabAsset: {fileID: 0} 420 | serializedVersion: 6 421 | m_Component: 422 | - component: {fileID: 804858205} 423 | - component: {fileID: 804858206} 424 | m_Layer: 0 425 | m_Name: TextureSource Sample 426 | m_TagString: Untagged 427 | m_Icon: {fileID: 0} 428 | m_NavMeshLayer: 0 429 | m_StaticEditorFlags: 0 430 | m_IsActive: 1 431 | --- !u!4 &804858205 432 | Transform: 433 | m_ObjectHideFlags: 0 434 | m_CorrespondingSourceObject: {fileID: 0} 435 | m_PrefabInstance: {fileID: 0} 436 | m_PrefabAsset: {fileID: 0} 437 | m_GameObject: {fileID: 804858204} 438 | serializedVersion: 2 439 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 440 | m_LocalPosition: {x: 0, y: 0, z: 0} 441 | m_LocalScale: {x: 1, y: 1, z: 1} 442 | m_ConstrainProportionsScale: 0 443 | m_Children: [] 444 | m_Father: {fileID: 0} 445 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 446 | --- !u!114 &804858206 447 | MonoBehaviour: 448 | m_ObjectHideFlags: 0 449 | m_CorrespondingSourceObject: {fileID: 0} 450 | m_PrefabInstance: {fileID: 0} 451 | m_PrefabAsset: {fileID: 0} 452 | m_GameObject: {fileID: 804858204} 453 | m_Enabled: 1 454 | m_EditorHideFlags: 0 455 | m_Script: {fileID: 11500000, guid: be5e5635fba104ec29475e42f3b5a517, type: 3} 456 | m_Name: 457 | m_EditorClassIdentifier: 458 | source: {fileID: 11400000, guid: a5ad0dc7216ac447abb707b798e2554f, type: 2} 459 | sourceForEditor: {fileID: 11400000, guid: a5ad0dc7216ac447abb707b798e2554f, type: 2} 460 | trimToScreenAspect: 1 461 | OnTexture: 462 | m_PersistentCalls: 463 | m_Calls: 464 | - m_Target: {fileID: 1015255833} 465 | m_TargetAssemblyTypeName: UnityEngine.UI.RawImage, UnityEngine.UI 466 | m_MethodName: set_texture 467 | m_Mode: 0 468 | m_Arguments: 469 | m_ObjectArgument: {fileID: 0} 470 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 471 | m_IntArgument: 0 472 | m_FloatArgument: 0 473 | m_StringArgument: 474 | m_BoolArgument: 0 475 | m_CallState: 2 476 | OnAspectChange: 477 | m_PersistentCalls: 478 | m_Calls: 479 | - m_Target: {fileID: 1015255835} 480 | m_TargetAssemblyTypeName: UnityEngine.UI.AspectRatioFitter, UnityEngine.UI 481 | m_MethodName: set_aspectRatio 482 | m_Mode: 0 483 | m_Arguments: 484 | m_ObjectArgument: {fileID: 0} 485 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 486 | m_IntArgument: 0 487 | m_FloatArgument: 0 488 | m_StringArgument: 489 | m_BoolArgument: 0 490 | m_CallState: 2 491 | --- !u!1 &963194225 492 | GameObject: 493 | m_ObjectHideFlags: 0 494 | m_CorrespondingSourceObject: {fileID: 0} 495 | m_PrefabInstance: {fileID: 0} 496 | m_PrefabAsset: {fileID: 0} 497 | serializedVersion: 6 498 | m_Component: 499 | - component: {fileID: 963194228} 500 | - component: {fileID: 963194227} 501 | - component: {fileID: 963194226} 502 | - component: {fileID: 963194229} 503 | m_Layer: 0 504 | m_Name: Main Camera 505 | m_TagString: MainCamera 506 | m_Icon: {fileID: 0} 507 | m_NavMeshLayer: 0 508 | m_StaticEditorFlags: 0 509 | m_IsActive: 1 510 | --- !u!81 &963194226 511 | AudioListener: 512 | m_ObjectHideFlags: 0 513 | m_CorrespondingSourceObject: {fileID: 0} 514 | m_PrefabInstance: {fileID: 0} 515 | m_PrefabAsset: {fileID: 0} 516 | m_GameObject: {fileID: 963194225} 517 | m_Enabled: 1 518 | --- !u!20 &963194227 519 | Camera: 520 | m_ObjectHideFlags: 0 521 | m_CorrespondingSourceObject: {fileID: 0} 522 | m_PrefabInstance: {fileID: 0} 523 | m_PrefabAsset: {fileID: 0} 524 | m_GameObject: {fileID: 963194225} 525 | m_Enabled: 1 526 | serializedVersion: 2 527 | m_ClearFlags: 2 528 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} 529 | m_projectionMatrixMode: 1 530 | m_GateFitMode: 2 531 | m_FOVAxisMode: 0 532 | m_Iso: 200 533 | m_ShutterSpeed: 0.005 534 | m_Aperture: 16 535 | m_FocusDistance: 10 536 | m_FocalLength: 50 537 | m_BladeCount: 5 538 | m_Curvature: {x: 2, y: 11} 539 | m_BarrelClipping: 0.25 540 | m_Anamorphism: 0 541 | m_SensorSize: {x: 36, y: 24} 542 | m_LensShift: {x: 0, y: 0} 543 | m_NormalizedViewPortRect: 544 | serializedVersion: 2 545 | x: 0 546 | y: 0 547 | width: 1 548 | height: 1 549 | near clip plane: 0.3 550 | far clip plane: 1000 551 | field of view: 60 552 | orthographic: 0 553 | orthographic size: 5 554 | m_Depth: -1 555 | m_CullingMask: 556 | serializedVersion: 2 557 | m_Bits: 4294967295 558 | m_RenderingPath: -1 559 | m_TargetTexture: {fileID: 0} 560 | m_TargetDisplay: 0 561 | m_TargetEye: 3 562 | m_HDR: 1 563 | m_AllowMSAA: 1 564 | m_AllowDynamicResolution: 0 565 | m_ForceIntoRT: 0 566 | m_OcclusionCulling: 1 567 | m_StereoConvergence: 10 568 | m_StereoSeparation: 0.022 569 | --- !u!4 &963194228 570 | Transform: 571 | m_ObjectHideFlags: 0 572 | m_CorrespondingSourceObject: {fileID: 0} 573 | m_PrefabInstance: {fileID: 0} 574 | m_PrefabAsset: {fileID: 0} 575 | m_GameObject: {fileID: 963194225} 576 | serializedVersion: 2 577 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 578 | m_LocalPosition: {x: 0, y: 1, z: -10} 579 | m_LocalScale: {x: 1, y: 1, z: 1} 580 | m_ConstrainProportionsScale: 0 581 | m_Children: [] 582 | m_Father: {fileID: 0} 583 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 584 | --- !u!114 &963194229 585 | MonoBehaviour: 586 | m_ObjectHideFlags: 0 587 | m_CorrespondingSourceObject: {fileID: 0} 588 | m_PrefabInstance: {fileID: 0} 589 | m_PrefabAsset: {fileID: 0} 590 | m_GameObject: {fileID: 963194225} 591 | m_Enabled: 1 592 | m_EditorHideFlags: 0 593 | m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} 594 | m_Name: 595 | m_EditorClassIdentifier: 596 | m_RenderShadows: 1 597 | m_RequiresDepthTextureOption: 2 598 | m_RequiresOpaqueTextureOption: 2 599 | m_CameraType: 0 600 | m_Cameras: [] 601 | m_RendererIndex: -1 602 | m_VolumeLayerMask: 603 | serializedVersion: 2 604 | m_Bits: 1 605 | m_VolumeTrigger: {fileID: 0} 606 | m_VolumeFrameworkUpdateModeOption: 2 607 | m_RenderPostProcessing: 0 608 | m_Antialiasing: 0 609 | m_AntialiasingQuality: 2 610 | m_StopNaN: 0 611 | m_Dithering: 0 612 | m_ClearDepth: 1 613 | m_AllowXRRendering: 1 614 | m_AllowHDROutput: 1 615 | m_UseScreenCoordOverride: 0 616 | m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} 617 | m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} 618 | m_RequiresDepthTexture: 0 619 | m_RequiresColorTexture: 0 620 | m_Version: 2 621 | m_TaaSettings: 622 | m_Quality: 3 623 | m_FrameInfluence: 0.1 624 | m_JitterScale: 1 625 | m_MipBias: 0 626 | m_VarianceClampScale: 0.9 627 | m_ContrastAdaptiveSharpening: 0 628 | --- !u!1 &1015255831 629 | GameObject: 630 | m_ObjectHideFlags: 0 631 | m_CorrespondingSourceObject: {fileID: 0} 632 | m_PrefabInstance: {fileID: 0} 633 | m_PrefabAsset: {fileID: 0} 634 | serializedVersion: 6 635 | m_Component: 636 | - component: {fileID: 1015255832} 637 | - component: {fileID: 1015255834} 638 | - component: {fileID: 1015255833} 639 | - component: {fileID: 1015255835} 640 | m_Layer: 5 641 | m_Name: RawImage 642 | m_TagString: Untagged 643 | m_Icon: {fileID: 0} 644 | m_NavMeshLayer: 0 645 | m_StaticEditorFlags: 0 646 | m_IsActive: 1 647 | --- !u!224 &1015255832 648 | RectTransform: 649 | m_ObjectHideFlags: 0 650 | m_CorrespondingSourceObject: {fileID: 0} 651 | m_PrefabInstance: {fileID: 0} 652 | m_PrefabAsset: {fileID: 0} 653 | m_GameObject: {fileID: 1015255831} 654 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 655 | m_LocalPosition: {x: 0, y: 0, z: 0} 656 | m_LocalScale: {x: 1, y: 1, z: 1} 657 | m_ConstrainProportionsScale: 0 658 | m_Children: [] 659 | m_Father: {fileID: 476854487} 660 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 661 | m_AnchorMin: {x: 0, y: 0} 662 | m_AnchorMax: {x: 0, y: 0} 663 | m_AnchoredPosition: {x: 0, y: 0} 664 | m_SizeDelta: {x: 0, y: 0} 665 | m_Pivot: {x: 0.5, y: 0.5} 666 | --- !u!114 &1015255833 667 | MonoBehaviour: 668 | m_ObjectHideFlags: 0 669 | m_CorrespondingSourceObject: {fileID: 0} 670 | m_PrefabInstance: {fileID: 0} 671 | m_PrefabAsset: {fileID: 0} 672 | m_GameObject: {fileID: 1015255831} 673 | m_Enabled: 1 674 | m_EditorHideFlags: 0 675 | m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} 676 | m_Name: 677 | m_EditorClassIdentifier: 678 | m_Material: {fileID: 0} 679 | m_Color: {r: 1, g: 1, b: 1, a: 1} 680 | m_RaycastTarget: 1 681 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 682 | m_Maskable: 1 683 | m_OnCullStateChanged: 684 | m_PersistentCalls: 685 | m_Calls: [] 686 | m_Texture: {fileID: 0} 687 | m_UVRect: 688 | serializedVersion: 2 689 | x: 0 690 | y: 0 691 | width: 1 692 | height: 1 693 | --- !u!222 &1015255834 694 | CanvasRenderer: 695 | m_ObjectHideFlags: 0 696 | m_CorrespondingSourceObject: {fileID: 0} 697 | m_PrefabInstance: {fileID: 0} 698 | m_PrefabAsset: {fileID: 0} 699 | m_GameObject: {fileID: 1015255831} 700 | m_CullTransparentMesh: 1 701 | --- !u!114 &1015255835 702 | MonoBehaviour: 703 | m_ObjectHideFlags: 0 704 | m_CorrespondingSourceObject: {fileID: 0} 705 | m_PrefabInstance: {fileID: 0} 706 | m_PrefabAsset: {fileID: 0} 707 | m_GameObject: {fileID: 1015255831} 708 | m_Enabled: 1 709 | m_EditorHideFlags: 0 710 | m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} 711 | m_Name: 712 | m_EditorClassIdentifier: 713 | m_AspectMode: 3 714 | m_AspectRatio: 1 715 | --- !u!1 &2127500796 716 | GameObject: 717 | m_ObjectHideFlags: 0 718 | m_CorrespondingSourceObject: {fileID: 0} 719 | m_PrefabInstance: {fileID: 0} 720 | m_PrefabAsset: {fileID: 0} 721 | serializedVersion: 6 722 | m_Component: 723 | - component: {fileID: 2127500797} 724 | - component: {fileID: 2127500800} 725 | - component: {fileID: 2127500799} 726 | - component: {fileID: 2127500798} 727 | m_Layer: 5 728 | m_Name: Button SwitchSource 729 | m_TagString: Untagged 730 | m_Icon: {fileID: 0} 731 | m_NavMeshLayer: 0 732 | m_StaticEditorFlags: 0 733 | m_IsActive: 1 734 | --- !u!224 &2127500797 735 | RectTransform: 736 | m_ObjectHideFlags: 0 737 | m_CorrespondingSourceObject: {fileID: 0} 738 | m_PrefabInstance: {fileID: 0} 739 | m_PrefabAsset: {fileID: 0} 740 | m_GameObject: {fileID: 2127500796} 741 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 742 | m_LocalPosition: {x: 0, y: 0, z: 0} 743 | m_LocalScale: {x: 1, y: 1, z: 1} 744 | m_ConstrainProportionsScale: 0 745 | m_Children: [] 746 | m_Father: {fileID: 476854487} 747 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 748 | m_AnchorMin: {x: 0, y: 0} 749 | m_AnchorMax: {x: 0, y: 0} 750 | m_AnchoredPosition: {x: 50, y: 50} 751 | m_SizeDelta: {x: 128, y: 128} 752 | m_Pivot: {x: 0, y: 0} 753 | --- !u!114 &2127500798 754 | MonoBehaviour: 755 | m_ObjectHideFlags: 0 756 | m_CorrespondingSourceObject: {fileID: 0} 757 | m_PrefabInstance: {fileID: 0} 758 | m_PrefabAsset: {fileID: 0} 759 | m_GameObject: {fileID: 2127500796} 760 | m_Enabled: 1 761 | m_EditorHideFlags: 0 762 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 763 | m_Name: 764 | m_EditorClassIdentifier: 765 | m_Navigation: 766 | m_Mode: 3 767 | m_WrapAround: 0 768 | m_SelectOnUp: {fileID: 0} 769 | m_SelectOnDown: {fileID: 0} 770 | m_SelectOnLeft: {fileID: 0} 771 | m_SelectOnRight: {fileID: 0} 772 | m_Transition: 1 773 | m_Colors: 774 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 775 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 776 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 777 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 778 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 779 | m_ColorMultiplier: 1 780 | m_FadeDuration: 0.1 781 | m_SpriteState: 782 | m_HighlightedSprite: {fileID: 0} 783 | m_PressedSprite: {fileID: 0} 784 | m_SelectedSprite: {fileID: 0} 785 | m_DisabledSprite: {fileID: 0} 786 | m_AnimationTriggers: 787 | m_NormalTrigger: Normal 788 | m_HighlightedTrigger: Highlighted 789 | m_PressedTrigger: Pressed 790 | m_SelectedTrigger: Selected 791 | m_DisabledTrigger: Disabled 792 | m_Interactable: 1 793 | m_TargetGraphic: {fileID: 2127500799} 794 | m_OnClick: 795 | m_PersistentCalls: 796 | m_Calls: 797 | - m_Target: {fileID: 804858206} 798 | m_TargetAssemblyTypeName: TextureSource.VirtualTextureSource, TextureSource 799 | m_MethodName: NextSource 800 | m_Mode: 1 801 | m_Arguments: 802 | m_ObjectArgument: {fileID: 0} 803 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 804 | m_IntArgument: 0 805 | m_FloatArgument: 0 806 | m_StringArgument: 807 | m_BoolArgument: 0 808 | m_CallState: 2 809 | --- !u!114 &2127500799 810 | MonoBehaviour: 811 | m_ObjectHideFlags: 0 812 | m_CorrespondingSourceObject: {fileID: 0} 813 | m_PrefabInstance: {fileID: 0} 814 | m_PrefabAsset: {fileID: 0} 815 | m_GameObject: {fileID: 2127500796} 816 | m_Enabled: 1 817 | m_EditorHideFlags: 0 818 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 819 | m_Name: 820 | m_EditorClassIdentifier: 821 | m_Material: {fileID: 0} 822 | m_Color: {r: 1, g: 1, b: 1, a: 1} 823 | m_RaycastTarget: 1 824 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 825 | m_Maskable: 1 826 | m_OnCullStateChanged: 827 | m_PersistentCalls: 828 | m_Calls: [] 829 | m_Sprite: {fileID: 21300000, guid: f9909bc898b8c4c13aa87e1af52fd70e, type: 3} 830 | m_Type: 0 831 | m_PreserveAspect: 0 832 | m_FillCenter: 1 833 | m_FillMethod: 4 834 | m_FillAmount: 1 835 | m_FillClockwise: 1 836 | m_FillOrigin: 0 837 | m_UseSpriteMesh: 0 838 | m_PixelsPerUnitMultiplier: 1 839 | --- !u!222 &2127500800 840 | CanvasRenderer: 841 | m_ObjectHideFlags: 0 842 | m_CorrespondingSourceObject: {fileID: 0} 843 | m_PrefabInstance: {fileID: 0} 844 | m_PrefabAsset: {fileID: 0} 845 | m_GameObject: {fileID: 2127500796} 846 | m_CullTransparentMesh: 1 847 | --- !u!1660057539 &9223372036854775807 848 | SceneRoots: 849 | m_ObjectHideFlags: 0 850 | m_Roots: 851 | - {fileID: 963194228} 852 | - {fileID: 705507995} 853 | - {fileID: 476854487} 854 | - {fileID: 162808550} 855 | - {fileID: 804858205} 856 | -------------------------------------------------------------------------------- /Assets/Samples/SampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fc0d4010bbf28b4594072e72b8655ab 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Samples/VideoTextureSource.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 77ed56e41dd6e4f5c8e44d1e7a925c27, type: 3} 13 | m_Name: VideoTextureSource 14 | m_EditorClassIdentifier: 15 | loop: 1 16 | playSound: 0 17 | videos: 18 | - source: 0 19 | url: 20 | clip: {fileID: 32900000, guid: 035f5941b88954464a164282a5fb8632, type: 3} 21 | - source: 0 22 | url: 23 | clip: {fileID: 32900000, guid: 5092ab0c1fcaa4e48a047a6e78417543, type: 3} 24 | -------------------------------------------------------------------------------- /Assets/Samples/VideoTextureSource.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a4205d840d424dd8850fcac9f1395c0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Samples/WebCamTextureSource.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 1cf62dfb39bf740a6ac1af02a38c56e9, type: 3} 13 | m_Name: WebCamTextureSource 14 | m_EditorClassIdentifier: 15 | kindFilter: 11 16 | facingFilter: -1 17 | resolution: {x: 1270, y: 720} 18 | frameRate: 60 19 | -------------------------------------------------------------------------------- /Assets/Samples/WebCamTextureSource.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5ad0dc7216ac447abb707b798e2554f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Samples/a.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asus4/TextureSource/e780fe11213c5bbb7bbf572ea7bde08e3d2e1995/Assets/Samples/a.mp4 -------------------------------------------------------------------------------- /Assets/Samples/a.mp4.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 035f5941b88954464a164282a5fb8632 3 | VideoClipImporter: 4 | externalObjects: {} 5 | serializedVersion: 3 6 | frameRange: 0 7 | startFrame: -1 8 | endFrame: -1 9 | colorSpace: 0 10 | deinterlace: 0 11 | encodeAlpha: 0 12 | flipVertical: 0 13 | flipHorizontal: 0 14 | importAudio: 1 15 | targetSettings: 16 | : 17 | enableTranscoding: 1 18 | codec: 0 19 | resizeFormat: 0 20 | aspectRatio: 0 21 | customWidth: 1920 22 | customHeight: 1080 23 | bitrateMode: 2 24 | spatialQuality: 2 25 | userData: 26 | assetBundleName: 27 | assetBundleVariant: 28 | -------------------------------------------------------------------------------- /Assets/Samples/b.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asus4/TextureSource/e780fe11213c5bbb7bbf572ea7bde08e3d2e1995/Assets/Samples/b.mp4 -------------------------------------------------------------------------------- /Assets/Samples/b.mp4.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5092ab0c1fcaa4e48a047a6e78417543 3 | VideoClipImporter: 4 | externalObjects: {} 5 | serializedVersion: 3 6 | frameRange: 0 7 | startFrame: -1 8 | endFrame: -1 9 | colorSpace: 0 10 | deinterlace: 0 11 | encodeAlpha: 0 12 | flipVertical: 0 13 | flipHorizontal: 0 14 | importAudio: 1 15 | targetSettings: 16 | : 17 | enableTranscoding: 1 18 | codec: 0 19 | resizeFormat: 0 20 | aspectRatio: 0 21 | customWidth: 1920 22 | customHeight: 1080 23 | bitrateMode: 2 24 | spatialQuality: 2 25 | userData: 26 | assetBundleName: 27 | assetBundleVariant: 28 | -------------------------------------------------------------------------------- /Assets/Samples/icon_toggle_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asus4/TextureSource/e780fe11213c5bbb7bbf572ea7bde08e3d2e1995/Assets/Samples/icon_toggle_camera.png -------------------------------------------------------------------------------- /Assets/Samples/icon_toggle_camera.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f9909bc898b8c4c13aa87e1af52fd70e 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 1 36 | aniso: 1 37 | mipBias: 0 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 0 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 1 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 8 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 2048 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 0 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | - serializedVersion: 3 91 | buildTarget: iPhone 92 | maxTextureSize: 2048 93 | resizeAlgorithm: 0 94 | textureFormat: -1 95 | textureCompression: 1 96 | compressionQuality: 50 97 | crunchedCompression: 0 98 | allowsAlphaSplitting: 0 99 | overridden: 0 100 | androidETC2FallbackOverride: 0 101 | forceMaximumCompressionQuality_BC6H_BC7: 0 102 | - serializedVersion: 3 103 | buildTarget: Android 104 | maxTextureSize: 2048 105 | resizeAlgorithm: 0 106 | textureFormat: -1 107 | textureCompression: 1 108 | compressionQuality: 50 109 | crunchedCompression: 0 110 | allowsAlphaSplitting: 0 111 | overridden: 0 112 | androidETC2FallbackOverride: 0 113 | forceMaximumCompressionQuality_BC6H_BC7: 0 114 | spriteSheet: 115 | serializedVersion: 2 116 | sprites: [] 117 | outline: [] 118 | physicsShape: [] 119 | bones: [] 120 | spriteID: 5e97eb03825dee720800000000000000 121 | internalID: 0 122 | vertices: [] 123 | indices: 124 | edges: [] 125 | weights: [] 126 | secondaryTextures: [] 127 | spritePackingTag: 128 | pSDRemoveMatte: 0 129 | pSDShowRemoveMatteOption: 0 130 | userData: 131 | assetBundleName: 132 | assetBundleVariant: 133 | -------------------------------------------------------------------------------- /Assets/Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58f2c5854dc1146b3a6d7e006c605c9f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/DefaultVolumeProfile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-7776214452813603536 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 3 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3} 13 | m_Name: WhiteBalance 14 | m_EditorClassIdentifier: 15 | active: 1 16 | temperature: 17 | m_OverrideState: 1 18 | m_Value: 0 19 | tint: 20 | m_OverrideState: 1 21 | m_Value: 0 22 | --- !u!114 &-7731169171390299042 23 | MonoBehaviour: 24 | m_ObjectHideFlags: 3 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 0} 29 | m_Enabled: 1 30 | m_EditorHideFlags: 0 31 | m_Script: {fileID: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3} 32 | m_Name: FilmGrain 33 | m_EditorClassIdentifier: 34 | active: 1 35 | type: 36 | m_OverrideState: 1 37 | m_Value: 0 38 | intensity: 39 | m_OverrideState: 1 40 | m_Value: 0 41 | response: 42 | m_OverrideState: 1 43 | m_Value: 0.8 44 | texture: 45 | m_OverrideState: 1 46 | m_Value: {fileID: 0} 47 | --- !u!114 &-6571652446047767811 48 | MonoBehaviour: 49 | m_ObjectHideFlags: 3 50 | m_CorrespondingSourceObject: {fileID: 0} 51 | m_PrefabInstance: {fileID: 0} 52 | m_PrefabAsset: {fileID: 0} 53 | m_GameObject: {fileID: 0} 54 | m_Enabled: 1 55 | m_EditorHideFlags: 0 56 | m_Script: {fileID: 11500000, guid: e021b4c809a781e468c2988c016ebbea, type: 3} 57 | m_Name: ColorLookup 58 | m_EditorClassIdentifier: 59 | active: 1 60 | texture: 61 | m_OverrideState: 1 62 | m_Value: {fileID: 0} 63 | dimension: 1 64 | contribution: 65 | m_OverrideState: 1 66 | m_Value: 0 67 | --- !u!114 &-5927136032342448306 68 | MonoBehaviour: 69 | m_ObjectHideFlags: 3 70 | m_CorrespondingSourceObject: {fileID: 0} 71 | m_PrefabInstance: {fileID: 0} 72 | m_PrefabAsset: {fileID: 0} 73 | m_GameObject: {fileID: 0} 74 | m_Enabled: 1 75 | m_EditorHideFlags: 0 76 | m_Script: {fileID: 11500000, guid: 06437c1ff663d574d9447842ba0a72e4, type: 3} 77 | m_Name: ScreenSpaceLensFlare 78 | m_EditorClassIdentifier: 79 | active: 1 80 | intensity: 81 | m_OverrideState: 1 82 | m_Value: 0 83 | tintColor: 84 | m_OverrideState: 1 85 | m_Value: {r: 1, g: 1, b: 1, a: 1} 86 | bloomMip: 87 | m_OverrideState: 1 88 | m_Value: 1 89 | firstFlareIntensity: 90 | m_OverrideState: 1 91 | m_Value: 1 92 | secondaryFlareIntensity: 93 | m_OverrideState: 1 94 | m_Value: 1 95 | warpedFlareIntensity: 96 | m_OverrideState: 1 97 | m_Value: 1 98 | warpedFlareScale: 99 | m_OverrideState: 1 100 | m_Value: {x: 1, y: 1} 101 | samples: 102 | m_OverrideState: 1 103 | m_Value: 1 104 | sampleDimmer: 105 | m_OverrideState: 1 106 | m_Value: 0.5 107 | vignetteEffect: 108 | m_OverrideState: 1 109 | m_Value: 1 110 | startingPosition: 111 | m_OverrideState: 1 112 | m_Value: 1.25 113 | scale: 114 | m_OverrideState: 1 115 | m_Value: 1.5 116 | streaksIntensity: 117 | m_OverrideState: 1 118 | m_Value: 0 119 | streaksLength: 120 | m_OverrideState: 1 121 | m_Value: 0.5 122 | streaksOrientation: 123 | m_OverrideState: 1 124 | m_Value: 0 125 | streaksThreshold: 126 | m_OverrideState: 1 127 | m_Value: 0.25 128 | resolution: 129 | m_OverrideState: 1 130 | m_Value: 4 131 | chromaticAbberationIntensity: 132 | m_OverrideState: 1 133 | m_Value: 0.5 134 | --- !u!114 &-5832183980546975662 135 | MonoBehaviour: 136 | m_ObjectHideFlags: 3 137 | m_CorrespondingSourceObject: {fileID: 0} 138 | m_PrefabInstance: {fileID: 0} 139 | m_PrefabAsset: {fileID: 0} 140 | m_GameObject: {fileID: 0} 141 | m_Enabled: 1 142 | m_EditorHideFlags: 0 143 | m_Script: {fileID: 11500000, guid: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3} 144 | m_Name: LensDistortion 145 | m_EditorClassIdentifier: 146 | active: 1 147 | intensity: 148 | m_OverrideState: 1 149 | m_Value: 0 150 | xMultiplier: 151 | m_OverrideState: 1 152 | m_Value: 1 153 | yMultiplier: 154 | m_OverrideState: 1 155 | m_Value: 1 156 | center: 157 | m_OverrideState: 1 158 | m_Value: {x: 0.5, y: 0.5} 159 | scale: 160 | m_OverrideState: 1 161 | m_Value: 1 162 | --- !u!114 &-5707832329534761780 163 | MonoBehaviour: 164 | m_ObjectHideFlags: 3 165 | m_CorrespondingSourceObject: {fileID: 0} 166 | m_PrefabInstance: {fileID: 0} 167 | m_PrefabAsset: {fileID: 0} 168 | m_GameObject: {fileID: 0} 169 | m_Enabled: 1 170 | m_EditorHideFlags: 0 171 | m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} 172 | m_Name: MotionBlur 173 | m_EditorClassIdentifier: 174 | active: 1 175 | mode: 176 | m_OverrideState: 1 177 | m_Value: 0 178 | quality: 179 | m_OverrideState: 1 180 | m_Value: 0 181 | intensity: 182 | m_OverrideState: 1 183 | m_Value: 0 184 | clamp: 185 | m_OverrideState: 1 186 | m_Value: 0.05 187 | --- !u!114 &-5448938156800823088 188 | MonoBehaviour: 189 | m_ObjectHideFlags: 3 190 | m_CorrespondingSourceObject: {fileID: 0} 191 | m_PrefabInstance: {fileID: 0} 192 | m_PrefabAsset: {fileID: 0} 193 | m_GameObject: {fileID: 0} 194 | m_Enabled: 1 195 | m_EditorHideFlags: 0 196 | m_Script: {fileID: 11500000, guid: 558a8e2b6826cf840aae193990ba9f2e, type: 3} 197 | m_Name: ShadowsMidtonesHighlights 198 | m_EditorClassIdentifier: 199 | active: 1 200 | shadows: 201 | m_OverrideState: 1 202 | m_Value: {x: 1, y: 1, z: 1, w: 0} 203 | midtones: 204 | m_OverrideState: 1 205 | m_Value: {x: 1, y: 1, z: 1, w: 0} 206 | highlights: 207 | m_OverrideState: 1 208 | m_Value: {x: 1, y: 1, z: 1, w: 0} 209 | shadowsStart: 210 | m_OverrideState: 1 211 | m_Value: 0 212 | shadowsEnd: 213 | m_OverrideState: 1 214 | m_Value: 0.3 215 | highlightsStart: 216 | m_OverrideState: 1 217 | m_Value: 0.55 218 | highlightsEnd: 219 | m_OverrideState: 1 220 | m_Value: 1 221 | --- !u!114 &-1456538851931933286 222 | MonoBehaviour: 223 | m_ObjectHideFlags: 3 224 | m_CorrespondingSourceObject: {fileID: 0} 225 | m_PrefabInstance: {fileID: 0} 226 | m_PrefabAsset: {fileID: 0} 227 | m_GameObject: {fileID: 0} 228 | m_Enabled: 1 229 | m_EditorHideFlags: 0 230 | m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} 231 | m_Name: DepthOfField 232 | m_EditorClassIdentifier: 233 | active: 1 234 | mode: 235 | m_OverrideState: 1 236 | m_Value: 0 237 | gaussianStart: 238 | m_OverrideState: 1 239 | m_Value: 10 240 | gaussianEnd: 241 | m_OverrideState: 1 242 | m_Value: 30 243 | gaussianMaxRadius: 244 | m_OverrideState: 1 245 | m_Value: 1 246 | highQualitySampling: 247 | m_OverrideState: 1 248 | m_Value: 0 249 | focusDistance: 250 | m_OverrideState: 1 251 | m_Value: 10 252 | aperture: 253 | m_OverrideState: 1 254 | m_Value: 5.6 255 | focalLength: 256 | m_OverrideState: 1 257 | m_Value: 50 258 | bladeCount: 259 | m_OverrideState: 1 260 | m_Value: 5 261 | bladeCurvature: 262 | m_OverrideState: 1 263 | m_Value: 1 264 | bladeRotation: 265 | m_OverrideState: 1 266 | m_Value: 0 267 | --- !u!114 &-434621370638523466 268 | MonoBehaviour: 269 | m_ObjectHideFlags: 3 270 | m_CorrespondingSourceObject: {fileID: 0} 271 | m_PrefabInstance: {fileID: 0} 272 | m_PrefabAsset: {fileID: 0} 273 | m_GameObject: {fileID: 0} 274 | m_Enabled: 1 275 | m_EditorHideFlags: 0 276 | m_Script: {fileID: 11500000, guid: cdfbdbb87d3286943a057f7791b43141, type: 3} 277 | m_Name: ChannelMixer 278 | m_EditorClassIdentifier: 279 | active: 1 280 | redOutRedIn: 281 | m_OverrideState: 1 282 | m_Value: 100 283 | redOutGreenIn: 284 | m_OverrideState: 1 285 | m_Value: 0 286 | redOutBlueIn: 287 | m_OverrideState: 1 288 | m_Value: 0 289 | greenOutRedIn: 290 | m_OverrideState: 1 291 | m_Value: 0 292 | greenOutGreenIn: 293 | m_OverrideState: 1 294 | m_Value: 100 295 | greenOutBlueIn: 296 | m_OverrideState: 1 297 | m_Value: 0 298 | blueOutRedIn: 299 | m_OverrideState: 1 300 | m_Value: 0 301 | blueOutGreenIn: 302 | m_OverrideState: 1 303 | m_Value: 0 304 | blueOutBlueIn: 305 | m_OverrideState: 1 306 | m_Value: 100 307 | --- !u!114 &11400000 308 | MonoBehaviour: 309 | m_ObjectHideFlags: 0 310 | m_CorrespondingSourceObject: {fileID: 0} 311 | m_PrefabInstance: {fileID: 0} 312 | m_PrefabAsset: {fileID: 0} 313 | m_GameObject: {fileID: 0} 314 | m_Enabled: 1 315 | m_EditorHideFlags: 0 316 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 317 | m_Name: DefaultVolumeProfile 318 | m_EditorClassIdentifier: 319 | components: 320 | - {fileID: 2589387013649290861} 321 | - {fileID: -6571652446047767811} 322 | - {fileID: -7776214452813603536} 323 | - {fileID: -5707832329534761780} 324 | - {fileID: 842113406428349076} 325 | - {fileID: -5448938156800823088} 326 | - {fileID: -1456538851931933286} 327 | - {fileID: 3629664173742795769} 328 | - {fileID: 1298675144119181420} 329 | - {fileID: -434621370638523466} 330 | - {fileID: 3603910120623323333} 331 | - {fileID: 3571781632678004547} 332 | - {fileID: 4315499908136338140} 333 | - {fileID: 1043975968750344196} 334 | - {fileID: -7731169171390299042} 335 | - {fileID: -5832183980546975662} 336 | - {fileID: -5927136032342448306} 337 | - {fileID: 2288953301971560289} 338 | - {fileID: 3380426965095921167} 339 | --- !u!114 &842113406428349076 340 | MonoBehaviour: 341 | m_ObjectHideFlags: 3 342 | m_CorrespondingSourceObject: {fileID: 0} 343 | m_PrefabInstance: {fileID: 0} 344 | m_PrefabAsset: {fileID: 0} 345 | m_GameObject: {fileID: 0} 346 | m_Enabled: 1 347 | m_EditorHideFlags: 0 348 | m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} 349 | m_Name: Tonemapping 350 | m_EditorClassIdentifier: 351 | active: 1 352 | mode: 353 | m_OverrideState: 1 354 | m_Value: 0 355 | neutralHDRRangeReductionMode: 356 | m_OverrideState: 1 357 | m_Value: 2 358 | acesPreset: 359 | m_OverrideState: 1 360 | m_Value: 3 361 | hueShiftAmount: 362 | m_OverrideState: 1 363 | m_Value: 0 364 | detectPaperWhite: 365 | m_OverrideState: 1 366 | m_Value: 0 367 | paperWhite: 368 | m_OverrideState: 1 369 | m_Value: 300 370 | detectBrightnessLimits: 371 | m_OverrideState: 1 372 | m_Value: 1 373 | minNits: 374 | m_OverrideState: 1 375 | m_Value: 0.005 376 | maxNits: 377 | m_OverrideState: 1 378 | m_Value: 1000 379 | --- !u!114 &1043975968750344196 380 | MonoBehaviour: 381 | m_ObjectHideFlags: 3 382 | m_CorrespondingSourceObject: {fileID: 0} 383 | m_PrefabInstance: {fileID: 0} 384 | m_PrefabAsset: {fileID: 0} 385 | m_GameObject: {fileID: 0} 386 | m_Enabled: 1 387 | m_EditorHideFlags: 0 388 | m_Script: {fileID: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3} 389 | m_Name: PaniniProjection 390 | m_EditorClassIdentifier: 391 | active: 1 392 | distance: 393 | m_OverrideState: 1 394 | m_Value: 0 395 | cropToFit: 396 | m_OverrideState: 1 397 | m_Value: 1 398 | --- !u!114 &1298675144119181420 399 | MonoBehaviour: 400 | m_ObjectHideFlags: 3 401 | m_CorrespondingSourceObject: {fileID: 0} 402 | m_PrefabInstance: {fileID: 0} 403 | m_PrefabAsset: {fileID: 0} 404 | m_GameObject: {fileID: 0} 405 | m_Enabled: 1 406 | m_EditorHideFlags: 0 407 | m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} 408 | m_Name: Vignette 409 | m_EditorClassIdentifier: 410 | active: 1 411 | color: 412 | m_OverrideState: 1 413 | m_Value: {r: 0, g: 0, b: 0, a: 1} 414 | center: 415 | m_OverrideState: 1 416 | m_Value: {x: 0.5, y: 0.5} 417 | intensity: 418 | m_OverrideState: 1 419 | m_Value: 0 420 | smoothness: 421 | m_OverrideState: 1 422 | m_Value: 0.2 423 | rounded: 424 | m_OverrideState: 1 425 | m_Value: 0 426 | --- !u!114 &2288953301971560289 427 | MonoBehaviour: 428 | m_ObjectHideFlags: 3 429 | m_CorrespondingSourceObject: {fileID: 0} 430 | m_PrefabInstance: {fileID: 0} 431 | m_PrefabAsset: {fileID: 0} 432 | m_GameObject: {fileID: 0} 433 | m_Enabled: 1 434 | m_EditorHideFlags: 0 435 | m_Script: {fileID: 11500000, guid: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3} 436 | m_Name: SplitToning 437 | m_EditorClassIdentifier: 438 | active: 1 439 | shadows: 440 | m_OverrideState: 1 441 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 442 | highlights: 443 | m_OverrideState: 1 444 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 445 | balance: 446 | m_OverrideState: 1 447 | m_Value: 0 448 | --- !u!114 &2589387013649290861 449 | MonoBehaviour: 450 | m_ObjectHideFlags: 3 451 | m_CorrespondingSourceObject: {fileID: 0} 452 | m_PrefabInstance: {fileID: 0} 453 | m_PrefabAsset: {fileID: 0} 454 | m_GameObject: {fileID: 0} 455 | m_Enabled: 1 456 | m_EditorHideFlags: 0 457 | m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} 458 | m_Name: ChromaticAberration 459 | m_EditorClassIdentifier: 460 | active: 1 461 | intensity: 462 | m_OverrideState: 1 463 | m_Value: 0 464 | --- !u!114 &3380426965095921167 465 | MonoBehaviour: 466 | m_ObjectHideFlags: 3 467 | m_CorrespondingSourceObject: {fileID: 0} 468 | m_PrefabInstance: {fileID: 0} 469 | m_PrefabAsset: {fileID: 0} 470 | m_GameObject: {fileID: 0} 471 | m_Enabled: 1 472 | m_EditorHideFlags: 0 473 | m_Script: {fileID: 11500000, guid: 6bd486065ce11414fa40e631affc4900, type: 3} 474 | m_Name: ProbeVolumesOptions 475 | m_EditorClassIdentifier: 476 | active: 1 477 | normalBias: 478 | m_OverrideState: 1 479 | m_Value: 0.05 480 | viewBias: 481 | m_OverrideState: 1 482 | m_Value: 0.1 483 | scaleBiasWithMinProbeDistance: 484 | m_OverrideState: 1 485 | m_Value: 0 486 | samplingNoise: 487 | m_OverrideState: 1 488 | m_Value: 0.1 489 | animateSamplingNoise: 490 | m_OverrideState: 1 491 | m_Value: 1 492 | leakReductionMode: 493 | m_OverrideState: 1 494 | m_Value: 2 495 | minValidDotProductValue: 496 | m_OverrideState: 1 497 | m_Value: 0.1 498 | occlusionOnlyReflectionNormalization: 499 | m_OverrideState: 1 500 | m_Value: 1 501 | intensityMultiplier: 502 | m_OverrideState: 1 503 | m_Value: 1 504 | skyOcclusionIntensityMultiplier: 505 | m_OverrideState: 1 506 | m_Value: 1 507 | worldOffset: 508 | m_OverrideState: 1 509 | m_Value: {x: 0, y: 0, z: 0} 510 | --- !u!114 &3571781632678004547 511 | MonoBehaviour: 512 | m_ObjectHideFlags: 3 513 | m_CorrespondingSourceObject: {fileID: 0} 514 | m_PrefabInstance: {fileID: 0} 515 | m_PrefabAsset: {fileID: 0} 516 | m_GameObject: {fileID: 0} 517 | m_Enabled: 1 518 | m_EditorHideFlags: 0 519 | m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} 520 | m_Name: Bloom 521 | m_EditorClassIdentifier: 522 | active: 1 523 | skipIterations: 524 | m_OverrideState: 1 525 | m_Value: 1 526 | threshold: 527 | m_OverrideState: 1 528 | m_Value: 0.9 529 | intensity: 530 | m_OverrideState: 1 531 | m_Value: 0 532 | scatter: 533 | m_OverrideState: 1 534 | m_Value: 0.7 535 | clamp: 536 | m_OverrideState: 1 537 | m_Value: 65472 538 | tint: 539 | m_OverrideState: 1 540 | m_Value: {r: 1, g: 1, b: 1, a: 1} 541 | highQualityFiltering: 542 | m_OverrideState: 1 543 | m_Value: 0 544 | downscale: 545 | m_OverrideState: 1 546 | m_Value: 0 547 | maxIterations: 548 | m_OverrideState: 1 549 | m_Value: 6 550 | dirtTexture: 551 | m_OverrideState: 1 552 | m_Value: {fileID: 0} 553 | dimension: 1 554 | dirtIntensity: 555 | m_OverrideState: 1 556 | m_Value: 0 557 | --- !u!114 &3603910120623323333 558 | MonoBehaviour: 559 | m_ObjectHideFlags: 3 560 | m_CorrespondingSourceObject: {fileID: 0} 561 | m_PrefabInstance: {fileID: 0} 562 | m_PrefabAsset: {fileID: 0} 563 | m_GameObject: {fileID: 0} 564 | m_Enabled: 1 565 | m_EditorHideFlags: 0 566 | m_Script: {fileID: 11500000, guid: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3} 567 | m_Name: LiftGammaGain 568 | m_EditorClassIdentifier: 569 | active: 1 570 | lift: 571 | m_OverrideState: 1 572 | m_Value: {x: 1, y: 1, z: 1, w: 0} 573 | gamma: 574 | m_OverrideState: 1 575 | m_Value: {x: 1, y: 1, z: 1, w: 0} 576 | gain: 577 | m_OverrideState: 1 578 | m_Value: {x: 1, y: 1, z: 1, w: 0} 579 | --- !u!114 &3629664173742795769 580 | MonoBehaviour: 581 | m_ObjectHideFlags: 3 582 | m_CorrespondingSourceObject: {fileID: 0} 583 | m_PrefabInstance: {fileID: 0} 584 | m_PrefabAsset: {fileID: 0} 585 | m_GameObject: {fileID: 0} 586 | m_Enabled: 1 587 | m_EditorHideFlags: 0 588 | m_Script: {fileID: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3} 589 | m_Name: ColorAdjustments 590 | m_EditorClassIdentifier: 591 | active: 1 592 | postExposure: 593 | m_OverrideState: 1 594 | m_Value: 0 595 | contrast: 596 | m_OverrideState: 1 597 | m_Value: 0 598 | colorFilter: 599 | m_OverrideState: 1 600 | m_Value: {r: 1, g: 1, b: 1, a: 1} 601 | hueShift: 602 | m_OverrideState: 1 603 | m_Value: 0 604 | saturation: 605 | m_OverrideState: 1 606 | m_Value: 0 607 | --- !u!114 &4315499908136338140 608 | MonoBehaviour: 609 | m_ObjectHideFlags: 3 610 | m_CorrespondingSourceObject: {fileID: 0} 611 | m_PrefabInstance: {fileID: 0} 612 | m_PrefabAsset: {fileID: 0} 613 | m_GameObject: {fileID: 0} 614 | m_Enabled: 1 615 | m_EditorHideFlags: 0 616 | m_Script: {fileID: 11500000, guid: 3eb4b772797da9440885e8bd939e9560, type: 3} 617 | m_Name: ColorCurves 618 | m_EditorClassIdentifier: 619 | active: 1 620 | master: 621 | m_OverrideState: 1 622 | m_Value: 623 | k__BackingField: 2 624 | m_Loop: 0 625 | m_ZeroValue: 0 626 | m_Range: 1 627 | m_Curve: 628 | serializedVersion: 2 629 | m_Curve: 630 | - serializedVersion: 3 631 | time: 0 632 | value: 0 633 | inSlope: 1 634 | outSlope: 1 635 | tangentMode: 0 636 | weightedMode: 0 637 | inWeight: 0 638 | outWeight: 0 639 | - serializedVersion: 3 640 | time: 1 641 | value: 1 642 | inSlope: 1 643 | outSlope: 1 644 | tangentMode: 0 645 | weightedMode: 0 646 | inWeight: 0 647 | outWeight: 0 648 | m_PreInfinity: 2 649 | m_PostInfinity: 2 650 | m_RotationOrder: 4 651 | red: 652 | m_OverrideState: 1 653 | m_Value: 654 | k__BackingField: 2 655 | m_Loop: 0 656 | m_ZeroValue: 0 657 | m_Range: 1 658 | m_Curve: 659 | serializedVersion: 2 660 | m_Curve: 661 | - serializedVersion: 3 662 | time: 0 663 | value: 0 664 | inSlope: 1 665 | outSlope: 1 666 | tangentMode: 0 667 | weightedMode: 0 668 | inWeight: 0 669 | outWeight: 0 670 | - serializedVersion: 3 671 | time: 1 672 | value: 1 673 | inSlope: 1 674 | outSlope: 1 675 | tangentMode: 0 676 | weightedMode: 0 677 | inWeight: 0 678 | outWeight: 0 679 | m_PreInfinity: 2 680 | m_PostInfinity: 2 681 | m_RotationOrder: 4 682 | green: 683 | m_OverrideState: 1 684 | m_Value: 685 | k__BackingField: 2 686 | m_Loop: 0 687 | m_ZeroValue: 0 688 | m_Range: 1 689 | m_Curve: 690 | serializedVersion: 2 691 | m_Curve: 692 | - serializedVersion: 3 693 | time: 0 694 | value: 0 695 | inSlope: 1 696 | outSlope: 1 697 | tangentMode: 0 698 | weightedMode: 0 699 | inWeight: 0 700 | outWeight: 0 701 | - serializedVersion: 3 702 | time: 1 703 | value: 1 704 | inSlope: 1 705 | outSlope: 1 706 | tangentMode: 0 707 | weightedMode: 0 708 | inWeight: 0 709 | outWeight: 0 710 | m_PreInfinity: 2 711 | m_PostInfinity: 2 712 | m_RotationOrder: 4 713 | blue: 714 | m_OverrideState: 1 715 | m_Value: 716 | k__BackingField: 2 717 | m_Loop: 0 718 | m_ZeroValue: 0 719 | m_Range: 1 720 | m_Curve: 721 | serializedVersion: 2 722 | m_Curve: 723 | - serializedVersion: 3 724 | time: 0 725 | value: 0 726 | inSlope: 1 727 | outSlope: 1 728 | tangentMode: 0 729 | weightedMode: 0 730 | inWeight: 0 731 | outWeight: 0 732 | - serializedVersion: 3 733 | time: 1 734 | value: 1 735 | inSlope: 1 736 | outSlope: 1 737 | tangentMode: 0 738 | weightedMode: 0 739 | inWeight: 0 740 | outWeight: 0 741 | m_PreInfinity: 2 742 | m_PostInfinity: 2 743 | m_RotationOrder: 4 744 | hueVsHue: 745 | m_OverrideState: 1 746 | m_Value: 747 | k__BackingField: 0 748 | m_Loop: 1 749 | m_ZeroValue: 0.5 750 | m_Range: 1 751 | m_Curve: 752 | serializedVersion: 2 753 | m_Curve: [] 754 | m_PreInfinity: 2 755 | m_PostInfinity: 2 756 | m_RotationOrder: 4 757 | hueVsSat: 758 | m_OverrideState: 1 759 | m_Value: 760 | k__BackingField: 0 761 | m_Loop: 1 762 | m_ZeroValue: 0.5 763 | m_Range: 1 764 | m_Curve: 765 | serializedVersion: 2 766 | m_Curve: [] 767 | m_PreInfinity: 2 768 | m_PostInfinity: 2 769 | m_RotationOrder: 4 770 | satVsSat: 771 | m_OverrideState: 1 772 | m_Value: 773 | k__BackingField: 0 774 | m_Loop: 0 775 | m_ZeroValue: 0.5 776 | m_Range: 1 777 | m_Curve: 778 | serializedVersion: 2 779 | m_Curve: [] 780 | m_PreInfinity: 2 781 | m_PostInfinity: 2 782 | m_RotationOrder: 4 783 | lumVsSat: 784 | m_OverrideState: 1 785 | m_Value: 786 | k__BackingField: 0 787 | m_Loop: 0 788 | m_ZeroValue: 0.5 789 | m_Range: 1 790 | m_Curve: 791 | serializedVersion: 2 792 | m_Curve: [] 793 | m_PreInfinity: 2 794 | m_PostInfinity: 2 795 | m_RotationOrder: 4 796 | -------------------------------------------------------------------------------- /Assets/Settings/DefaultVolumeProfile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3186837da4fea4c2796c63ca9f6e9ba0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/URP Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 13 | m_Name: URP Asset 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 12 16 | k_AssetPreviousVersion: 12 17 | m_RendererType: 1 18 | m_RendererData: {fileID: 0} 19 | m_RendererDataList: 20 | - {fileID: 11400000, guid: 2a7a3b73cbe324d7b8058611f507070f, type: 2} 21 | m_DefaultRendererIndex: 0 22 | m_RequireDepthTexture: 0 23 | m_RequireOpaqueTexture: 0 24 | m_OpaqueDownsampling: 1 25 | m_SupportsTerrainHoles: 1 26 | m_SupportsHDR: 1 27 | m_HDRColorBufferPrecision: 0 28 | m_MSAA: 1 29 | m_RenderScale: 1 30 | m_UpscalingFilter: 0 31 | m_FsrOverrideSharpness: 0 32 | m_FsrSharpness: 0.92 33 | m_EnableLODCrossFade: 1 34 | m_LODCrossFadeDitheringType: 1 35 | m_ShEvalMode: 0 36 | m_LightProbeSystem: 0 37 | m_ProbeVolumeMemoryBudget: 1024 38 | m_ProbeVolumeBlendingMemoryBudget: 256 39 | m_SupportProbeVolumeGPUStreaming: 0 40 | m_SupportProbeVolumeDiskStreaming: 0 41 | m_SupportProbeVolumeScenarios: 0 42 | m_SupportProbeVolumeScenarioBlending: 0 43 | m_ProbeVolumeSHBands: 1 44 | m_MainLightRenderingMode: 1 45 | m_MainLightShadowsSupported: 1 46 | m_MainLightShadowmapResolution: 2048 47 | m_AdditionalLightsRenderingMode: 1 48 | m_AdditionalLightsPerObjectLimit: 4 49 | m_AdditionalLightShadowsSupported: 0 50 | m_AdditionalLightsShadowmapResolution: 2048 51 | m_AdditionalLightsShadowResolutionTierLow: 256 52 | m_AdditionalLightsShadowResolutionTierMedium: 512 53 | m_AdditionalLightsShadowResolutionTierHigh: 1024 54 | m_ReflectionProbeBlending: 0 55 | m_ReflectionProbeBoxProjection: 0 56 | m_ShadowDistance: 50 57 | m_ShadowCascadeCount: 1 58 | m_Cascade2Split: 0.25 59 | m_Cascade3Split: {x: 0.1, y: 0.3} 60 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 61 | m_CascadeBorder: 0.2 62 | m_ShadowDepthBias: 1 63 | m_ShadowNormalBias: 1 64 | m_AnyShadowsSupported: 1 65 | m_SoftShadowsSupported: 0 66 | m_ConservativeEnclosingSphere: 1 67 | m_NumIterationsEnclosingSphere: 64 68 | m_SoftShadowQuality: 2 69 | m_AdditionalLightsCookieResolution: 2048 70 | m_AdditionalLightsCookieFormat: 3 71 | m_UseSRPBatcher: 1 72 | m_SupportsDynamicBatching: 0 73 | m_MixedLightingSupported: 1 74 | m_SupportsLightCookies: 1 75 | m_SupportsLightLayers: 0 76 | m_DebugLevel: 0 77 | m_StoreActionsOptimization: 0 78 | m_UseAdaptivePerformance: 1 79 | m_ColorGradingMode: 0 80 | m_ColorGradingLutSize: 32 81 | m_AllowPostProcessAlphaOutput: 0 82 | m_UseFastSRGBLinearConversion: 0 83 | m_SupportDataDrivenLensFlare: 1 84 | m_SupportScreenSpaceLensFlare: 1 85 | m_GPUResidentDrawerMode: 0 86 | m_SmallMeshScreenPercentage: 0 87 | m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 88 | m_ShadowType: 1 89 | m_LocalShadowsSupported: 0 90 | m_LocalShadowsAtlasResolution: 256 91 | m_MaxPixelLights: 0 92 | m_ShadowAtlasResolution: 256 93 | m_VolumeFrameworkUpdateMode: 0 94 | m_VolumeProfile: {fileID: 0} 95 | apvScenesData: 96 | obsoleteSceneBounds: 97 | m_Keys: [] 98 | m_Values: [] 99 | obsoleteHasProbeVolumes: 100 | m_Keys: [] 101 | m_Values: 102 | m_PrefilteringModeMainLightShadows: 1 103 | m_PrefilteringModeAdditionalLight: 4 104 | m_PrefilteringModeAdditionalLightShadows: 1 105 | m_PrefilterXRKeywords: 0 106 | m_PrefilteringModeForwardPlus: 1 107 | m_PrefilteringModeDeferredRendering: 1 108 | m_PrefilteringModeScreenSpaceOcclusion: 1 109 | m_PrefilterDebugKeywords: 0 110 | m_PrefilterWriteRenderingLayers: 0 111 | m_PrefilterHDROutput: 0 112 | m_PrefilterAlphaOutput: 0 113 | m_PrefilterSSAODepthNormals: 0 114 | m_PrefilterSSAOSourceDepthLow: 0 115 | m_PrefilterSSAOSourceDepthMedium: 0 116 | m_PrefilterSSAOSourceDepthHigh: 0 117 | m_PrefilterSSAOInterleaved: 0 118 | m_PrefilterSSAOBlueNoise: 0 119 | m_PrefilterSSAOSampleCountLow: 0 120 | m_PrefilterSSAOSampleCountMedium: 0 121 | m_PrefilterSSAOSampleCountHigh: 0 122 | m_PrefilterDBufferMRT1: 0 123 | m_PrefilterDBufferMRT2: 0 124 | m_PrefilterDBufferMRT3: 0 125 | m_PrefilterSoftShadowsQualityLow: 0 126 | m_PrefilterSoftShadowsQualityMedium: 0 127 | m_PrefilterSoftShadowsQualityHigh: 0 128 | m_PrefilterSoftShadows: 0 129 | m_PrefilterScreenCoord: 0 130 | m_PrefilterNativeRenderPass: 0 131 | m_PrefilterUseLegacyLightmaps: 0 132 | m_ShaderVariantLogLevel: 0 133 | m_ShadowCascades: 0 134 | m_Textures: 135 | blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} 136 | bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} 137 | -------------------------------------------------------------------------------- /Assets/Settings/URP Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5d660f4731544522be937aad322ae2f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/URP Asset_Renderer.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} 13 | m_Name: URP Asset_Renderer 14 | m_EditorClassIdentifier: 15 | debugShaders: 16 | debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} 17 | hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} 18 | probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3} 19 | probeVolumeResources: 20 | probeVolumeDebugShader: {fileID: 0} 21 | probeVolumeFragmentationDebugShader: {fileID: 0} 22 | probeVolumeOffsetDebugShader: {fileID: 0} 23 | probeVolumeSamplingDebugShader: {fileID: 0} 24 | probeSamplingDebugMesh: {fileID: 0} 25 | probeSamplingDebugTexture: {fileID: 0} 26 | probeVolumeBlendStatesCS: {fileID: 0} 27 | m_RendererFeatures: [] 28 | m_RendererFeatureMap: 29 | m_UseNativeRenderPass: 0 30 | postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} 31 | m_AssetVersion: 2 32 | m_OpaqueLayerMask: 33 | serializedVersion: 2 34 | m_Bits: 4294967295 35 | m_TransparentLayerMask: 36 | serializedVersion: 2 37 | m_Bits: 4294967295 38 | m_DefaultStencilState: 39 | overrideStencilState: 0 40 | stencilReference: 0 41 | stencilCompareFunction: 8 42 | passOperation: 2 43 | failOperation: 0 44 | zFailOperation: 0 45 | m_ShadowTransparentReceive: 1 46 | m_RenderingMode: 0 47 | m_DepthPrimingMode: 0 48 | m_CopyDepthMode: 1 49 | m_DepthAttachmentFormat: 0 50 | m_DepthTextureFormat: 0 51 | m_AccurateGbufferNormals: 0 52 | m_IntermediateTextureMode: 1 53 | -------------------------------------------------------------------------------- /Assets/Settings/URP Asset_Renderer.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a7a3b73cbe324d7b8058611f507070f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/URP GlobalSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3} 13 | m_Name: URP GlobalSettings 14 | m_EditorClassIdentifier: 15 | m_ShaderStrippingSetting: 16 | m_Version: 0 17 | m_ExportShaderVariants: 1 18 | m_ShaderVariantLogLevel: 0 19 | m_StripRuntimeDebugShaders: 1 20 | m_URPShaderStrippingSetting: 21 | m_Version: 0 22 | m_StripUnusedPostProcessingVariants: 0 23 | m_StripUnusedVariants: 1 24 | m_StripScreenCoordOverrideVariants: 1 25 | m_ShaderVariantLogLevel: 0 26 | m_ExportShaderVariants: 1 27 | m_StripDebugVariants: 1 28 | m_StripUnusedPostProcessingVariants: 0 29 | m_StripUnusedVariants: 1 30 | m_StripScreenCoordOverrideVariants: 1 31 | supportRuntimeDebugDisplay: 0 32 | m_EnableRenderGraph: 0 33 | m_Settings: 34 | m_SettingsList: 35 | m_List: 36 | - rid: 5821756227110568119 37 | - rid: 5821756227110568120 38 | - rid: 5821756227110568121 39 | - rid: 5821756227110568122 40 | - rid: 5821756227110568123 41 | - rid: 5821756227110568124 42 | - rid: 5821756227110568125 43 | - rid: 5821756227110568126 44 | - rid: 5821756227110568127 45 | - rid: 5821756227110568128 46 | - rid: 5821756227110568129 47 | - rid: 5821756227110568130 48 | - rid: 5821756227110568131 49 | - rid: 5821756227110568132 50 | - rid: 5821756227110568133 51 | - rid: 5821756227110568134 52 | - rid: 5821756227110568135 53 | - rid: 5821756227110568136 54 | - rid: 5821756227110568137 55 | - rid: 5821756227110568138 56 | - rid: 1999280989549887488 57 | - rid: 1999281123262201856 58 | m_RuntimeSettings: 59 | m_List: [] 60 | m_AssetVersion: 8 61 | m_ObsoleteDefaultVolumeProfile: {fileID: 0} 62 | m_RenderingLayerNames: 63 | - Default 64 | m_ValidRenderingLayers: 0 65 | lightLayerName0: 66 | lightLayerName1: 67 | lightLayerName2: 68 | lightLayerName3: 69 | lightLayerName4: 70 | lightLayerName5: 71 | lightLayerName6: 72 | lightLayerName7: 73 | apvScenesData: 74 | obsoleteSceneBounds: 75 | m_Keys: [] 76 | m_Values: [] 77 | obsoleteHasProbeVolumes: 78 | m_Keys: [] 79 | m_Values: 80 | references: 81 | version: 2 82 | RefIds: 83 | - rid: 1999280989549887488 84 | type: {class: UniversalRenderPipelineRuntimeXRResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 85 | data: 86 | m_xrOcclusionMeshPS: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, type: 3} 87 | m_xrMirrorViewPS: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, type: 3} 88 | m_xrMotionVector: {fileID: 4800000, guid: f89aac1e4f84468418fe30e611dff395, type: 3} 89 | - rid: 1999281123262201856 90 | type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 91 | data: 92 | m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2} 93 | - rid: 5821756227110568119 94 | type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 95 | data: 96 | m_Version: 1 97 | m_BlueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} 98 | m_BayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} 99 | m_DebugFontTex: {fileID: 2800000, guid: 26a413214480ef144b2915d6ff4d0beb, type: 3} 100 | - rid: 5821756227110568120 101 | type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 102 | data: 103 | m_DebugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} 104 | m_HdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} 105 | m_ProbeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3} 106 | - rid: 5821756227110568121 107 | type: {class: UniversalRenderPipelineRuntimeShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 108 | data: 109 | m_Version: 0 110 | m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} 111 | m_BlitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3} 112 | m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} 113 | m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3} 114 | m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} 115 | - rid: 5821756227110568122 116 | type: {class: RenderGraphSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 117 | data: 118 | m_Version: 0 119 | m_EnableRenderCompatibilityMode: 0 120 | - rid: 5821756227110568123 121 | type: {class: URPDefaultVolumeProfileSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 122 | data: 123 | m_Version: 0 124 | m_VolumeProfile: {fileID: 11400000, guid: 3186837da4fea4c2796c63ca9f6e9ba0, type: 2} 125 | - rid: 5821756227110568124 126 | type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 127 | data: 128 | m_Version: 0 129 | m_LightShader: {fileID: 4800000, guid: 3f6c848ca3d7bca4bbe846546ac701a1, type: 3} 130 | m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, type: 3} 131 | m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, type: 3} 132 | m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, type: 3} 133 | m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, type: 3} 134 | m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, type: 3} 135 | m_FallOffLookup: {fileID: 2800000, guid: 5688ab254e4c0634f8d6c8e0792331ca, type: 3} 136 | m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} 137 | m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} 138 | m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} 139 | m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2} 140 | - rid: 5821756227110568125 141 | type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 142 | data: 143 | m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3} 144 | m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3} 145 | m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3} 146 | m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3} 147 | m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3} 148 | m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3} 149 | m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3} 150 | m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3} 151 | m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3} 152 | - rid: 5821756227110568126 153 | type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 154 | data: 155 | m_Version: 0 156 | m_StripUnusedPostProcessingVariants: 0 157 | m_StripUnusedVariants: 1 158 | m_StripScreenCoordOverrideVariants: 1 159 | - rid: 5821756227110568127 160 | type: {class: UniversalRendererResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 161 | data: 162 | m_Version: 0 163 | m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} 164 | m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3} 165 | m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} 166 | m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3} 167 | - rid: 5821756227110568128 168 | type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 169 | data: 170 | m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} 171 | m_DefaultParticleMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2} 172 | m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2} 173 | m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} 174 | m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2} 175 | m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} 176 | - rid: 5821756227110568129 177 | type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime} 178 | data: 179 | m_Version: 0 180 | m_InstanceDataBufferCopyKernels: {fileID: 7200000, guid: f984aeb540ded8b4fbb8a2047ab5b2e2, type: 3} 181 | m_InstanceDataBufferUploadKernels: {fileID: 7200000, guid: 53864816eb00f2343b60e1a2c5a262ef, type: 3} 182 | m_TransformUpdaterKernels: {fileID: 7200000, guid: 2a567b9b2733f8d47a700c3c85bed75b, type: 3} 183 | m_WindDataUpdaterKernels: {fileID: 7200000, guid: fde76746e4fd0ed418c224f6b4084114, type: 3} 184 | m_OccluderDepthPyramidKernels: {fileID: 7200000, guid: 08b2b5fb307b0d249860612774a987da, type: 3} 185 | m_InstanceOcclusionCullingKernels: {fileID: 7200000, guid: f6d223acabc2f974795a5a7864b50e6c, type: 3} 186 | m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3} 187 | m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3} 188 | m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3} 189 | - rid: 5821756227110568130 190 | type: {class: RenderGraphGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 191 | data: 192 | m_version: 0 193 | m_EnableCompilationCaching: 1 194 | m_EnableValidityChecks: 1 195 | - rid: 5821756227110568131 196 | type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 197 | data: 198 | m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3} 199 | m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3} 200 | m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3} 201 | - rid: 5821756227110568132 202 | type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 203 | data: 204 | m_Version: 1 205 | probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3} 206 | probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3} 207 | probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3} 208 | - rid: 5821756227110568133 209 | type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 210 | data: 211 | m_version: 0 212 | m_IncludeReferencedInScenes: 0 213 | m_IncludeAssetsByLabel: 0 214 | m_LabelToInclude: 215 | - rid: 5821756227110568134 216 | type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 217 | data: 218 | m_Version: 1 219 | dilationShader: {fileID: 7200000, guid: 6bb382f7de370af41b775f54182e491d, type: 3} 220 | subdivideSceneCS: {fileID: 7200000, guid: bb86f1f0af829fd45b2ebddda1245c22, type: 3} 221 | voxelizeSceneShader: {fileID: 4800000, guid: c8b6a681c7b4e2e4785ffab093907f9e, type: 3} 222 | traceVirtualOffsetCS: {fileID: -6772857160820960102, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3} 223 | traceVirtualOffsetRT: {fileID: -5126288278712620388, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3} 224 | skyOcclusionCS: {fileID: -6772857160820960102, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3} 225 | skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3} 226 | renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, type: 3} 227 | renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, type: 3} 228 | - rid: 5821756227110568135 229 | type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, asm: Unity.RenderPipelines.Core.Runtime} 230 | data: 231 | m_Version: 0 232 | m_CoreCopyPS: {fileID: 4800000, guid: 12dc59547ea167a4ab435097dd0f9add, type: 3} 233 | - rid: 5821756227110568136 234 | type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 235 | data: 236 | m_Version: 1 237 | probeVolumeDebugShader: {fileID: 4800000, guid: 3b21275fd12d65f49babb5286f040f2d, type: 3} 238 | probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 3a80877c579b9144ebdcc6d923bca303, type: 3} 239 | probeVolumeSamplingDebugShader: {fileID: 4800000, guid: bf54e6528c79a224e96346799064c393, type: 3} 240 | probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3} 241 | probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3} 242 | numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3} 243 | - rid: 5821756227110568137 244 | type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 245 | data: 246 | m_Version: 1 247 | m_ProbeVolumeDisableStreamingAssets: 0 248 | - rid: 5821756227110568138 249 | type: {class: ShaderStrippingSetting, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 250 | data: 251 | m_Version: 0 252 | m_ExportShaderVariants: 1 253 | m_ShaderVariantLogLevel: 0 254 | m_StripRuntimeDebugShaders: 1 255 | -------------------------------------------------------------------------------- /Assets/Settings/URP GlobalSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0c9d9157053c465dbfa425784f604bf 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Packages/com.github.asus4.texture-source/LICENSE -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Koki Ibukuro 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. -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81247af5bac164445a8eb7c229b2ea02 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/README.md: -------------------------------------------------------------------------------- 1 | # Texture Source 2 | 3 | [![upm](https://img.shields.io/npm/v/com.github.asus4.texture-source?label=upm)](https://www.npmjs.com/package/com.github.asus4.texture-source) 4 | 5 | TextureSource is a utility that provides a consistent API to get the texture from various sources. 6 | 7 | ![virtual-texture](https://github.com/asus4/TextureSource/assets/357497/e52f80d2-b1be-4cfa-81f7-76cdafe271bc) 8 | 9 | ## Example API Usage 10 | 11 | ```c# 12 | using TextureSource; 13 | using UnityEngine; 14 | 15 | [RequireComponent(typeof(VirtualTextureSource))] 16 | public class TextureSourceSample: MonoBehaviour 17 | { 18 | private void Start() 19 | { 20 | // Listen to OnTexture event from VirtualTextureSource 21 | // Also able to bind in the inspector 22 | if (TryGetComponent(out VirtualTextureSource source)) 23 | { 24 | source.OnTexture.AddListener(OnTexture); 25 | } 26 | } 27 | 28 | private void OnDestroy() 29 | { 30 | if (TryGetComponent(out VirtualTextureSource source)) 31 | { 32 | source.OnTexture.RemoveListener(OnTexture); 33 | } 34 | } 35 | 36 | public void OnTexture(Texture texture) 37 | { 38 | // Do whatever 🥳 39 | // You don't need to think about webcam texture rotation. 40 | } 41 | } 42 | ``` 43 | 44 | ## Install via UPM 45 | 46 | Add the following setting to `Packages/manifest.json` 47 | 48 | ```json 49 | { 50 | "scopedRegistries": [ 51 | { 52 | "name": "npm", 53 | "url": "https://registry.npmjs.com", 54 | "scopes": [ 55 | "com.github.asus4" 56 | ] 57 | } 58 | ], 59 | "dependencies": { 60 | "com.github.asus4.texture-source": "0.3.3", 61 | ...// other dependencies 62 | } 63 | } 64 | ``` 65 | 66 | ## How To Use 67 | 68 | After installing the library, attach `VirtualTextureSource` to the GameObject. 69 | 70 | ![virtual-texture](https://github.com/asus4/TextureSource/assets/357497/e52f80d2-b1be-4cfa-81f7-76cdafe271bc) 71 | 72 | Then, right-click on the project panel and create the TextureSource scriptable object that you want to use. You can set different sources for the Editor and Runtime. 73 | 74 | ![scriptable-object](https://github.com/asus4/TextureSource/assets/357497/6c4862e2-5298-4f4e-8cd5-076d54d46db8) 75 | 76 | Currently provides the following sources: 77 | 78 | ### WebCam Texture Source 79 | 80 | Includes collecting device rotation. 81 | 82 | ![webcam-texture-source](https://github.com/asus4/TextureSource/assets/357497/407f7372-b214-4ba9-9093-2b39755b905b) 83 | 84 | ### Video Texture Source 85 | 86 | Useful when using test videos only in the Editor. 87 | 88 | ![video-texture-source](https://github.com/asus4/TextureSource/assets/357497/8e38ed1a-d2d8-4e16-9fc4-e5d4c6d0a888) 89 | 90 | ### Image Texture Source 91 | 92 | Test with static images. 93 | 94 | `OnTexture` event is invoked every frame if the `sendContinuousUpdate` is enabled. 95 | 96 | ![image-texture-source](https://github.com/asus4/TextureSource/assets/357497/3d7eef4b-40c5-40b4-8403-b70f394ce938) 97 | 98 | ### AR Foundation Texture Source 99 | 100 | Provides AR camera texture access. It supports both ARCore/ARKit. 101 | 102 | ![ar-foundation-texture-source](https://github.com/asus4/TextureSource/assets/357497/5ac82a8a-0554-41a2-b9ef-c03ebd60c6ff) 103 | 104 | ## Acknowledgement 105 | 106 | Inspired from [TestTools](https://github.com/keijiro/TestTools) 107 | 108 | ## License 109 | 110 | [MIT](https://github.com/asus4/TextureSource/blob/main/Packages/com.github.asus4.texture-source/LICENSE) 111 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f929c6c1243a94e48b14f8b4bc0c7ef9 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8acef8bd3c73d42bba610e7be3c01cea 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Resources/com.github.asus4.texture-source.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e8d0961012d6402ba1ced580700442a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Resources/com.github.asus4.texture-source/TextureTransform.compute: -------------------------------------------------------------------------------- 1 | #pragma kernel TextureTransform 2 | 3 | Texture2D _InputTex; 4 | RWTexture2D _OutputTex; 5 | uint2 _OutputTexSize; 6 | float4x4 _TransformMatrix; 7 | 8 | SamplerState linearClampSampler; 9 | 10 | [numthreads(8,8,1)] 11 | void TextureTransform (uint2 id : SV_DispatchThreadID) 12 | { 13 | if(any(id >= _OutputTexSize)) 14 | { 15 | return; 16 | } 17 | 18 | float2 uv = (float2)id / float2(_OutputTexSize - 1.0); 19 | uv = mul(_TransformMatrix, float4(uv, 0, 1)).xy; 20 | 21 | float4 c = _InputTex.SampleLevel(linearClampSampler, uv, 0); 22 | 23 | _OutputTex[id] = any(uv < 0) || any(uv > 1) 24 | ? float4(0, 0, 0, 1) 25 | : c; 26 | } 27 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Resources/com.github.asus4.texture-source/TextureTransform.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5cd30b8c168c240338c71105c0213c18 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 65537 6 | preprocessorOverride: 0 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b140babbe5de4766ade2f1e63580372 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/ARFoundationDepthTextureSource.cs: -------------------------------------------------------------------------------- 1 | // Only available with AR Foundation 2 | #if MODULE_ARFOUNDATION_ENABLED 3 | namespace TextureSource 4 | { 5 | using System.Collections; 6 | using System.Collections.Generic; 7 | using UnityEngine; 8 | using UnityEngine.XR.ARFoundation; 9 | 10 | /// 11 | /// The same with ARFoundationTextureSource but depth is encoded into alpha channel 12 | /// (Experimental feature, only available with the latest AR Foundation) 13 | /// 14 | [CreateAssetMenu(menuName = "ScriptableObject/Texture Source/ARFoundation Depth", fileName = "ARFoundationDepthTextureSource")] 15 | public sealed class ARFoundationDepthTextureSource : ARFoundationTextureSource 16 | { 17 | public enum DepthMode 18 | { 19 | Depth01, 20 | RawDistance, 21 | } 22 | 23 | [SerializeField] 24 | private DepthMode depthMode = DepthMode.Depth01; 25 | 26 | // [HideInInspector] 27 | [SerializeField] 28 | private Shader shaderForARCore; 29 | // [HideInInspector] 30 | [SerializeField] 31 | private Shader shaderForARKit; 32 | 33 | private AROcclusionManager occlusionManager; 34 | 35 | protected override RenderTextureFormat PreferredRenderTextureFormat => RenderTextureFormat.ARGBHalf; 36 | 37 | protected override Shader ARCameraBackgroundShader 38 | { 39 | get 40 | { 41 | return Application.platform switch 42 | { 43 | RuntimePlatform.Android => shaderForARCore, 44 | RuntimePlatform.IPhonePlayer => shaderForARKit, 45 | #if UNITY_ANDROID 46 | _ => shaderForARCore, 47 | #elif UNITY_IOS 48 | _ => shaderForARKit, 49 | #else 50 | _ => throw new System.NotSupportedException($"ARFoundationTextureSource is not supported on {Application.platform}"), 51 | #endif 52 | }; 53 | } 54 | } 55 | 56 | public override void Start() 57 | { 58 | occlusionManager = FindAnyObjectByType(); 59 | if (occlusionManager == null) 60 | { 61 | throw new System.InvalidOperationException("Requires AROcclusionManager to use ARFoundationDepthTextureSource"); 62 | } 63 | occlusionManager.frameReceived += OnOcclusionFrameReceived; 64 | 65 | base.Start(); 66 | 67 | if (depthMode == DepthMode.RawDistance) 68 | { 69 | material.EnableKeyword("TEXTURE_SOURCE_RAW_DISTANCE"); 70 | } 71 | } 72 | 73 | public override void Stop() 74 | { 75 | if (occlusionManager != null) 76 | { 77 | occlusionManager.frameReceived -= OnOcclusionFrameReceived; 78 | } 79 | 80 | base.Stop(); 81 | } 82 | 83 | private void OnOcclusionFrameReceived(AROcclusionFrameEventArgs args) 84 | { 85 | #if MODULE_ARFOUNDATION_6_1_ENABLED 86 | var textures = args.externalTextures; 87 | if (textures.Count == 0) 88 | { 89 | return; 90 | } 91 | 92 | var keywords = args.shaderKeywords; 93 | SetMaterialKeywords(material, keywords.enabledKeywords, keywords.disabledKeywords); 94 | 95 | foreach(var exTex in textures) 96 | { 97 | material.SetTexture(exTex.propertyId, exTex.texture); 98 | } 99 | #else 100 | if (args.textures.Count == 0) 101 | { 102 | return; 103 | } 104 | 105 | SetMaterialKeywords(material, args.enabledMaterialKeywords, args.disabledMaterialKeywords); 106 | 107 | int count = args.textures.Count; 108 | for (int i = 0; i < count; i++) 109 | { 110 | var tex = args.textures[i]; 111 | material.SetTexture(args.propertyNameIds[i], tex); 112 | } 113 | #endif // MODULE_ARFOUNDATION_6_1_ENABLED 114 | } 115 | } 116 | } 117 | #endif // MODULE_ARFOUNDATION_ENABLED 118 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/ARFoundationDepthTextureSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e468045a73ccc46f1afb6f48292c11b1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: 7 | - shaderForARKit: {fileID: 4800000, guid: c8b0b30194e1b4026abc942f037e6f86, type: 3} 8 | - shaderForARCore: {fileID: 4800000, guid: a68a981b98d2c47b881e7e696a7b0f1f, type: 3} 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/ARFoundationTextureSource.cs: -------------------------------------------------------------------------------- 1 | // Only available with AR Foundation 2 | #if MODULE_ARFOUNDATION_ENABLED 3 | namespace TextureSource 4 | { 5 | using System; 6 | using System.Collections.Generic; 7 | using UnityEngine; 8 | using UnityEngine.XR.ARFoundation; 9 | 10 | /// 11 | /// Source from ARFoundation 12 | /// 13 | [CreateAssetMenu(menuName = "ScriptableObject/Texture Source/ARFoundation", fileName = "ARFoundationTextureSource")] 14 | public class ARFoundationTextureSource : BaseTextureSource 15 | { 16 | private static readonly int _DisplayTransformID = Shader.PropertyToID("_UnityDisplayTransform"); 17 | 18 | private ARCameraManager cameraManager; 19 | private RenderTexture texture; 20 | private int lastUpdatedFrame = -1; 21 | 22 | protected Material material; 23 | 24 | public override bool DidUpdateThisFrame => lastUpdatedFrame == Time.frameCount; 25 | public override Texture Texture => texture; 26 | 27 | protected virtual RenderTextureFormat PreferredRenderTextureFormat => RenderTextureFormat.ARGB32; 28 | 29 | protected virtual Shader ARCameraBackgroundShader 30 | { 31 | get 32 | { 33 | string shaderName = Application.platform switch 34 | { 35 | RuntimePlatform.Android => "Unlit/ARCoreBackground", 36 | RuntimePlatform.IPhonePlayer => "Unlit/ARKitBackground", 37 | #if UNITY_ANDROID 38 | _ => "Unlit/ARCoreBackground", 39 | #elif UNITY_IOS 40 | _ => "Unlit/ARKitBackground", 41 | #else 42 | _ => throw new System.NotSupportedException($"ARFoundationTextureSource is not supported on {Application.platform}"), 43 | #endif 44 | }; 45 | return Shader.Find(shaderName); 46 | } 47 | } 48 | 49 | public override void Start() 50 | { 51 | cameraManager = FindAnyObjectByType(); 52 | if (cameraManager == null) 53 | { 54 | throw new InvalidOperationException("ARCameraManager is not found"); 55 | } 56 | material = new Material(ARCameraBackgroundShader); 57 | 58 | cameraManager.frameReceived += OnFrameReceived; 59 | } 60 | 61 | public override void Stop() 62 | { 63 | if (cameraManager != null) 64 | { 65 | cameraManager.frameReceived -= OnFrameReceived; 66 | } 67 | 68 | if (texture != null) 69 | { 70 | texture.Release(); 71 | Destroy(texture); 72 | texture = null; 73 | } 74 | 75 | if (material != null) 76 | { 77 | Destroy(material); 78 | material = null; 79 | } 80 | } 81 | 82 | public override void Next() 83 | { 84 | if (cameraManager == null) 85 | { 86 | return; 87 | } 88 | // Switch the camera facing direction. 89 | cameraManager.requestedFacingDirection = cameraManager.currentFacingDirection switch 90 | { 91 | CameraFacingDirection.World => CameraFacingDirection.User, 92 | CameraFacingDirection.User => CameraFacingDirection.World, 93 | _ => CameraFacingDirection.World, 94 | }; 95 | } 96 | 97 | 98 | private void OnFrameReceived(ARCameraFrameEventArgs args) 99 | { 100 | // The shader doesn't work for some reason when set ARKIT_BACKGROUND_URP 101 | // SetMaterialKeywords(material, args.enabledMaterialKeywords, args.disabledMaterialKeywords); 102 | 103 | // Find best texture size 104 | int bestWidth = 0; 105 | int bestHeight = 0; 106 | int count = args.textures.Count; 107 | for (int i = 0; i < count; i++) 108 | { 109 | var tex = args.textures[i]; 110 | bestWidth = Math.Max(bestWidth, tex.width); 111 | bestHeight = Math.Max(bestHeight, tex.height); 112 | material.SetTexture(args.propertyNameIds[i], tex); 113 | } 114 | 115 | // Swap if screen is portrait 116 | float screenAspect = (float)Screen.width / Screen.height; 117 | if (bestWidth > bestHeight && screenAspect < 1f) 118 | { 119 | (bestWidth, bestHeight) = (bestHeight, bestWidth); 120 | } 121 | 122 | // Create render texture 123 | Utils.GetTargetSizeScale( 124 | new Vector2Int(bestWidth, bestHeight), 125 | screenAspect, 126 | out Vector2Int dstSize, 127 | out Vector2 scale); 128 | EnsureRenderTexture(ref texture, dstSize.x, dstSize.y, 24, PreferredRenderTextureFormat); 129 | 130 | if (args.displayMatrix.HasValue) 131 | { 132 | material.SetMatrix(_DisplayTransformID, args.displayMatrix.Value); 133 | } 134 | 135 | Graphics.Blit(null, texture, material); 136 | 137 | lastUpdatedFrame = Time.frameCount; 138 | } 139 | 140 | protected static void SetMaterialKeywords(Material material, IReadOnlyList enabledKeywords, IReadOnlyList disabledKeywords) 141 | { 142 | if (enabledKeywords != null) 143 | { 144 | foreach (var keyword in enabledKeywords) 145 | { 146 | material.EnableKeyword(keyword); 147 | } 148 | } 149 | if (disabledKeywords != null) 150 | { 151 | foreach (var keyword in disabledKeywords) 152 | { 153 | material.DisableKeyword(keyword); 154 | } 155 | } 156 | } 157 | 158 | public static void EnsureRenderTexture(ref RenderTexture texture, 159 | int width, int height, 160 | int depth, RenderTextureFormat format) 161 | { 162 | if (texture == null || texture.width != width || texture.height != height) 163 | { 164 | if (texture != null) 165 | { 166 | texture.Release(); 167 | } 168 | texture = new RenderTexture(width, height, depth, format); 169 | texture.Create(); 170 | } 171 | } 172 | } 173 | } 174 | #endif // MODULE_ARFOUNDATION_ENABLED 175 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/ARFoundationTextureSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 107561cd512c541429a04e0ab1d41f54 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/BaseTextureSource.cs: -------------------------------------------------------------------------------- 1 | namespace TextureSource 2 | { 3 | using UnityEngine; 4 | 5 | /// 6 | /// Abstract class for the source. 7 | /// 8 | public abstract class BaseTextureSource : ScriptableObject, ITextureSource 9 | { 10 | public abstract bool DidUpdateThisFrame { get; } 11 | public abstract Texture Texture { get; } 12 | public abstract void Start(); 13 | public abstract void Stop(); 14 | public abstract void Next(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/BaseTextureSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb44ff98ae2dc48d59453385eca5fd85 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/ITextureSource.cs: -------------------------------------------------------------------------------- 1 | namespace TextureSource 2 | { 3 | using UnityEngine; 4 | 5 | /// 6 | /// Interface for the source 7 | /// 8 | public interface ITextureSource 9 | { 10 | bool DidUpdateThisFrame { get; } 11 | Texture Texture { get; } 12 | 13 | void Start(); 14 | void Stop(); 15 | void Next(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/ITextureSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a953d10ef8e74522addbe9faf67ba26 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/ImageTextureSource.cs: -------------------------------------------------------------------------------- 1 | namespace TextureSource 2 | { 3 | using UnityEngine; 4 | 5 | /// 6 | /// Source from image texture 7 | /// 8 | [CreateAssetMenu(menuName = "ScriptableObject/Texture Source/Image", fileName = "ImageTextureSource")] 9 | public class ImageTextureSource : BaseTextureSource 10 | { 11 | [SerializeField] 12 | private Texture[] textures = default; 13 | 14 | [SerializeField] 15 | private bool sendContinuousUpdate = false; 16 | 17 | public override bool DidUpdateThisFrame 18 | { 19 | get 20 | { 21 | if (sendContinuousUpdate) 22 | { 23 | return true; 24 | } 25 | 26 | bool updated = isUpdated; 27 | isUpdated = false; 28 | return updated; 29 | } 30 | } 31 | 32 | public override Texture Texture => textures[currentIndex]; 33 | 34 | private int currentIndex = 0; 35 | private bool isUpdated = false; 36 | 37 | public override void Start() 38 | { 39 | if (textures.Length == 0) 40 | { 41 | Debug.LogError("No texture is set"); 42 | return; 43 | } 44 | isUpdated = true; 45 | } 46 | 47 | public override void Stop() 48 | { 49 | isUpdated = false; 50 | } 51 | 52 | public override void Next() 53 | { 54 | currentIndex = (currentIndex + 1) % textures.Length; 55 | isUpdated = true; 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/ImageTextureSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b51cafa6a901147349bf2af15e41f6a5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/TextureSource.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TextureSource", 3 | "rootNamespace": "", 4 | "references": [ 5 | "GUID:a9420e37d7990b54abdef6688edbe313", 6 | "GUID:92703082f92b41ba80f0d6912de66115", 7 | "GUID:dc960734dc080426fa6612f1c5fe95f3" 8 | ], 9 | "includePlatforms": [], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false, 12 | "overrideReferences": false, 13 | "precompiledReferences": [], 14 | "autoReferenced": true, 15 | "defineConstraints": [], 16 | "versionDefines": [ 17 | { 18 | "name": "com.unity.xr.arfoundation", 19 | "expression": "4.0.0", 20 | "define": "MODULE_ARFOUNDATION_ENABLED" 21 | }, 22 | { 23 | "name": "com.unity.xr.arfoundation", 24 | "expression": "6.1.0", 25 | "define": "MODULE_ARFOUNDATION_6_1_ENABLED" 26 | } 27 | ], 28 | "noEngineReferences": false 29 | } -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/TextureSource.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f804ed006cf7b4f679590cf782d68701 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/TextureTransformer.cs: -------------------------------------------------------------------------------- 1 | namespace TextureSource 2 | { 3 | using System; 4 | using UnityEngine; 5 | 6 | /// 7 | /// Transforms 2D texture with any arbitrary matrix 8 | /// 9 | public class TextureTransformer : IDisposable 10 | { 11 | private static readonly int _InputTex = Shader.PropertyToID("_InputTex"); 12 | private static readonly int _OutputTex = Shader.PropertyToID("_OutputTex"); 13 | private static readonly int _OutputTexSize = Shader.PropertyToID("_OutputTexSize"); 14 | private static readonly int _TransformMatrix = Shader.PropertyToID("_TransformMatrix"); 15 | 16 | private static readonly Matrix4x4 PopMatrix = Matrix4x4.Translate(new Vector3(0.5f, 0.5f, 0)); 17 | private static readonly Matrix4x4 PushMatrix = Matrix4x4.Translate(new Vector3(-0.5f, -0.5f, 0)); 18 | 19 | public static readonly Lazy DefaultComputeShader = new(() 20 | => Resources.Load("com.github.asus4.texture-source/TextureTransform")); 21 | 22 | private readonly ComputeShader compute; 23 | private readonly int kernel; 24 | private RenderTexture texture; 25 | public readonly int width; 26 | public readonly int height; 27 | 28 | public RenderTexture Texture => texture; 29 | 30 | public TextureTransformer(int width, int height, RenderTextureFormat format, ComputeShader shader = null) 31 | { 32 | compute = shader != null 33 | ? shader 34 | : DefaultComputeShader.Value; 35 | kernel = compute.FindKernel("TextureTransform"); 36 | 37 | this.width = width; 38 | this.height = height; 39 | 40 | var desc = new RenderTextureDescriptor(width, height, format) 41 | { 42 | enableRandomWrite = true, 43 | useMipMap = false, 44 | depthBufferBits = 0, 45 | // sRGB = QualitySettings.activeColorSpace == ColorSpace.Linear, 46 | }; 47 | texture = new RenderTexture(desc); 48 | texture.Create(); 49 | } 50 | 51 | public void Dispose() 52 | { 53 | if (texture != null) 54 | { 55 | texture.Release(); 56 | UnityEngine.Object.Destroy(texture); 57 | } 58 | texture = null; 59 | } 60 | 61 | /// 62 | /// Transform with a matrix 63 | /// 64 | /// A input texture 65 | /// A matrix 66 | /// The transformed texture 67 | public RenderTexture Transform(Texture input, Matrix4x4 t) 68 | { 69 | compute.SetTexture(kernel, _InputTex, input, 0); 70 | compute.SetTexture(kernel, _OutputTex, texture, 0); 71 | compute.SetInts(_OutputTexSize, texture.width, texture.height); 72 | compute.SetMatrix(_TransformMatrix, t); 73 | compute.Dispatch(kernel, Mathf.CeilToInt(texture.width / 8f), Mathf.CeilToInt(texture.height / 8f), 1); 74 | return texture; 75 | } 76 | 77 | /// 78 | /// Transform with offset, rotation, and scale 79 | /// 80 | /// A input texture 81 | /// A 2D offset 82 | /// A rotation in euler angles 83 | /// A scale 84 | /// The transformed texture 85 | public RenderTexture Transform(Texture input, Vector2 offset, float eulerRotation, Vector2 scale) 86 | { 87 | Matrix4x4 trs = Matrix4x4.TRS( 88 | new Vector3(-offset.x, -offset.y, 0), 89 | Quaternion.Euler(0, 0, -eulerRotation), 90 | new Vector3(1f / scale.x, 1f / scale.y, 1)); 91 | return Transform(input, PopMatrix * trs * PushMatrix); 92 | } 93 | 94 | /// 95 | /// Transform with multiple textures 96 | /// 97 | /// An array of property name IDs associated with each texture 98 | /// An array of textures 99 | /// A matrix 100 | /// The transformed texture 101 | public RenderTexture Transform(ReadOnlySpan propertyIds, ReadOnlySpan textures, Matrix4x4 t) 102 | { 103 | for (int i = 0; i < propertyIds.Length; i++) 104 | { 105 | compute.SetTexture(kernel, propertyIds[i], textures[i], 0); 106 | } 107 | compute.SetTexture(kernel, _OutputTex, texture, 0); 108 | compute.SetInts(_OutputTexSize, texture.width, texture.height); 109 | compute.SetMatrix(_TransformMatrix, t); 110 | compute.Dispatch(kernel, Mathf.CeilToInt(texture.width / 8f), Mathf.CeilToInt(texture.height / 8f), 1); 111 | return texture; 112 | } 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/TextureTransformer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7edaecc6f4a1949fe8fbdbd56086e687 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/Utils.cs: -------------------------------------------------------------------------------- 1 | namespace TextureSource 2 | { 3 | using UnityEngine; 4 | 5 | /// 6 | /// Internal utility functions 7 | /// 8 | internal static class Utils 9 | { 10 | public static void GetTargetSizeScale( 11 | Vector2Int srcSize, float dstAspect, 12 | out Vector2Int dstSize, out Vector2 scale) 13 | { 14 | float srcAspect = (float)srcSize.x / srcSize.y; 15 | int width, height; 16 | if (srcAspect > dstAspect) 17 | { 18 | width = RoundToEven(srcSize.y * dstAspect); 19 | height = srcSize.y; 20 | scale = new Vector2((float)srcSize.x / width, 1); 21 | } 22 | else 23 | { 24 | width = srcSize.x; 25 | height = RoundToEven(srcSize.x / dstAspect); 26 | scale = new Vector2(1, (float)srcSize.y / height); 27 | } 28 | dstSize = new Vector2Int(width, height); 29 | } 30 | 31 | private static int RoundToEven(float n) 32 | { 33 | return Mathf.RoundToInt(n / 2) * 2; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/Utils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 994d1f7299166498fb0798e74fd2cbf0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/VideoTextureSource.cs: -------------------------------------------------------------------------------- 1 | namespace TextureSource 2 | { 3 | using System.IO; 4 | using UnityEngine; 5 | using UnityEngine.Video; 6 | 7 | /// 8 | /// Source from video player 9 | /// 10 | [CreateAssetMenu(menuName = "ScriptableObject/Texture Source/Video", fileName = "VideoTextureSource")] 11 | public class VideoTextureSource : BaseTextureSource 12 | { 13 | [System.Serializable] 14 | public class VideoData 15 | { 16 | public VideoSource source; 17 | public string url; 18 | public VideoClip clip; 19 | 20 | public VideoSource Source => clip == null 21 | ? VideoSource.Url : VideoSource.VideoClip; 22 | 23 | public string URL 24 | { 25 | get 26 | { 27 | return Path.IsPathRooted(url) 28 | ? url 29 | : Path.Combine(Application.dataPath, url); 30 | } 31 | } 32 | } 33 | 34 | [SerializeField] 35 | [Tooltip("Whether to loop the video")] 36 | private bool loop = true; 37 | 38 | [SerializeField] 39 | [Tooltip("Whether to play sound in the video")] 40 | private bool playSound = false; 41 | 42 | [SerializeField] 43 | private VideoData[] videos = default; 44 | 45 | private VideoPlayer player; 46 | private int currentIndex; 47 | private long currentFrame = -1; 48 | 49 | public override bool DidUpdateThisFrame 50 | { 51 | get 52 | { 53 | long frame = player.frame; 54 | bool isUpdated = frame != currentFrame; 55 | currentFrame = frame; 56 | return isUpdated; 57 | } 58 | } 59 | 60 | public override Texture Texture => player.texture; 61 | 62 | public override void Start() 63 | { 64 | GameObject go = new GameObject(nameof(VideoTextureSource)); 65 | DontDestroyOnLoad(go); 66 | player = go.AddComponent(); 67 | player.renderMode = VideoRenderMode.APIOnly; 68 | player.audioOutputMode = playSound 69 | ? VideoAudioOutputMode.Direct 70 | : VideoAudioOutputMode.None; 71 | player.isLooping = loop; 72 | 73 | currentIndex = Mathf.Min(currentIndex, videos.Length - 1); 74 | 75 | StartVideo(currentIndex); 76 | } 77 | 78 | public override void Stop() 79 | { 80 | if (player == null) 81 | { 82 | return; 83 | } 84 | player.Stop(); 85 | Destroy(player.gameObject); 86 | player = null; 87 | } 88 | 89 | public override void Next() 90 | { 91 | currentIndex = (currentIndex + 1) % videos.Length; 92 | StartVideo(currentIndex); 93 | } 94 | 95 | private void StartVideo(int index) 96 | { 97 | var data = videos[index]; 98 | VideoSource source = data.Source; 99 | player.source = source; 100 | if (source == VideoSource.Url) 101 | { 102 | player.url = data.URL; 103 | } 104 | else 105 | { 106 | player.clip = data.clip; 107 | } 108 | player.Prepare(); 109 | player.Play(); 110 | 111 | currentFrame = -1; 112 | } 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/VideoTextureSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77ed56e41dd6e4f5c8e44d1e7a925c27 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/VirtualTextureSource.cs: -------------------------------------------------------------------------------- 1 | namespace TextureSource 2 | { 3 | using UnityEngine; 4 | using UnityEngine.Events; 5 | using UnityEngine.Scripting; 6 | 7 | /// 8 | /// Invokes texture update event from the provided texture source ScriptableObject asset. 9 | /// 10 | public class VirtualTextureSource : MonoBehaviour 11 | { 12 | [System.Serializable] 13 | public class TextureEvent : UnityEvent { } 14 | [System.Serializable] 15 | public class AspectChangeEvent : UnityEvent { } 16 | 17 | [SerializeField] 18 | [Tooltip("A texture source scriptable object")] 19 | private BaseTextureSource source = default; 20 | 21 | [SerializeField] 22 | [Tooltip("A texture source scriptable object for Editor. If it is null, used source in Editor")] 23 | private BaseTextureSource sourceForEditor = null; 24 | 25 | [SerializeField] 26 | [Tooltip("If true, the texture is trimmed to the screen aspect ratio. Use this to show in full screen")] 27 | private bool trimToScreenAspect = false; 28 | 29 | [Tooltip("Event called when texture updated")] 30 | public TextureEvent OnTexture = new TextureEvent(); 31 | 32 | [Tooltip("Event called when the aspect ratio changed")] 33 | public AspectChangeEvent OnAspectChange = new AspectChangeEvent(); 34 | 35 | private ITextureSource activeSource; 36 | private float aspect = float.NegativeInfinity; 37 | private TextureTransformer transformer; 38 | 39 | public bool DidUpdateThisFrame => activeSource.DidUpdateThisFrame; 40 | public Texture Texture => activeSource.Texture; 41 | 42 | public BaseTextureSource Source 43 | { 44 | get => source; 45 | set => source = value; 46 | } 47 | public BaseTextureSource SourceForEditor 48 | { 49 | get => sourceForEditor; 50 | set => sourceForEditor = value; 51 | } 52 | 53 | private void OnEnable() 54 | { 55 | activeSource = sourceForEditor != null && Application.isEditor 56 | ? sourceForEditor 57 | : source; 58 | 59 | if (activeSource == null) 60 | { 61 | Debug.LogError("Source is not set.", this); 62 | enabled = false; 63 | return; 64 | } 65 | activeSource.Start(); 66 | } 67 | 68 | private void OnDisable() 69 | { 70 | activeSource?.Stop(); 71 | transformer?.Dispose(); 72 | transformer = null; 73 | } 74 | 75 | private void Update() 76 | { 77 | if (!activeSource.DidUpdateThisFrame) 78 | { 79 | return; 80 | } 81 | 82 | Texture tex = trimToScreenAspect 83 | ? TrimToScreen(Texture) 84 | : Texture; 85 | OnTexture?.Invoke(tex); 86 | 87 | float aspect = (float)tex.width / tex.height; 88 | if (aspect != this.aspect) 89 | { 90 | OnAspectChange?.Invoke(aspect); 91 | this.aspect = aspect; 92 | } 93 | } 94 | 95 | // Invoked by UI Events 96 | [Preserve] 97 | public void NextSource() 98 | { 99 | activeSource?.Next(); 100 | } 101 | 102 | private Texture TrimToScreen(Texture texture) 103 | { 104 | float srcAspect = (float)texture.width / texture.height; 105 | float dstAspect = (float)Screen.width / Screen.height; 106 | 107 | // Allow 1% mismatch 108 | if (Mathf.Abs(srcAspect - dstAspect) < 0.01f) 109 | { 110 | return texture; 111 | } 112 | 113 | Utils.GetTargetSizeScale( 114 | new Vector2Int(texture.width, texture.height), dstAspect, 115 | out Vector2Int dstSize, out Vector2 scale); 116 | 117 | bool needInitialize = transformer == null || dstSize.x != transformer.width || dstSize.y != transformer.height; 118 | if (needInitialize) 119 | { 120 | transformer?.Dispose(); 121 | // Copy the format if the source is a RenderTexture 122 | RenderTextureFormat format = (texture is RenderTexture renderTex) 123 | ? renderTex.format : 124 | RenderTextureFormat.ARGB32; 125 | transformer = new TextureTransformer(dstSize.x, dstSize.y, format); 126 | } 127 | 128 | return transformer.Transform(texture, Vector2.zero, 0, scale); 129 | } 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/VirtualTextureSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be5e5635fba104ec29475e42f3b5a517 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/WebCamTextureSource.cs: -------------------------------------------------------------------------------- 1 | namespace TextureSource 2 | { 3 | using System; 4 | using System.Linq; 5 | using UnityEngine; 6 | 7 | /// 8 | /// Source from WebCamTexture 9 | /// 10 | [CreateAssetMenu(menuName = "ScriptableObject/Texture Source/WebCam", fileName = "WebCamTextureSource")] 11 | public sealed class WebCamTextureSource : BaseTextureSource 12 | { 13 | /// 14 | /// Facing direction of the camera 15 | /// 16 | public enum CameraFacing 17 | { 18 | Front, 19 | Back, 20 | } 21 | 22 | [SerializeField] 23 | [Tooltip("Priorities of Camera Facing Direction")] 24 | private CameraFacing[] facingPriorities = new CameraFacing[] { 25 | CameraFacing.Back, CameraFacing.Front 26 | }; 27 | 28 | [SerializeField] 29 | [Tooltip("Priorities of WebCamKind")] 30 | private WebCamKind[] kindPriority = new WebCamKind[] { 31 | WebCamKind.WideAngle, WebCamKind.Telephoto, WebCamKind.UltraWideAngle, 32 | }; 33 | 34 | [SerializeField] 35 | private Vector2Int resolution = new Vector2Int(1270, 720); 36 | 37 | [SerializeField] 38 | private int frameRate = 60; 39 | 40 | public override bool DidUpdateThisFrame 41 | { 42 | get 43 | { 44 | if (webCamTexture == null || webCamTexture.width < 20) 45 | { 46 | // On macOS, it returns the 10x10 texture at first several frames. 47 | return false; 48 | } 49 | return webCamTexture.didUpdateThisFrame; 50 | } 51 | } 52 | 53 | public override Texture Texture => NormalizeWebCam(); 54 | 55 | private WebCamDevice[] devices; 56 | private WebCamTexture webCamTexture; 57 | private int currentIndex; 58 | private TextureTransformer transformer; 59 | private int lastUpdatedFrame = -1; 60 | private bool isFrontFacing; 61 | 62 | public CameraFacing[] FacingPriorities 63 | { 64 | get => facingPriorities; 65 | set => facingPriorities = value; 66 | } 67 | 68 | public WebCamKind[] KindPriorities 69 | { 70 | get => kindPriority; 71 | set => kindPriority = value; 72 | } 73 | 74 | public Vector2Int Resolution 75 | { 76 | get => resolution; 77 | set => resolution = value; 78 | } 79 | 80 | public bool IsFrontFacing => isFrontFacing; 81 | 82 | public int FrameRate 83 | { 84 | get => frameRate; 85 | set => frameRate = value; 86 | } 87 | 88 | public override void Start() 89 | { 90 | static CameraFacing GetFacing(WebCamDevice device) 91 | { 92 | return device.isFrontFacing ? CameraFacing.Front : CameraFacing.Back; 93 | } 94 | 95 | // Sort with facing, then kind 96 | devices = WebCamTexture.devices 97 | .Where(d => facingPriorities.Contains(GetFacing(d)) && kindPriority.Contains(d.kind)) 98 | .OrderBy(d => Array.IndexOf(facingPriorities, GetFacing(d))) 99 | .ThenBy(d => Array.IndexOf(kindPriority, d.kind)) 100 | .ToArray(); 101 | 102 | if (devices.Length == 0) 103 | { 104 | Debug.LogError("No available camera found for the given priorities. Falling back to the default."); 105 | devices = WebCamTexture.devices; 106 | } 107 | 108 | StartCamera(currentIndex); 109 | } 110 | 111 | private void StartCamera(int index) 112 | { 113 | Stop(); 114 | WebCamDevice device = devices[index]; 115 | webCamTexture = new WebCamTexture(device.name, resolution.x, resolution.y, frameRate); 116 | webCamTexture.Play(); 117 | isFrontFacing = device.isFrontFacing; 118 | lastUpdatedFrame = -1; 119 | } 120 | 121 | public override void Stop() 122 | { 123 | if (webCamTexture != null) 124 | { 125 | webCamTexture.Stop(); 126 | webCamTexture = null; 127 | } 128 | transformer?.Dispose(); 129 | transformer = null; 130 | } 131 | 132 | public override void Next() 133 | { 134 | currentIndex = (currentIndex + 1) % devices.Length; 135 | StartCamera(currentIndex); 136 | } 137 | 138 | private RenderTexture NormalizeWebCam() 139 | { 140 | if (webCamTexture == null) 141 | { 142 | return null; 143 | } 144 | 145 | if (lastUpdatedFrame == Time.frameCount) 146 | { 147 | return transformer.Texture; 148 | } 149 | 150 | bool isPortrait = webCamTexture.videoRotationAngle == 90 || webCamTexture.videoRotationAngle == 270; 151 | int width = webCamTexture.width; 152 | int height = webCamTexture.height; 153 | if (isPortrait) 154 | { 155 | (width, height) = (height, width); // swap 156 | } 157 | 158 | bool needInitialize = transformer == null || width != transformer.width || height != transformer.height; 159 | if (needInitialize) 160 | { 161 | transformer?.Dispose(); 162 | transformer = new TextureTransformer(width, height, RenderTextureFormat.ARGB32); 163 | } 164 | 165 | Vector2 scale; 166 | if (isPortrait) 167 | { 168 | scale = new Vector2(webCamTexture.videoVerticallyMirrored ^ isFrontFacing ? -1 : 1, 1); 169 | } 170 | else 171 | { 172 | scale = new Vector2(isFrontFacing ? -1 : 1, webCamTexture.videoVerticallyMirrored ? -1 : 1); 173 | } 174 | transformer.Transform(webCamTexture, Vector2.zero, -webCamTexture.videoRotationAngle, scale); 175 | 176 | // Debug.Log($"mirrored: {webCamTexture.videoVerticallyMirrored}, angle: {webCamTexture.videoRotationAngle}, isFrontFacing: {isFrontFacing}"); 177 | 178 | lastUpdatedFrame = Time.frameCount; 179 | return transformer.Texture; 180 | } 181 | } 182 | } 183 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Runtime/WebCamTextureSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1cf62dfb39bf740a6ac1af02a38c56e9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72ce354a7d6da4f62bd4862f571441a8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Shaders/ARCoreBackgroundDepth.shader: -------------------------------------------------------------------------------- 1 | Shader "Unlit/TextureSource/ARCoreBackgroundDepth" 2 | { 3 | Properties 4 | { 5 | _MainTex("Texture", 2D) = "white" {} 6 | _EnvironmentDepth("Texture", 2D) = "black" {} 7 | } 8 | 9 | ///////////////////////////////////////////////////////////////////////////////////////////////// 10 | // GLSL shader for OpenGLES 3. GLES3 cannot use HLSL shader like Vulkan because of dependency on 11 | // GL_OES_EGL_image_external_essl3 extension. Thus they are kept in different subshaders. 12 | ///////////////////////////////////////////////////////////////////////////////////////////////// 13 | SubShader 14 | { 15 | Name "ARCore Background (Before Opaques) for GLES3" 16 | Tags 17 | { 18 | "Queue" = "Background" 19 | "RenderType" = "Background" 20 | "ForceNoShadowCasting" = "True" 21 | } 22 | 23 | Pass 24 | { 25 | Name "AR Camera Background (ARCore)" 26 | Cull Off 27 | ZTest Always 28 | ZWrite On 29 | Lighting Off 30 | LOD 100 31 | Tags 32 | { 33 | "LightMode" = "Always" 34 | } 35 | 36 | GLSLPROGRAM 37 | 38 | #pragma only_renderers gles3 39 | 40 | #pragma multi_compile_local __ ARCORE_ENVIRONMENT_DEPTH_ENABLED 41 | #pragma multi_compile_local __ ARCORE_IMAGE_STABILIZATION_ENABLED 42 | 43 | #include "UnityCG.glslinc" 44 | 45 | #ifdef SHADER_API_GLES3 46 | #extension GL_OES_EGL_image_external_essl3 : require 47 | #endif // SHADER_API_GLES3 48 | 49 | #ifndef ARCORE_IMAGE_STABILIZATION_ENABLED 50 | #define ARCORE_TEXCOORD_TYPE vec2 51 | #else // ARCORE_IMAGE_STABILIZATION_ENABLED 52 | #define ARCORE_TEXCOORD_TYPE vec3 53 | #endif // !ARCORE_IMAGE_STABILIZATION_ENABLED 54 | 55 | // Device display transform is provided by the AR Foundation camera background renderer. 56 | uniform mat4 _UnityDisplayTransform; 57 | 58 | #ifdef VERTEX 59 | varying ARCORE_TEXCOORD_TYPE textureCoord; 60 | 61 | void main() 62 | { 63 | #ifdef SHADER_API_GLES3 64 | // Transform the position from object space to clip space. 65 | gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 66 | 67 | #ifdef ARCORE_IMAGE_STABILIZATION_ENABLED 68 | textureCoord = gl_MultiTexCoord0.xyz; 69 | #else 70 | // Remap the texture coordinates based on the device rotation. 71 | // _UnityDisplayTransform is provided as "Row Major" for all mobile platforms, so use the 72 | // 'Row Vector * Matrix' operator. The GLSL '*' operator is overloaded to use a row vector 73 | // when a matrix is left-multiplied by a vector. Refer to this doc for more information: 74 | // https://en.wikibooks.org/wiki/GLSL_Programming/Vector_and_Matrix_Operations#Operators 75 | textureCoord = (vec4(gl_MultiTexCoord0.x, gl_MultiTexCoord0.y, 1.0f, 0.0f) * _UnityDisplayTransform).xy; 76 | #endif 77 | #endif // SHADER_API_GLES3 78 | } 79 | #endif // VERTEX 80 | 81 | #ifdef FRAGMENT 82 | varying ARCORE_TEXCOORD_TYPE textureCoord; 83 | uniform samplerExternalOES _MainTex; 84 | uniform float _UnityCameraForwardScale; 85 | 86 | #ifdef ARCORE_ENVIRONMENT_DEPTH_ENABLED 87 | uniform sampler2D _EnvironmentDepth; 88 | #endif // ARCORE_ENVIRONMENT_DEPTH_ENABLED 89 | 90 | #if defined(SHADER_API_GLES3) && !defined(UNITY_COLORSPACE_GAMMA) 91 | float GammaToLinearSpaceExact(float value) 92 | { 93 | if (value <= 0.04045F) 94 | return value / 12.92F; 95 | else if (value < 1.0F) 96 | return pow((value + 0.055F) / 1.055F, 2.4F); 97 | else 98 | return pow(value, 2.2F); 99 | } 100 | 101 | vec3 GammaToLinearSpace(vec3 sRGB) 102 | { 103 | // Approximate version from http://chilliant.blogspot.com.au/2012/08/srgb-approximations-for-hlsl.html?m=1 104 | return sRGB * (sRGB * (sRGB * 0.305306011F + 0.682171111F) + 0.012522878F); 105 | 106 | // Precise version, useful for debugging, but the pow() function is too slow. 107 | // return vec3(GammaToLinearSpaceExact(sRGB.r), GammaToLinearSpaceExact(sRGB.g), GammaToLinearSpaceExact(sRGB.b)); 108 | } 109 | #endif // SHADER_API_GLES3 && !UNITY_COLORSPACE_GAMMA 110 | 111 | float ConvertDistanceToDepth(float d) 112 | { 113 | #if TEXTURE_SOURCE_RAW_DISTANCE 114 | return d; 115 | #else 116 | d = _UnityCameraForwardScale > 0.0 ? _UnityCameraForwardScale * d : d; 117 | 118 | float zBufferParamsW = 1.0 / _ProjectionParams.y; 119 | float zBufferParamsY = _ProjectionParams.z * zBufferParamsW; 120 | float zBufferParamsX = 1.0 - zBufferParamsY; 121 | float zBufferParamsZ = zBufferParamsX * _ProjectionParams.w; 122 | 123 | // Clip any distances smaller than the near clip plane, and compute the depth value from the distance. 124 | return (d < _ProjectionParams.y) ? 1.0f : ((1.0 / zBufferParamsZ) * ((1.0 / d) - zBufferParamsW)); 125 | #endif // TEXTURE_SOURCE_RAW_DISTANCE 126 | } 127 | 128 | void main() 129 | { 130 | #ifdef SHADER_API_GLES3 131 | #ifdef ARCORE_IMAGE_STABILIZATION_ENABLED 132 | vec2 tc = textureCoord.xy / textureCoord.z; 133 | #else 134 | vec2 tc = textureCoord; 135 | #endif 136 | vec3 result = texture(_MainTex, tc).xyz; 137 | float depth = 1.0; 138 | 139 | #ifdef ARCORE_ENVIRONMENT_DEPTH_ENABLED 140 | float distance = texture(_EnvironmentDepth, tc).x; 141 | depth = ConvertDistanceToDepth(distance); 142 | #endif // ARCORE_ENVIRONMENT_DEPTH_ENABLED 143 | 144 | #ifndef UNITY_COLORSPACE_GAMMA 145 | result = GammaToLinearSpace(result); 146 | #endif // !UNITY_COLORSPACE_GAMMA 147 | 148 | // gl_FragColor = vec4(result, 1.0); 149 | gl_FragColor = vec4(result, depth); 150 | gl_FragDepth = depth; 151 | #endif // SHADER_API_GLES3 152 | } 153 | 154 | #endif // FRAGMENT 155 | ENDGLSL 156 | } 157 | } 158 | 159 | ///////////////////////////////////////////////////////////////////////////////////////////// 160 | // HLSL shader for Vulkan. It should be kept the same with GLES3 except for the syntax diff. 161 | ///////////////////////////////////////////////////////////////////////////////////////////// 162 | SubShader 163 | { 164 | Name "ARCore Background (Before Opaques) for Vulkan" 165 | Tags 166 | { 167 | "Queue" = "Background" 168 | "RenderType" = "Background" 169 | "ForceNoShadowCasting" = "True" 170 | } 171 | 172 | Pass 173 | { 174 | Name "AR Camera Background (ARCore)" 175 | Cull Off 176 | ZTest Always 177 | ZWrite On 178 | Lighting Off 179 | LOD 100 180 | Tags 181 | { 182 | "LightMode" = "Always" 183 | } 184 | 185 | HLSLPROGRAM 186 | 187 | #pragma only_renderers vulkan 188 | 189 | #pragma multi_compile_local __ ARCORE_ENVIRONMENT_DEPTH_ENABLED 190 | #pragma multi_compile_local __ ARCORE_IMAGE_STABILIZATION_ENABLED 191 | 192 | #include "UnityCG.cginc" 193 | 194 | #pragma vertex vert 195 | #pragma fragment frag 196 | 197 | #ifndef ARCORE_IMAGE_STABILIZATION_ENABLED 198 | #define ARCORE_TEXCOORD_TYPE float2 199 | #else // ARCORE_IMAGE_STABILIZATION_ENABLED 200 | #define ARCORE_TEXCOORD_TYPE float3 201 | #endif // !ARCORE_IMAGE_STABILIZATION_ENABLED 202 | 203 | // Device display transform is provided by the AR Foundation camera background renderer. 204 | float4x4 _UnityDisplayTransform; 205 | 206 | struct vertexInput 207 | { 208 | float4 vertex : POSITION; 209 | float3 uv : TEXCOORD0; 210 | }; 211 | 212 | struct v2f 213 | { 214 | float4 position : SV_POSITION; 215 | ARCORE_TEXCOORD_TYPE textureCoord : TEXCOORD0; 216 | }; 217 | 218 | v2f vert(vertexInput i) 219 | { 220 | v2f o; 221 | 222 | // Transform the position from object space to clip space. 223 | o.position = UnityObjectToClipPos(i.vertex.xyz); 224 | 225 | #ifdef ARCORE_IMAGE_STABILIZATION_ENABLED 226 | o.textureCoord = i.uv.xyz; 227 | #else 228 | // Remap the texture coordinates based on the device rotation. 229 | // _UnityDisplayTransform is provided as "Row Major" for all mobile platforms, so use the 230 | // 'Row Vector * Matrix' operator. In HLSL, with mul(x, y) if x is a vector, it treated 231 | // as a row vector. For more information: 232 | // https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-mul 233 | o.textureCoord = mul(float4(i.uv.x, i.uv.y, 1.0f, 0.0f), _UnityDisplayTransform).xy; 234 | #endif 235 | return o; 236 | } 237 | 238 | sampler2D _MainTex; 239 | float _UnityCameraForwardScale; 240 | 241 | #ifdef ARCORE_ENVIRONMENT_DEPTH_ENABLED 242 | sampler2D _EnvironmentDepth; 243 | #endif // ARCORE_ENVIRONMENT_DEPTH_ENABLED 244 | 245 | #ifndef UNITY_COLORSPACE_GAMMA 246 | float3 GammaToLinearSpace(float3 sRGB) 247 | { 248 | // Approximate version from http://chilliant.blogspot.com.au/2012/08/srgb-approximations-for-hlsl.html?m=1 249 | return sRGB * (sRGB * (sRGB * 0.305306011F + 0.682171111F) + 0.012522878F); 250 | } 251 | #endif // !UNITY_COLORSPACE_GAMMA 252 | 253 | float ConvertDistanceToDepth(float d) 254 | { 255 | #if TEXTURE_SOURCE_RAW_DISTANCE 256 | return d; 257 | #else 258 | d = _UnityCameraForwardScale > 0.0 ? _UnityCameraForwardScale * d : d; 259 | 260 | float zBufferParamsW = 1.0 / _ProjectionParams.y; 261 | float zBufferParamsY = _ProjectionParams.z * zBufferParamsW; 262 | float zBufferParamsX = 1.0 - zBufferParamsY; 263 | float zBufferParamsZ = zBufferParamsX * _ProjectionParams.w; 264 | 265 | // Clip any distances smaller than the near clip plane, and compute the depth value from the distance. 266 | return (d < _ProjectionParams.y) ? 1.0f : ((1.0 / zBufferParamsZ) * ((1.0 / d) - zBufferParamsW)); 267 | #endif // TEXTURE_SOURCE_RAW_DISTANCE 268 | } 269 | 270 | struct fragOutput 271 | { 272 | float4 color : SV_Target; 273 | float depth : SV_Depth; 274 | }; 275 | 276 | fragOutput frag(v2f i) 277 | { 278 | #ifdef ARCORE_IMAGE_STABILIZATION_ENABLED 279 | float2 tc = i.textureCoord.xy / i.textureCoord.z; 280 | #else 281 | float2 tc = i.textureCoord; 282 | #endif 283 | float3 result = tex2D(_MainTex, tc).xyz; 284 | float depth = 1.0; 285 | 286 | #ifdef ARCORE_ENVIRONMENT_DEPTH_ENABLED 287 | float distance = tex2D(_EnvironmentDepth, tc).x; 288 | depth = ConvertDistanceToDepth(distance); 289 | #endif // ARCORE_ENVIRONMENT_DEPTH_ENABLED 290 | 291 | #ifndef UNITY_COLORSPACE_GAMMA 292 | result = GammaToLinearSpace(result); 293 | #endif // !UNITY_COLORSPACE_GAMMA 294 | 295 | fragOutput o; 296 | 297 | // o.color = float4(result, 1.0); 298 | o.color = float4(result, depth); 299 | o.depth = 1.0 - depth; // Unity Vulkan uses reverse Z. 300 | 301 | return o; 302 | } 303 | 304 | ENDHLSL 305 | } 306 | } 307 | 308 | FallBack Off 309 | } 310 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Shaders/ARCoreBackgroundDepth.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a68a981b98d2c47b881e7e696a7b0f1f 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Shaders/ARKitBackgroundDepth.shader: -------------------------------------------------------------------------------- 1 | Shader "Unlit/TextureSource/ARKitBackgroundDepth" 2 | { 3 | Properties 4 | { 5 | _textureY ("TextureY", 2D) = "white" {} 6 | _textureCbCr ("TextureCbCr", 2D) = "black" {} 7 | _HumanStencil ("HumanStencil", 2D) = "black" {} 8 | _HumanDepth ("HumanDepth", 2D) = "black" {} 9 | _EnvironmentDepth ("EnvironmentDepth", 2D) = "black" {} 10 | } 11 | 12 | SubShader 13 | { 14 | Tags 15 | { 16 | "Queue" = "Background" 17 | "RenderType" = "Background" 18 | "ForceNoShadowCasting" = "True" 19 | } 20 | 21 | Pass 22 | { 23 | Cull Off 24 | ZTest Always 25 | ZWrite On 26 | Lighting Off 27 | LOD 100 28 | Tags 29 | { 30 | "LightMode" = "Always" 31 | } 32 | 33 | 34 | HLSLPROGRAM 35 | 36 | #pragma vertex vert 37 | #pragma fragment frag 38 | 39 | #pragma multi_compile_local __ ARKIT_BACKGROUND_URP 40 | #pragma multi_compile_local __ ARKIT_HUMAN_SEGMENTATION_ENABLED ARKIT_ENVIRONMENT_DEPTH_ENABLED 41 | #pragma multi_compile_local __ TEXTURE_SOURCE_RAW_DISTANCE 42 | 43 | 44 | #if ARKIT_BACKGROUND_URP 45 | 46 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 47 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl" 48 | 49 | #define ARKIT_TEXTURE2D_HALF(texture) TEXTURE2D(texture) 50 | #define ARKIT_SAMPLER_HALF(sampler) SAMPLER(sampler) 51 | #define ARKIT_TEXTURE2D_FLOAT(texture) TEXTURE2D(texture) 52 | #define ARKIT_SAMPLER_FLOAT(sampler) SAMPLER(sampler) 53 | #define ARKIT_SAMPLE_TEXTURE2D(texture,sampler,texcoord) SAMPLE_TEXTURE2D(texture,sampler,texcoord) 54 | 55 | #else // Legacy RP 56 | 57 | #include "UnityCG.cginc" 58 | 59 | #define real4 half4 60 | #define real4x4 half4x4 61 | #define TransformObjectToHClip UnityObjectToClipPos 62 | #define FastSRGBToLinear GammaToLinearSpace 63 | 64 | #define ARKIT_TEXTURE2D_HALF(texture) UNITY_DECLARE_TEX2D_HALF(texture) 65 | #define ARKIT_SAMPLER_HALF(sampler) 66 | #define ARKIT_TEXTURE2D_FLOAT(texture) UNITY_DECLARE_TEX2D_FLOAT(texture) 67 | #define ARKIT_SAMPLER_FLOAT(sampler) 68 | #define ARKIT_SAMPLE_TEXTURE2D(texture,sampler,texcoord) UNITY_SAMPLE_TEX2D(texture,texcoord) 69 | 70 | #endif 71 | 72 | 73 | struct appdata 74 | { 75 | float3 position : POSITION; 76 | float2 texcoord : TEXCOORD0; 77 | }; 78 | 79 | struct v2f 80 | { 81 | float4 position : SV_POSITION; 82 | float2 texcoord : TEXCOORD0; 83 | }; 84 | 85 | struct fragment_output 86 | { 87 | real4 color : SV_Target; 88 | // float depth : SV_Depth; 89 | }; 90 | 91 | 92 | CBUFFER_START(UnityARFoundationPerFrame) 93 | // Device display transform is provided by the AR Foundation camera background renderer. 94 | float4x4 _UnityDisplayTransform; 95 | float _UnityCameraForwardScale; 96 | CBUFFER_END 97 | 98 | 99 | v2f vert (appdata v) 100 | { 101 | // Transform the position from object space to clip space. 102 | float4 position = TransformObjectToHClip(v.position); 103 | 104 | // Remap the texture coordinates based on the device rotation. 105 | float2 texcoord = mul(float4(v.texcoord, 1.0f, 1.0f), _UnityDisplayTransform).xy; 106 | 107 | v2f o; 108 | o.position = position; 109 | o.texcoord = texcoord; 110 | return o; 111 | } 112 | 113 | 114 | CBUFFER_START(ARKitColorTransformations) 115 | static const real4x4 s_YCbCrToSRGB = real4x4( 116 | real4(1.0h, 0.0000h, 1.4020h, -0.7010h), 117 | real4(1.0h, -0.3441h, -0.7141h, 0.5291h), 118 | real4(1.0h, 1.7720h, 0.0000h, -0.8860h), 119 | real4(0.0h, 0.0000h, 0.0000h, 1.0000h) 120 | ); 121 | CBUFFER_END 122 | 123 | 124 | inline float ConvertDistanceToDepth(float d) 125 | { 126 | #if TEXTURE_SOURCE_RAW_DISTANCE 127 | return d; 128 | #else 129 | // Account for scale 130 | d = _UnityCameraForwardScale > 0.0 ? _UnityCameraForwardScale * d : d; 131 | 132 | // Clip any distances smaller than the near clip plane, and compute the depth value from the distance. 133 | return (d < _ProjectionParams.y) ? 0.0f : ((1.0f / _ZBufferParams.z) * ((1.0f / d) - _ZBufferParams.w)); 134 | #endif // TEXTURE_SOURCE_RAW_DISTANCE 135 | } 136 | 137 | 138 | ARKIT_TEXTURE2D_HALF(_textureY); 139 | ARKIT_SAMPLER_HALF(sampler_textureY); 140 | ARKIT_TEXTURE2D_HALF(_textureCbCr); 141 | ARKIT_SAMPLER_HALF(sampler_textureCbCr); 142 | #if ARKIT_ENVIRONMENT_DEPTH_ENABLED 143 | ARKIT_TEXTURE2D_FLOAT(_EnvironmentDepth); 144 | ARKIT_SAMPLER_FLOAT(sampler_EnvironmentDepth); 145 | #elif ARKIT_HUMAN_SEGMENTATION_ENABLED 146 | ARKIT_TEXTURE2D_HALF(_HumanStencil); 147 | ARKIT_SAMPLER_HALF(sampler_HumanStencil); 148 | ARKIT_TEXTURE2D_FLOAT(_HumanDepth); 149 | ARKIT_SAMPLER_FLOAT(sampler_HumanDepth); 150 | #endif // ARKIT_HUMAN_SEGMENTATION_ENABLED 151 | 152 | 153 | fragment_output frag (v2f i) 154 | { 155 | // Sample the video textures (in YCbCr). 156 | real4 ycbcr = real4(ARKIT_SAMPLE_TEXTURE2D(_textureY, sampler_textureY, i.texcoord).r, 157 | ARKIT_SAMPLE_TEXTURE2D(_textureCbCr, sampler_textureCbCr, i.texcoord).rg, 158 | 1.0h); 159 | 160 | // Convert from YCbCr to sRGB. 161 | real4 videoColor = mul(s_YCbCrToSRGB, ycbcr); 162 | 163 | #if !UNITY_COLORSPACE_GAMMA 164 | // If rendering in linear color space, convert from sRGB to RGB. 165 | videoColor.xyz = FastSRGBToLinear(videoColor.xyz); 166 | #endif // !UNITY_COLORSPACE_GAMMA 167 | 168 | // Assume the background depth is the back of the depth clipping volume. 169 | float depthValue = 0.0f; 170 | 171 | #if ARKIT_ENVIRONMENT_DEPTH_ENABLED 172 | // Sample the environment depth (in meters). 173 | float envDistance = ARKIT_SAMPLE_TEXTURE2D(_EnvironmentDepth, sampler_EnvironmentDepth, i.texcoord).r; 174 | 175 | // Convert the distance to depth. 176 | depthValue = ConvertDistanceToDepth(envDistance); 177 | #elif ARKIT_HUMAN_SEGMENTATION_ENABLED 178 | // Check the human stencil, and skip non-human pixels. 179 | if (ARKIT_SAMPLE_TEXTURE2D(_HumanStencil, sampler_HumanStencil, i.texcoord).r > 0.5h) 180 | { 181 | // Sample the human depth (in meters). 182 | float humanDistance = ARKIT_SAMPLE_TEXTURE2D(_HumanDepth, sampler_HumanDepth, i.texcoord).r; 183 | 184 | // Convert the distance to depth. 185 | depthValue = ConvertDistanceToDepth(humanDistance); 186 | } 187 | #endif // ARKIT_HUMAN_SEGMENTATION_ENABLED 188 | 189 | fragment_output o; 190 | o.color = real4(videoColor.x, videoColor.y, videoColor.z, depthValue); 191 | // o.color = real4(depthValue, depthValue, depthValue, 0.5h); 192 | // o.depth = depthValue; 193 | return o; 194 | } 195 | 196 | ENDHLSL 197 | } 198 | } 199 | } 200 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/Shaders/ARKitBackgroundDepth.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8b0b30194e1b4026abc942f037e6f86 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.github.asus4.texture-source", 3 | "version": "0.3.4", 4 | "displayName": "TextureSource", 5 | "description": "Simplify WebCamera and test video handling for using Computer Vision in Unity", 6 | "unity": "2020.3", 7 | "unityRelease": "0f1", 8 | "keywords": [ 9 | "unity", 10 | "cv" 11 | ], 12 | "documentationUrl": "https://github.com/asus4/TextureSource/tree/main", 13 | "changelogUrl": "https://github.com/asus4/TextureSource/releases", 14 | "license": "MIT", 15 | "licensesUrl": "https://github.com/asus4/TextureSource/blob/main/Packages/com.github.asus4.texture-source/LICENSE", 16 | "author": { 17 | "name": "Koki Ibukuro", 18 | "url": "https://github.com/asus4" 19 | }, 20 | "dependencies": { 21 | "com.unity.modules.video": "1.0.0" 22 | } 23 | } -------------------------------------------------------------------------------- /Packages/com.github.asus4.texture-source/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a56c1c6bbf8c439396e15da558d1000 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ide.visualstudio": "2.0.22", 4 | "com.unity.render-pipelines.universal": "17.0.4", 5 | "com.unity.ugui": "2.0.0", 6 | "com.unity.modules.audio": "1.0.0", 7 | "com.unity.modules.ui": "1.0.0" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.github.asus4.texture-source": { 4 | "version": "file:com.github.asus4.texture-source", 5 | "depth": 0, 6 | "source": "embedded", 7 | "dependencies": { 8 | "com.unity.modules.video": "1.0.0" 9 | } 10 | }, 11 | "com.unity.burst": { 12 | "version": "1.8.19", 13 | "depth": 2, 14 | "source": "registry", 15 | "dependencies": { 16 | "com.unity.mathematics": "1.2.1", 17 | "com.unity.modules.jsonserialize": "1.0.0" 18 | }, 19 | "url": "https://packages.unity.com" 20 | }, 21 | "com.unity.collections": { 22 | "version": "2.5.1", 23 | "depth": 2, 24 | "source": "registry", 25 | "dependencies": { 26 | "com.unity.burst": "1.8.17", 27 | "com.unity.test-framework": "1.4.5", 28 | "com.unity.nuget.mono-cecil": "1.11.4", 29 | "com.unity.test-framework.performance": "3.0.3" 30 | }, 31 | "url": "https://packages.unity.com" 32 | }, 33 | "com.unity.ext.nunit": { 34 | "version": "2.0.5", 35 | "depth": 2, 36 | "source": "registry", 37 | "dependencies": {}, 38 | "url": "https://packages.unity.com" 39 | }, 40 | "com.unity.ide.visualstudio": { 41 | "version": "2.0.22", 42 | "depth": 0, 43 | "source": "registry", 44 | "dependencies": { 45 | "com.unity.test-framework": "1.1.9" 46 | }, 47 | "url": "https://packages.unity.com" 48 | }, 49 | "com.unity.mathematics": { 50 | "version": "1.3.2", 51 | "depth": 2, 52 | "source": "registry", 53 | "dependencies": {}, 54 | "url": "https://packages.unity.com" 55 | }, 56 | "com.unity.nuget.mono-cecil": { 57 | "version": "1.11.4", 58 | "depth": 3, 59 | "source": "registry", 60 | "dependencies": {}, 61 | "url": "https://packages.unity.com" 62 | }, 63 | "com.unity.render-pipelines.core": { 64 | "version": "17.0.4", 65 | "depth": 1, 66 | "source": "builtin", 67 | "dependencies": { 68 | "com.unity.burst": "1.8.14", 69 | "com.unity.mathematics": "1.3.2", 70 | "com.unity.ugui": "2.0.0", 71 | "com.unity.collections": "2.4.3", 72 | "com.unity.modules.physics": "1.0.0", 73 | "com.unity.modules.terrain": "1.0.0", 74 | "com.unity.modules.jsonserialize": "1.0.0", 75 | "com.unity.rendering.light-transport": "1.0.1" 76 | } 77 | }, 78 | "com.unity.render-pipelines.universal": { 79 | "version": "17.0.4", 80 | "depth": 0, 81 | "source": "builtin", 82 | "dependencies": { 83 | "com.unity.render-pipelines.core": "17.0.4", 84 | "com.unity.shadergraph": "17.0.4", 85 | "com.unity.render-pipelines.universal-config": "17.0.3" 86 | } 87 | }, 88 | "com.unity.render-pipelines.universal-config": { 89 | "version": "17.0.3", 90 | "depth": 1, 91 | "source": "builtin", 92 | "dependencies": { 93 | "com.unity.render-pipelines.core": "17.0.3" 94 | } 95 | }, 96 | "com.unity.rendering.light-transport": { 97 | "version": "1.0.1", 98 | "depth": 2, 99 | "source": "builtin", 100 | "dependencies": { 101 | "com.unity.collections": "2.2.0", 102 | "com.unity.mathematics": "1.2.4", 103 | "com.unity.modules.terrain": "1.0.0" 104 | } 105 | }, 106 | "com.unity.searcher": { 107 | "version": "4.9.3", 108 | "depth": 2, 109 | "source": "registry", 110 | "dependencies": {}, 111 | "url": "https://packages.unity.com" 112 | }, 113 | "com.unity.shadergraph": { 114 | "version": "17.0.4", 115 | "depth": 1, 116 | "source": "builtin", 117 | "dependencies": { 118 | "com.unity.render-pipelines.core": "17.0.4", 119 | "com.unity.searcher": "4.9.3" 120 | } 121 | }, 122 | "com.unity.test-framework": { 123 | "version": "1.4.6", 124 | "depth": 1, 125 | "source": "registry", 126 | "dependencies": { 127 | "com.unity.ext.nunit": "2.0.3", 128 | "com.unity.modules.imgui": "1.0.0", 129 | "com.unity.modules.jsonserialize": "1.0.0" 130 | }, 131 | "url": "https://packages.unity.com" 132 | }, 133 | "com.unity.test-framework.performance": { 134 | "version": "3.0.3", 135 | "depth": 3, 136 | "source": "registry", 137 | "dependencies": { 138 | "com.unity.test-framework": "1.1.31", 139 | "com.unity.modules.jsonserialize": "1.0.0" 140 | }, 141 | "url": "https://packages.unity.com" 142 | }, 143 | "com.unity.ugui": { 144 | "version": "2.0.0", 145 | "depth": 0, 146 | "source": "builtin", 147 | "dependencies": { 148 | "com.unity.modules.ui": "1.0.0", 149 | "com.unity.modules.imgui": "1.0.0" 150 | } 151 | }, 152 | "com.unity.modules.audio": { 153 | "version": "1.0.0", 154 | "depth": 0, 155 | "source": "builtin", 156 | "dependencies": {} 157 | }, 158 | "com.unity.modules.imgui": { 159 | "version": "1.0.0", 160 | "depth": 1, 161 | "source": "builtin", 162 | "dependencies": {} 163 | }, 164 | "com.unity.modules.jsonserialize": { 165 | "version": "1.0.0", 166 | "depth": 2, 167 | "source": "builtin", 168 | "dependencies": {} 169 | }, 170 | "com.unity.modules.physics": { 171 | "version": "1.0.0", 172 | "depth": 2, 173 | "source": "builtin", 174 | "dependencies": {} 175 | }, 176 | "com.unity.modules.terrain": { 177 | "version": "1.0.0", 178 | "depth": 2, 179 | "source": "builtin", 180 | "dependencies": {} 181 | }, 182 | "com.unity.modules.ui": { 183 | "version": "1.0.0", 184 | "depth": 0, 185 | "source": "builtin", 186 | "dependencies": {} 187 | }, 188 | "com.unity.modules.unitywebrequest": { 189 | "version": "1.0.0", 190 | "depth": 2, 191 | "source": "builtin", 192 | "dependencies": {} 193 | }, 194 | "com.unity.modules.video": { 195 | "version": "1.0.0", 196 | "depth": 1, 197 | "source": "builtin", 198 | "dependencies": { 199 | "com.unity.modules.audio": "1.0.0", 200 | "com.unity.modules.ui": "1.0.0", 201 | "com.unity.modules.unitywebrequest": "1.0.0" 202 | } 203 | } 204 | } 205 | } 206 | -------------------------------------------------------------------------------- /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 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /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/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: 11 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 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /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/Samples/SampleScene.unity 10 | guid: 9fc0d4010bbf28b4594072e72b8655ab 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /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: 11 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_SerializeInlineMappingsOnOneLine: 1 -------------------------------------------------------------------------------- /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: 16 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_DepthNormals: 17 | m_Mode: 1 18 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 19 | m_MotionVectors: 20 | m_Mode: 1 21 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 22 | m_LightHalo: 23 | m_Mode: 1 24 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LensFlare: 26 | m_Mode: 1 27 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 28 | m_VideoShadersIncludeMode: 2 29 | m_AlwaysIncludedShaders: 30 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 31 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 32 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 36 | m_PreloadedShaders: [] 37 | m_PreloadShadersBatchTimeLimit: -1 38 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} 39 | m_CustomRenderPipeline: {fileID: 11400000, guid: c5d660f4731544522be937aad322ae2f, type: 2} 40 | m_TransparencySortMode: 0 41 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 42 | m_DefaultRenderingPath: 1 43 | m_DefaultMobileRenderingPath: 1 44 | m_TierSettings: [] 45 | m_LightmapStripping: 0 46 | m_FogStripping: 0 47 | m_InstancingStripping: 0 48 | m_BrgStripping: 0 49 | m_LightmapKeepPlain: 1 50 | m_LightmapKeepDirCombined: 1 51 | m_LightmapKeepDynamicPlain: 1 52 | m_LightmapKeepDynamicDirCombined: 1 53 | m_LightmapKeepShadowMask: 1 54 | m_LightmapKeepSubtractive: 1 55 | m_FogKeepLinear: 1 56 | m_FogKeepExp: 1 57 | m_FogKeepExp2: 1 58 | m_AlbedoSwatchInfos: [] 59 | m_RenderPipelineGlobalSettingsMap: 60 | UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: a0c9d9157053c465dbfa425784f604bf, type: 2} 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 1 63 | m_LogWhenShaderIsCompiled: 0 64 | m_LightProbeOutsideHullStrategy: 0 65 | m_CameraRelativeLightCulling: 0 66 | m_CameraRelativeShadowCulling: 0 67 | -------------------------------------------------------------------------------- /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 | - serializedVersion: 3 297 | m_Name: Enable Debug Button 1 298 | descriptiveName: 299 | descriptiveNegativeName: 300 | negativeButton: 301 | positiveButton: left ctrl 302 | altNegativeButton: 303 | altPositiveButton: joystick button 8 304 | gravity: 0 305 | dead: 0 306 | sensitivity: 0 307 | snap: 0 308 | invert: 0 309 | type: 0 310 | axis: 0 311 | joyNum: 0 312 | - serializedVersion: 3 313 | m_Name: Enable Debug Button 2 314 | descriptiveName: 315 | descriptiveNegativeName: 316 | negativeButton: 317 | positiveButton: backspace 318 | altNegativeButton: 319 | altPositiveButton: joystick button 9 320 | gravity: 0 321 | dead: 0 322 | sensitivity: 0 323 | snap: 0 324 | invert: 0 325 | type: 0 326 | axis: 0 327 | joyNum: 0 328 | - serializedVersion: 3 329 | m_Name: Debug Reset 330 | descriptiveName: 331 | descriptiveNegativeName: 332 | negativeButton: 333 | positiveButton: left alt 334 | altNegativeButton: 335 | altPositiveButton: joystick button 1 336 | gravity: 0 337 | dead: 0 338 | sensitivity: 0 339 | snap: 0 340 | invert: 0 341 | type: 0 342 | axis: 0 343 | joyNum: 0 344 | - serializedVersion: 3 345 | m_Name: Debug Next 346 | descriptiveName: 347 | descriptiveNegativeName: 348 | negativeButton: 349 | positiveButton: page down 350 | altNegativeButton: 351 | altPositiveButton: joystick button 5 352 | gravity: 0 353 | dead: 0 354 | sensitivity: 0 355 | snap: 0 356 | invert: 0 357 | type: 0 358 | axis: 0 359 | joyNum: 0 360 | - serializedVersion: 3 361 | m_Name: Debug Previous 362 | descriptiveName: 363 | descriptiveNegativeName: 364 | negativeButton: 365 | positiveButton: page up 366 | altNegativeButton: 367 | altPositiveButton: joystick button 4 368 | gravity: 0 369 | dead: 0 370 | sensitivity: 0 371 | snap: 0 372 | invert: 0 373 | type: 0 374 | axis: 0 375 | joyNum: 0 376 | - serializedVersion: 3 377 | m_Name: Debug Validate 378 | descriptiveName: 379 | descriptiveNegativeName: 380 | negativeButton: 381 | positiveButton: return 382 | altNegativeButton: 383 | altPositiveButton: joystick button 0 384 | gravity: 0 385 | dead: 0 386 | sensitivity: 0 387 | snap: 0 388 | invert: 0 389 | type: 0 390 | axis: 0 391 | joyNum: 0 392 | - serializedVersion: 3 393 | m_Name: Debug Persistent 394 | descriptiveName: 395 | descriptiveNegativeName: 396 | negativeButton: 397 | positiveButton: right shift 398 | altNegativeButton: 399 | altPositiveButton: joystick button 2 400 | gravity: 0 401 | dead: 0 402 | sensitivity: 0 403 | snap: 0 404 | invert: 0 405 | type: 0 406 | axis: 0 407 | joyNum: 0 408 | - serializedVersion: 3 409 | m_Name: Debug Multiplier 410 | descriptiveName: 411 | descriptiveNegativeName: 412 | negativeButton: 413 | positiveButton: left shift 414 | altNegativeButton: 415 | altPositiveButton: joystick button 3 416 | gravity: 0 417 | dead: 0 418 | sensitivity: 0 419 | snap: 0 420 | invert: 0 421 | type: 0 422 | axis: 0 423 | joyNum: 0 424 | - serializedVersion: 3 425 | m_Name: Debug Horizontal 426 | descriptiveName: 427 | descriptiveNegativeName: 428 | negativeButton: left 429 | positiveButton: right 430 | altNegativeButton: 431 | altPositiveButton: 432 | gravity: 1000 433 | dead: 0.001 434 | sensitivity: 1000 435 | snap: 0 436 | invert: 0 437 | type: 0 438 | axis: 0 439 | joyNum: 0 440 | - serializedVersion: 3 441 | m_Name: Debug Vertical 442 | descriptiveName: 443 | descriptiveNegativeName: 444 | negativeButton: down 445 | positiveButton: up 446 | altNegativeButton: 447 | altPositiveButton: 448 | gravity: 1000 449 | dead: 0.001 450 | sensitivity: 1000 451 | snap: 0 452 | invert: 0 453 | type: 0 454 | axis: 0 455 | joyNum: 0 456 | - serializedVersion: 3 457 | m_Name: Debug Vertical 458 | descriptiveName: 459 | descriptiveNegativeName: 460 | negativeButton: down 461 | positiveButton: up 462 | altNegativeButton: 463 | altPositiveButton: 464 | gravity: 1000 465 | dead: 0.001 466 | sensitivity: 1000 467 | snap: 0 468 | invert: 0 469 | type: 2 470 | axis: 6 471 | joyNum: 0 472 | - serializedVersion: 3 473 | m_Name: Debug Horizontal 474 | descriptiveName: 475 | descriptiveNegativeName: 476 | negativeButton: left 477 | positiveButton: right 478 | altNegativeButton: 479 | altPositiveButton: 480 | gravity: 1000 481 | dead: 0.001 482 | sensitivity: 1000 483 | snap: 0 484 | invert: 0 485 | type: 2 486 | axis: 5 487 | joyNum: 0 488 | m_UsePhysicalKeys: 1 489 | -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /ProjectSettings/MultiplayerManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!655991488 &1 4 | MultiplayerManager: 5 | m_ObjectHideFlags: 0 6 | m_EnableMultiplayerRoles: 0 7 | m_StrippingTypes: {} 8 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 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_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /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 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 6000.0.41f1 2 | m_EditorVersionWithRevision: 6000.0.41f1 (46e447368a18) 3 | -------------------------------------------------------------------------------- /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: 0 8 | m_QualitySettings: 9 | - serializedVersion: 4 10 | name: Medium 11 | pixelLightCount: 1 12 | shadows: 1 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 20 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 2 22 | globalTextureMipmapLimit: 0 23 | textureMipmapLimitSettings: [] 24 | anisotropicTextures: 1 25 | antiAliasing: 0 26 | softParticles: 0 27 | softVegetation: 0 28 | realtimeReflectionProbes: 0 29 | billboardsFaceCameraPosition: 0 30 | useLegacyDetailDistribution: 1 31 | adaptiveVsync: 0 32 | vSyncCount: 1 33 | realtimeGICPUUsage: 25 34 | adaptiveVsyncExtraA: 0 35 | adaptiveVsyncExtraB: 0 36 | lodBias: 0.7 37 | maximumLODLevel: 0 38 | enableLODCrossFade: 1 39 | streamingMipmapsActive: 0 40 | streamingMipmapsAddAllCameras: 1 41 | streamingMipmapsMemoryBudget: 512 42 | streamingMipmapsRenderersPerFrame: 512 43 | streamingMipmapsMaxLevelReduction: 2 44 | streamingMipmapsMaxFileIORequests: 1024 45 | particleRaycastBudget: 64 46 | asyncUploadTimeSlice: 2 47 | asyncUploadBufferSize: 16 48 | asyncUploadPersistentBuffer: 1 49 | resolutionScalingFixedDPIFactor: 1 50 | customRenderPipeline: {fileID: 11400000, guid: c5d660f4731544522be937aad322ae2f, type: 2} 51 | terrainQualityOverrides: 0 52 | terrainPixelError: 1 53 | terrainDetailDensityScale: 1 54 | terrainBasemapDistance: 1000 55 | terrainDetailDistance: 80 56 | terrainTreeDistance: 5000 57 | terrainBillboardStart: 50 58 | terrainFadeLength: 5 59 | terrainMaxTrees: 50 60 | excludedTargetPlatforms: [] 61 | m_TextureMipmapLimitGroupNames: [] 62 | m_PerPlatformDefaultQuality: 63 | Android: 0 64 | Lumin: 0 65 | Nintendo 3DS: 0 66 | Nintendo Switch: 0 67 | PS4: 0 68 | PSP2: 0 69 | Stadia: 0 70 | Standalone: 0 71 | WebGL: 0 72 | Windows Store Apps: 0 73 | XboxOne: 0 74 | iPhone: 0 75 | tvOS: 0 76 | -------------------------------------------------------------------------------- /ProjectSettings/SceneTemplateSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "templatePinStates": [], 3 | "dependencyTypeInfos": [ 4 | { 5 | "userAdded": false, 6 | "type": "UnityEngine.AnimationClip", 7 | "defaultInstantiationMode": 0 8 | }, 9 | { 10 | "userAdded": false, 11 | "type": "UnityEditor.Animations.AnimatorController", 12 | "defaultInstantiationMode": 0 13 | }, 14 | { 15 | "userAdded": false, 16 | "type": "UnityEngine.AnimatorOverrideController", 17 | "defaultInstantiationMode": 0 18 | }, 19 | { 20 | "userAdded": false, 21 | "type": "UnityEditor.Audio.AudioMixerController", 22 | "defaultInstantiationMode": 0 23 | }, 24 | { 25 | "userAdded": false, 26 | "type": "UnityEngine.ComputeShader", 27 | "defaultInstantiationMode": 1 28 | }, 29 | { 30 | "userAdded": false, 31 | "type": "UnityEngine.Cubemap", 32 | "defaultInstantiationMode": 0 33 | }, 34 | { 35 | "userAdded": false, 36 | "type": "UnityEngine.GameObject", 37 | "defaultInstantiationMode": 0 38 | }, 39 | { 40 | "userAdded": false, 41 | "type": "UnityEditor.LightingDataAsset", 42 | "defaultInstantiationMode": 0 43 | }, 44 | { 45 | "userAdded": false, 46 | "type": "UnityEngine.LightingSettings", 47 | "defaultInstantiationMode": 0 48 | }, 49 | { 50 | "userAdded": false, 51 | "type": "UnityEngine.Material", 52 | "defaultInstantiationMode": 0 53 | }, 54 | { 55 | "userAdded": false, 56 | "type": "UnityEditor.MonoScript", 57 | "defaultInstantiationMode": 1 58 | }, 59 | { 60 | "userAdded": false, 61 | "type": "UnityEngine.PhysicsMaterial", 62 | "defaultInstantiationMode": 0 63 | }, 64 | { 65 | "userAdded": false, 66 | "type": "UnityEngine.PhysicsMaterial2D", 67 | "defaultInstantiationMode": 0 68 | }, 69 | { 70 | "userAdded": false, 71 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", 72 | "defaultInstantiationMode": 0 73 | }, 74 | { 75 | "userAdded": false, 76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", 77 | "defaultInstantiationMode": 0 78 | }, 79 | { 80 | "userAdded": false, 81 | "type": "UnityEngine.Rendering.VolumeProfile", 82 | "defaultInstantiationMode": 0 83 | }, 84 | { 85 | "userAdded": false, 86 | "type": "UnityEditor.SceneAsset", 87 | "defaultInstantiationMode": 1 88 | }, 89 | { 90 | "userAdded": false, 91 | "type": "UnityEngine.Shader", 92 | "defaultInstantiationMode": 1 93 | }, 94 | { 95 | "userAdded": false, 96 | "type": "UnityEngine.ShaderVariantCollection", 97 | "defaultInstantiationMode": 1 98 | }, 99 | { 100 | "userAdded": false, 101 | "type": "UnityEngine.Texture", 102 | "defaultInstantiationMode": 0 103 | }, 104 | { 105 | "userAdded": false, 106 | "type": "UnityEngine.Texture2D", 107 | "defaultInstantiationMode": 0 108 | }, 109 | { 110 | "userAdded": false, 111 | "type": "UnityEngine.Timeline.TimelineAsset", 112 | "defaultInstantiationMode": 0 113 | } 114 | ], 115 | "defaultDependencyTypeInfo": { 116 | "userAdded": false, 117 | "type": "", 118 | "defaultInstantiationMode": 1 119 | }, 120 | "newSceneOverride": 0 121 | } -------------------------------------------------------------------------------- /ProjectSettings/ShaderGraphSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 53 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | shaderVariantLimit: 2048 16 | customInterpolatorErrorThreshold: 32 17 | customInterpolatorWarningThreshold: 16 18 | customHeatmapValues: {fileID: 0} 19 | -------------------------------------------------------------------------------- /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 | - 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/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.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/URPProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_LastMaterialVersion: 9 16 | -------------------------------------------------------------------------------- /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: 0 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_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /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_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Packages/com.github.asus4.texture-source/README.md --------------------------------------------------------------------------------